1.webservice
{
[
xml
DTD
Schema
]
CXF
}
2.九种java设计模式(共21种)
3.SpringBoot(time?)高并发(redis,Linux)
4.SpringCloud
{
[
xml
DTD
Schema
]
CXF
}
2.九种java设计模式(共21种)
3.SpringBoot(time?)高并发(redis,Linux)
4.SpringCloud
XMl{1.是解析型的语言不是高级语言(只有一个版本1.0)没有编译的过程
2.是可扩展的标记型语言
3.命名规则:只能是_和字母开头可以由数字下划线组成
4.同一个元素里属性不能重复
5.
高级语言:都有编译器
xml头部写法(可写可不写如果不写浏览器不会执行世界标准,执行浏览器自己的标准)[
1.预处理的部分(头部)属性是有先后顺序[
version是必须第一个出现(如果书写了头部强制要求必须写!)
]
<?xml version="1.0" encoding="utf-8"?>
?与xml之间不能有空格(?是用来调用预处理器)
<test>wenben</test>
<元素> 文本 结束标记
]
2.顶层元素,又叫根元素,root element[
一个xml文件只能有一个根元素
]
<students>
<student id="1001" name="">zhangsan</student>
↑ ↑ ↑ ↑
元素 属性 值 文本
<student id="1002" name="">zhangsan</student>
其中:<student>叫开始标记 </student>叫结束标记
<student id="1003" name="">zhangsan
<name></name>这是子元素
</student>
<student id="1004" name="">zhangsan</student>
</students>
3.元素的名称和属性的名的命名规范[
1.严格区分大小写,html不区分大小写
2.
]
4.注释不可以嵌套<!-- -->
CDATA节[
1.里面存放的都是不能被解析的纯文本
2.不能放在根元素标签外边
写法:
<![CDATA[
文本写这里的文本不能被解析
]]>
]
5子元素的结束标记一定要在父元素结束标记之前写[
正确:<students>
<student>wula
<name>lala
<age>19</age>
</name>
</student>
</students>
错误:<students>qi
<student>wula
<name>lala
<age>19
</name></age>
</student>
</students>
]
}
================================================================================================
DTD{
1.是一门语言
2.是可扩展的标记型语言
3.命名规则:只能是_和字母开头可以由数字下划线组成
4.同一个元素里属性不能重复
5.
高级语言:都有编译器
xml头部写法(可写可不写如果不写浏览器不会执行世界标准,执行浏览器自己的标准)[
1.预处理的部分(头部)属性是有先后顺序[
version是必须第一个出现(如果书写了头部强制要求必须写!)
]
<?xml version="1.0" encoding="utf-8"?>
?与xml之间不能有空格(?是用来调用预处理器)
<test>wenben</test>
<元素> 文本 结束标记
]
2.顶层元素,又叫根元素,root element[
一个xml文件只能有一个根元素
]
<students>
<student id="1001" name="">zhangsan</student>
↑ ↑ ↑ ↑
元素 属性 值 文本
<student id="1002" name="">zhangsan</student>
其中:<student>叫开始标记 </student>叫结束标记
<student id="1003" name="">zhangsan
<name></name>这是子元素
</student>
<student id="1004" name="">zhangsan</student>
</students>
3.元素的名称和属性的名的命名规范[
1.严格区分大小写,html不区分大小写
2.
]
4.注释不可以嵌套<!-- -->
CDATA节[
1.里面存放的都是不能被解析的纯文本
2.不能放在根元素标签外边
写法:
<![CDATA[
文本写这里的文本不能被解析
]]>
]
5子元素的结束标记一定要在父元素结束标记之前写[
正确:<students>
<student>wula
<name>lala
<age>19</age>
</name>
</student>
</students>
错误:<students>qi
<student>wula
<name>lala
<age>19
</name></age>
</student>
</students>
]
}
================================================================================================
DTD{
1.是一门语言
DTD: 文档类型定义(Document Type Definition)
DTD: .xml .dtd 文件扩展名(外部DTD文件好处可以复用)
DTD: dtd的作用???
从需求的角度上对XML进行约束。
CDATA :字符串
ID:1.ID的取值和XML的命名规范完全一致
2.ID的取值 不能相同
NMTOKEN:取值中间不能有空格
IDREF: REF是引用的意思 取值可以引用一个已有的ID值
IDREFS:取值可以引用多个已有的ID值 可以重复取值
DTD: .xml .dtd 文件扩展名(外部DTD文件好处可以复用)
DTD: dtd的作用???
从需求的角度上对XML进行约束。
CDATA :字符串
ID:1.ID的取值和XML的命名规范完全一致
2.ID的取值 不能相同
NMTOKEN:取值中间不能有空格
IDREF: REF是引用的意思 取值可以引用一个已有的ID值
IDREFS:取值可以引用多个已有的ID值 可以重复取值
属性的默认值
<!ATTLIST 元素名 属性名 "默认值" >
如果一个属性设置的默认值则是不可以写#IMPLIED 因为他默认就是可有可无的
属性的常量值#FIXED
<!ATTLIST 元素名 属性名 "默认值" >
如果一个属性设置的默认值则是不可以写#IMPLIED 因为他默认就是可有可无的
属性的常量值#FIXED
<!ATTLIST 元素名 属性名 数据类型 #FIXED "常量值" >
如果一个属性设置了常量值则不可以写#REQUIRED 因为他默认就是必须存在的
如果一个属性设置了常量值则不可以写#REQUIRED 因为他默认就是必须存在的
内部DTD和外部DTD
内部DTD只能约束当前的xml
实体 ENTITY(替换)
补充:
| 或
枚举(男|女)
}
daomforjie
java解析xml
xml的解析技术
练习:
<商品目录>
<商品 编号="101">
<食品 编号="102">
<乳制品 编号="103">
<酸乳酪 编号="104">
<品种>酸乳酪</品种>
<数量>16</数量>
<价格>5元</价格>
</酸乳酪>
<奶油 编号="106">
<品种>鲜口奶油</品种>
<数量>40</数量>
<价格>7元</价格>
</奶油>
<奶油 编号="1072">
<品种>草莓味奶油</品种>
<数量>12</数量>
<价格>5元</价格>
</奶油>
</乳制品>
<熟食类 编号="105">
<品种>猪蹄</品种>
<数量>19</数量>
<价格>10元</价格>
</熟食类>
</食品>
<百货 编号="109">
<个人清洁用品 编号="107">
<品种>洗面奶</品种>
<数量>20</数量>
<价格>12元</价格>
</个人清洁用品>
</百货>
</商品>
</商品目录>
<商品目录>
<商品 编号="101">
<食品 编号="102">
<乳制品 编号="103">
<酸乳酪 编号="104">
<品种>酸乳酪</品种>
<数量>16</数量>
<价格>5元</价格>
</酸乳酪>
<奶油 编号="106">
<品种>鲜口奶油</品种>
<数量>40</数量>
<价格>7元</价格>
</奶油>
<奶油 编号="1072">
<品种>草莓味奶油</品种>
<数量>12</数量>
<价格>5元</价格>
</奶油>
</乳制品>
<熟食类 编号="105">
<品种>猪蹄</品种>
<数量>19</数量>
<价格>10元</价格>
</熟食类>
</食品>
<百货 编号="109">
<个人清洁用品 编号="107">
<品种>洗面奶</品种>
<数量>20</数量>
<价格>12元</价格>
</个人清洁用品>
</百货>
</商品>
</商品目录>
答案:
<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY % myentity "(品种,数量,价格)">
<!ENTITY % myentity2 "编号 CDATA #REQUIRED">
<!ENTITY % myentity "(品种,数量,价格)">
<!ENTITY % myentity2 "编号 CDATA #REQUIRED">
<!ELEMENT 商品目录 (商品)>
<!ELEMENT 商品 (食品,百货)>
<!ELEMENT 食品 (乳制品,熟食类)>
<!ELEMENT 百货 (个人清洁用品)>
<!ELEMENT 乳制品 (酸乳酪,奶油+)>
<!ELEMENT 酸乳酪 %myentity;>
<!ELEMENT 奶油 (品种,数量,价格)>
<!ELEMENT 熟食类 (品种,数量,价格)>
<!ELEMENT 个人清洁用品 (品种,数量,价格)>
<!ELEMENT 商品 (食品,百货)>
<!ELEMENT 食品 (乳制品,熟食类)>
<!ELEMENT 百货 (个人清洁用品)>
<!ELEMENT 乳制品 (酸乳酪,奶油+)>
<!ELEMENT 酸乳酪 %myentity;>
<!ELEMENT 奶油 (品种,数量,价格)>
<!ELEMENT 熟食类 (品种,数量,价格)>
<!ELEMENT 个人清洁用品 (品种,数量,价格)>
<!ELEMENT 品种 (#PCDATA)>
<!ELEMENT 数量 (#PCDATA)>
<!ELEMENT 价格 (#PCDATA)>
<!ELEMENT 数量 (#PCDATA)>
<!ELEMENT 价格 (#PCDATA)>
<!ATTLIST 商品 %myentity2;>
<!ATTLIST 食品 %myentity2;>
<!ATTLIST 百货 %myentity2;>
<!ATTLIST 乳制品 %myentity2;>
<!ATTLIST 酸乳酪 %myentity2;>
<!ATTLIST 奶油 %myentity2;>
<!ATTLIST 熟食类 %myentity2;>
<!ATTLIST 个人清洁用品 %myentity2;>
<!ATTLIST 食品 %myentity2;>
<!ATTLIST 百货 %myentity2;>
<!ATTLIST 乳制品 %myentity2;>
<!ATTLIST 酸乳酪 %myentity2;>
<!ATTLIST 奶油 %myentity2;>
<!ATTLIST 熟食类 %myentity2;>
<!ATTLIST 个人清洁用品 %myentity2;>
====================================================================================================================
Schema
Schema DTD 完全一致
Schema 用来约束xml的
DTA来约束Schema
.xsd
优点{
- Schema 的语法和xml的完全一致
- int,double,float,boolean,data,time。。
}