1、DTD
2、schema
2.1、命名空间
2.2、元素和属性
2.3、相关约束
3、深入schema
3.1、数据模型的创建
3.2、相关设计方案
3.2.1、Russian Doll(俄罗斯玩偶)
3.2.2、Salami Slice(腊肠切片)
3.2.3、Venetian Blind(百叶窗方式)建议使用,前面两者的结合
3.3、schema与java的转换
4、java与xml
4.1、jaxb处理xml
4.2、stax处理xml
4.2.1、基于光标查找
4.2.2、基于迭代模型查找
4.2.3、过滤器的使用
4.2.4、XPath的使用
4.2.5、使用XMLStreamWriter创建xml
4.2.6、使用Transformer更新节点信息
Xml的内容有DTD、Schema约束
1、DTD
缺点:
1、命名重复问题,person内的name和person内的message的name英文名name不能重复。
2、控制的精细程度不够。比如对性别控制。男女定义。
3、dtd语法与xml语法风格不一致。
实例:
1、persons.dtd
<!DOCTYPE persons[
<!ELEMENT persons (person)>
<!ELEMENT person (id,name,password,age)>
<!--控制符?表示0或者1次,*表示0或者多次,+表示1次或者多次,默认表示1次-->
<!ATTLIST person sex CDATA #REQUIRED>
<!--#REQUIRED 必须的。CDATA值为字符-->
<!ELEMENT id (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT password (#PCDATA)>
<!ELEMENT age (#PCDATA)>
]>
persons.xml
<persons>
<person sex="男">
<id></id>
<name></name>
<password></password>
<age></age>
</person>
</persons>
2、persons.dtd
<!DOCTYPE persons[
<!ELEMENT persons (person)>
<!ELEMENT person (id,name,password,age)>
<!--控制符?表示0或者1次,*表示0或者多次,+表示1次或者多次,默认表示1次-->
<!ATTLIST person sex CDATA #REQUIRED>
<!--#REQUIRED 必须的。CDATA值为字符-->
<!ATTLIST person id ID #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT password (#PCDATA)>
<!ELEMENT age (#PCDATA)>
]>
persons.xml
<persons>
<person id=”p1” sex="男">
<id></id>
<name></name>
<password></password>
<age></age>
</person>
</persons>
2、schema
2.1、命名空间
2.2、元素和属性
2.3、相关约束
3、深入schema
3.1、数据模型的创建
3.2、相关设计方案
3.2.1、Russian Doll(俄罗斯玩偶)
3.2.2、Salami Slice(腊肠切片)
3.2.3、Venetian Blind(百叶窗方式)建议使用,前面两者的结合
3.3、schema与java的转换
4、java与xml
4.1、jaxb处理xml
4.2、stax处理xml
4.2.1、基于光标查找
4.2.2、基于迭代模型查找
4.2.3、过滤器的使用
4.2.4、XPath的使用
4.2.5、使用XMLStreamWriter创建xml
4.2.6、使用Transformer更新节点信息