1.DTD约束标签
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons [
<!ELEMENT persons (person+)><!-- 0-n个 -->
<!ELEMENT person (name,age,contact,br?)><!-- 0-1个 -->
<!ELEMENT name (#PCDATA)><!-- 文本标签 -->
<!ELEMENT age (#PCDATA)><!-- 文本标签 -->
<!ELEMENT contact (phone|email)><!-- 或者 -->
<!ELEMENT phone (#PCDATA)><!-- 文本标签 -->
<!ELEMENT email (#PCDATA)><!-- 文本标签 -->
<!ELEMENT br EMPTY><!-- 空标签 -->
]>
<persons><!-- 跟目录/混合标签 -->
<person><!-- 混合标签 -->
<name>张小明</name><!-- 文本标签 -->
<age>10</age><!-- 文本标签 -->
<contact><!-- 混合标签 -->
<phone>1234567</phone><!-- 文本标签 -->
</contact>
<br/><!-- 空标签 -->
</person>
<person>
<name>张大明</name>
<age>35</age>
<contact>
<email>123@qq.com</email>
</contact>
</person>
<person>
<name>张大明</name>
<age>35</age>
<contact>
<email>123@qq.com</email>
</contact>
</person>
</persons>
2.DTD约束标签-属性(完结版本)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons [
<!-- 给标签添加约束 -->
<!ELEMENT persons (person+)><!-- 0-n个 -->
<!ELEMENT person (name,age,contact,br?)><!-- 0-1个 -->
<!ELEMENT name (#PCDATA)><!-- 文本标签 -->
<!ELEMENT age (#PCDATA)><!-- 文本标签 -->
<!ELEMENT contact (phone|email)><!-- 或者 -->
<!ELEMENT phone (#PCDATA)><!-- 文本标签 -->
<!ELEMENT email (#PCDATA)><!-- 文本标签 -->
<!ELEMENT br EMPTY><!-- 空标签 -->
<!-- 给属性添加约束 -->
<!ATTLIST person
pid ID #REQUIRED
sex (男|女) '男'
qq CDATA #IMPLIED
parent IDREF #IMPLIED
>
]>
<persons>
<person pid="p1" sex="男" qq="aaa" parent="p2">
<name>张小明</name>
<age>10</age>
<contact>
<phone>1234567</phone>
</contact>
<br/>
</person>
<person pid="p2">
<name>张大明</name>
<age>35</age>
<contact>
<email>123@qq.com</email>
</contact>
</person>
</persons>