Java Web程序开发入门--读书笔记(一)
来源:互联网 发布:linux环境变量的作用 编辑:程序博客网 时间:2024/04/27 20:21
第一章
XML概述:
XML与HTML的比较:
1、 HTML中的标记用来显示数据,XML中的标记用来描述数据的性质和结构
2、 HTML不区分大小写,XML是严格区分
3、 HTML可以有多个根元素,XML有且只有一个
4、 HTML中属性值的引号可用可不用,XML中属性值必须放在引号中
5、 HTML中,空格自动过滤,XML中的空格不会自动删除
6、 HTML中,标记是预定义的,XML中的标记是可以随便定义的,可扩展
XML语法:
XML声明必须是文档第一行
文档声明语法格式:
<?xml版本信息 [编码信息] [文档独立性信息]?>
<?xmlversion=”1.0” encoding=”utf-8” standalone=”yes”?>【文档独立性声明是设置是否依赖外部文档,默认是standalone=”no”;’<?xml’和’?>’这几个之间是没有空格的】
book.xml
<?xmlversion="1.0" encoding="utf-8"?>
<书架>
<书>
<书名>Java就业培训教程</书名>
<作者>张孝祥</作者>
<售价>58.00元</售价>
</书>
<书>
<书名>EJB3.0入门经典</书名>
<作者>黎活明</作者>
<售价>39.00元</售价>
</书>
</书架>
元素定义:
<城市>北京</城市>
等同:
<城市北京/>【见怪不怪】
元素名称可以包含自字母、数字以及一些可见字符
区分大小写
其他:简而言之,不要取一些奇怪的元素名字组合
属性定义:
<售价 单位=”元”>68<售价/>【单位=’元’,单引号或者双引号都可以】
同:
<售价>
<价格>68</价格>
<单位>元</单位>
</售价>
注释:
<!—注释信息-->
1、不能抢占第一行,第一行是XML文档声明的
2、不能出现在标记里面【<城市<!—注释信息-->>北京</城市>,wrong】
3、字符串”--”不能在注释中出现
4、不能嵌套【白痴才会去嵌套】
特殊字符处理:
特殊字符
预定义实体
特殊字符
预定义实体
&
&
“
"
<
<
‘
&apos
>
>
CDATA区:
当转义字符比较多的时候,嫌麻烦就用这个,CDATA区中的数据被解析器忽略,全部以原始的形式显示在浏览器上
<![CDATA[--代码信息--]]>
<?xmlversion="1.0" encoding="utf-8"?>
<java>
<![CDATA[
if(a>b&&c<b)
max=a;
]]>
</java>
DTD约束:
对XML文档进行一些约束
book.xml
<?xmlversion="1.0" encoding="utf-8"?>
<书架>
<书>
<书名>Java就业培训教程</书名>
<售价>8.00元</售价>
<作者>张孝祥</作者>
<售价>58.00元</售价>
</书>
<书>
<书名>EJB3.0入门经典</书名>
<作者>黎活明</作者>
<售价>39.00元</售价>
</书>
</书架>
book.dtd
<!ELEMENT书架(书+)>
<!ELEMENT 书(书名,作者,售价)>
<!ELEMENT 书名(#PCDATA)>
<!ELEMENT 作者(#PCDATA)>
<!ELEMENT 售价(#PCDATA)>
两种引入方式
外部引用:
<!DOCTYPE 根元素名称 SYSTEM “外部DTD文件的URI”>【本地】
<!DOCTYPE 根元素名称 PUBLIC “DTD名称” “外部DTD文件的URI”>【网络】
<?xmlversion="1.0" encoding="utf-8"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
<书>
<书名>Java就业培训教程</书名>
<售价>8.00元</售价>
<作者>张孝祥</作者>
<售价>58.00元</售价>
</书>
<书>
<书名>EJB3.0入门经典</书名>
<作者>黎活明</作者>
<售价>39.00元</售价>
</书>
</书架>
【standalone不能设置为yes】
内部引用:
<?xmlversion="1.0" encoding="utf-8"standalone="yes"?>
<!DOCTYPE 根元素名 [
DTD定义语句
…
]>
<?xml version="1.0" encoding="utf-8"standalone="yes"?>
<!--<!DOCTYPE 书架 SYSTEM "book.dtd">-->
<!DOCTYPE 书架 [
<!--<!ELEMENT 书架(书+)>-->
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名(#PCDATA)>
<!ELEMENT 作者(#PCDATA)>
<!ELEMENT 售价(#PCDATA)>
]>
<书架>
<书>
<书名>Java就业培训教程</书名>
<作者>张孝祥</作者>
<售价>58.00元</售价>
</书>
<书>
<书名>EJB3.0入门经典</书名>
<作者>黎活明</作者>
<售价>39.00元</售价>
</书>
</书架>
DTD语法:
元素定义:
<!ELEMENT元素名称 元素内容>
元素内容有五种形式:
1、#PCDATA:普通文本字符串【<!ELEMENT书名 (#PCDATA)>】
2、子元素:元素包含的元素【<!ELEMENT书(书名,作者,售价)>】
3、混合内容:表示元素既可以包含字符数据,也可以包含子元素,混合内容必须被定义零个或多个【<!ELEMENT 书(#PCDATA|书名)>,表示书中嵌套的子元素书名包含零个或多个,并且书名是字符串文本格式】
4、EMPTY:空元素【<!ELEMENTbr EMPTY>,br是没有内容的空元素】
5、ANY:包含任何字符数据和子元素【<!ELEMENT 联系人 ANY>】
元素内容中包含一些符号:
?:表示该对象可以出现0次或者1次
*:表示该对象可以出现0次或者多次
+:表示该对象可以出现1次或者多次
|:表示在列出的对象中选择1个
,:表示对象必须按照指定的顺序出现
():用于给元素进行分组
属性定义:
语法格式:
<!ATTLIST元素名
属性名1 属性类型 设置说明
属性名2 属性类型 设置说明
>
设置说明:
#REQUIRED:表示元素的该属性是必须的【联系人的联系电话属性】
#IMPLIED:表示该属性对元素可有可无
#FIXED:固定的属性默认值
默认值:同上
属性类型:
1、 CDATA:字符数据,同元素内容说明中的#PCDATA
2、 Enumerated:枚举,列表中选一个
<?xmlversion="1.0" encoding="utf-8"standalone="yes"?>
<!DOCTYPE购物篮 [
<!ELEMENT 购物篮 ANY>
<!ELEMENT 肉 EMPTY>
<!ATTLIST 肉 品种 (鸡肉|牛肉|猪肉|鱼肉) "鸡肉">
]>
<购物篮>
<肉 品种="鱼肉"/>
<肉 品种="牛肉"/>
<肉/>
</购物篮>
3、 ID:用于唯一标识XML文档中的一个元素,且ID类型的属性必须设置为#IMPLIED或#REQUIRED【都ID了,肯定具有唯一性】
4、 IDREF和IDREFS:建立关系
<?xmlversion="1.0" encoding="utf-8"?>
<!DOCTYPE联系人列表 [
<!ELEMENT联系人列表 ANY>
<!ELEMENT联系人 (姓名,EMAIL)>
<!ELEMENT姓名 (#PCDATA)>
<!ELEMENTEMAIL (#PCDATA)>
<!ATTLIST联系人 编号 ID#REQUIRED 上司 IDREF #IMPLIED>
]>
<联系人列表>
<联系人 编号="id1">
<姓名>张三</姓名>
<EMAIL>zhangsan@qq.com</EMAIL>
</联系人>
<联系人 编号="id2" 上司="id1">
<姓名>李四</姓名>
<EMAIL>lisi@qq.com</EMAIL>
</联系人>
</联系人列表>
5、 NMTOKEN和NOTAKENS:表示由一个或者多个字母、数字、句点(。)、连字号(-)或下划线(_)所组成的一个名称【不太懂】
6、 NOTATION:处理图像、声音、影像等
第一种:<!NOTATION 符号名 SYSTEM “MIME类型”>
第二种:<!NOTATION 符号名 SYSTEM “URI路径名”>
<?xmlversion="1.0" encoding="utf-8"standalone="yes"?>
<!DOCTYPE文件 [
<!NOTATIONmp SYSTEM "movPlayer.exe">
<!NOTATIONgif SYSTEM "Image/gif">
<!ELEMENT 文件 ANY>
<!ELEMENT 电影 EMPTY>
<!ATTLIST 电影 演示设备 NOTATION(mp|gif) #REQUIRED>
]>
<文件>
<电影 演示设备="mp"/>
</文件>
7、 ENTITY和ENTITYS:实体引用
1、引用实体:
<?xmlversion="1.0" encoding="utf-8"standalone="yes"?>
<!DOCTYPE书架 [
<!ENTITY itcast "你好哇!!!">
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名(#PCDATA)>
<!ELEMENT 作者(#PCDATA)>
<!ELEMENT 售价(#PCDATA)>
]>
<书架>
<书>
<书名>Java就业培训教程</书名>
<作者>&itcast;</作者>
<售价>58.00元</售价>
</书>
<书>
<书名>EJB3.0入门经典</书名>
<作者>黎活明</作者>
<售价>39.00元</售价>
</书>
</书架>
2、参数实体:
<!ENTITY%实体名称 “实体内容”>
<!ELEMENT%TAG_NAME “姓名|EMAIL|电话|地址”>
<!ELEMENT个人信息 (% TAG_NAME;|生日)>
<!ELEMENT客户信息 (%TAG_NAME;|公司名)>
【相同的部分定义为一个参数实体】
<!ENTITY % common.attributes‘id ID #IMPLIED account CDATA #REQUIRED’>【属性的相同定义】
Schema约束:
要有命名空间:
Schema语法:
元素定义:
<xs:elementname=”xxx” type=”yyy”/>
xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
xs:time
字符串类型
小数类型
整数类型
布尔类型
日期类型
时间类型
XML代码:
<lasename>Smith</lastname>
<age>28</age>
<dateborn>1980-03-27</dateborn>
Schema代码:
<xs:element name=”lastname” type=”xs:string”>
<xs:element name=”age” type=”xs:integer”>
<xs:element name=”databorn” type=”xs:date”>
属性的定义:
<xs:attribute name=”xxx” type=”yyy”>
example:
<lastname lang=”EN”>Smith</lastname>
<xs:attribute name=”lang” type=”xs:string”>
简单类型:
只包含字符数据的元素都是简单类型,使用xs:simpleType元素来定义
添加限制,需要用到xs:restriction元素
1、 xs:minInclusive和xs:maxInclusive元素对值得限定
<xs:element name=”age”>
<xs:simpleType>
<xs:restriction baxe=”xs:string”>
<xs:minInclusive value=”18”/>
<xs:maxInclusive value=”58”/>
</xs:restriction>
</xs:simpleType>
</xs:element>
2、xs:enumberation元素对一组值得限定
<xs:element name=”car”>
<xs:simpleType>
<xs:restriction baxe=”xs:string”>
<xs:enumberation value=”Audi”/>
<xs:enumberation value=”Golf”/>
<xs:enumberation value=”BMW”/>
</xs:restriction>
</xs:simpleType>
</xs:element>
3、xs:pattern元素对一系列值得限定
<xs:element name=”letter”>
<xs:simpleType>
<xs:restriction baxe=”xs:string”>
<xs:pattern value=”[a-z]”/>
</xs:restriction>
</xs:simpleType>
</xs:element>
4、xs:whiteSpace元素对空白字符的限定
<xs:element name=”car”>
<xs:simpleType>
<xs:restriction baxe=”xs:string”>
<xs:whiteSpace value=”preserve”/>
</xs:restriction>
</xs:simpleType>
</xs:element>
preserve:不处理
replace:移除
collapse:所以缩减为一个单一字符
复杂类型:
使用xs:complexContent元素来定义
复杂类型的元素可以包含子元素和属性,称为复合元素;如果复合元素十五开始标记和结束标记之间只包含字符数据内容,使用xs:simpleContent,否则,使用xs:complexContent
1、 空元素:
不包含内容,只包含属性
<product prodid=”1234”/>
Schema:
<xs:element name=”product”>
<xs:complexType>
<xs:attribute name=”prodid” type=”xs:positiveInteger”>
</xs:complexType>
</xs:element>
2、 包含其他元素的元素:
<person>
<firstname>John</firstname>
<lastname>Smith</lastname>
</person>
Schema:
<xs:element name=”product”>
<xs:complexType>
<xs:sequence>
<xs:element name=”firstname” type=”xs:string”>
<xs:element name=”lastname” type=”xs:string”>
</xs:squence>
</xs:complexType>
</xs:element>
3、 仅包含文本的元素:
需要使用extension或restriction元素来扩展或限制元素的基本简易类型
<shoesize country=”france”>35</shoesize>
Schema:
<xs:element name=”product”>
<xs:complexType>
<xs:simpleContent>
<xs:extension>
<xs:attribute name=”country” type=”xs:string”>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
4、 包含元素和文本的元素
<letter>
Dear Mr.<name>John Smith</name>
Your order<order>1032</order>
will be shipped on<shipdate>2001-07-13</shipdate>
</letter>
Schema:
<xs:element name=”letter”>
<xs:complexType mixed=”true”>
<xs:sequence>
<xs:element name=”name” type=”xs:string”/>
<xs:element name=”orderid” type=”xs:positiveInteger”/>
<xs:element name=”shipdate” type=”xs:date”/>
</xs:sequence>
</xs:complexType>
</xs:element>
- Java Web程序开发入门--读书笔记(一)
- Java Web程序开发入门--读书笔记(三)
- Java Web程序开发入门--读书笔记(四)
- Java Web程序开发入门--读书笔记(五)
- 《Java Web程序开发入门》知识总结(二)
- 《Java Web程序开发入门》知识总结(三)
- 《Java Web程序开发入门》知识总结(四)
- 《Java Web 程序开发入门》知识总结
- WEB开发入门(一)
- 《响应式web设计》读书笔记(一)入门
- 《响应式web设计》读书笔记(一)入门
- 微信小程序开发-开发入门(一)
- web开发之软件开发读书笔记(一)
- Eclipse+Tomcat Web开发入门(一)
- python Flask Web开发入门(一)
- (14)Web开发入门一
- java web 开发(一)
- java web开发(一)
- 在排序数组中查找和为给定值的两个数字
- windows 10聚焦无法更新锁屏壁纸
- Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
- DOM中的event对象详解 — 第13.3.1节
- 機器人學總結(1) —— 機器人的描述
- Java Web程序开发入门--读书笔记(一)
- Php +Redis 做消息队列
- java基础一 作用域问题、值传递、引用传递
- VS2013/MFC编程入门之十七(对话框:字体对话框)
- PullToRefresh修改上拉下拉加载动画
- c的一个小注意点
- ORACLE手工不完全恢复
- csu1259
- Java实现---向多人、带多附件发邮件