<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 根元素 [ <!-- 根目录定义, 如果dtd为单独的文件, 在xml使用 <!DOCTYPE 根元素 SYSTEM "文件名"> -->
<!ELEMENT 根元素 (基本, 次数+, 或1+, 或2+, 属性元素+, 使用实休)> <!-- 定义元素: 根目录的子元素 -->
<!-- <!ELEMENT 元素名称 类型> 或 <!ELEMENT 元素名称 (元素内容)> -->
<!ELEMENT 基本 (文本, 空元素, 带有任何内容的元素)>
<!-- 子元素信息, PCDATA = 解析的字符数据(parsed character data), CDATA = 字符数据(character data) -->
<!ELEMENT 文本 (#PCDATA)>
<!ELEMENT 空元素 EMPTY>
<!ELEMENT 带有任何内容的元素 ANY>
<!-- 带有子元素 <!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)> -->
<!ELEMENT 次数 (只一次, 至少一次+, 零次或多次*)>
<!ELEMENT 只一次 (#PCDATA)>
<!ELEMENT 至少一次 ANY>
<!ELEMENT 零次或多次 ANY>
<!ELEMENT 或1 ((或值1_1|或值1_2))> <!-- 或值1_1与或值1_2只能出现一个 -->
<!ELEMENT 或值1_1 (#PCDATA)>
<!ELEMENT 或值1_2 (#PCDATA)>
<!ELEMENT 或2 ((或值2_1|或值2_2)*)> <!-- 或值2_1与或值2_2可"不出现", 出现一个, 同时出现 -->
<!ELEMENT 或值2_1 (#PCDATA)>
<!ELEMENT 或值2_2 (#PCDATA)>
<!ELEMENT 属性元素 (#PCDATA)>
<!-- <!ATTLIST 属性元素 属性名称 属性类型 默认值> -->
<!--
属性类型选项:
CDATA 值为字符数据 (character data)
(v1|v2|..) 此值是枚举列表中的一个值
ID 值为唯一的 id
IDREF 值为另外一个元素的 id
IDREFS 值为其他 id 的列表
NMTOKEN 值为合法的 XML 名称
NMTOKENS 值为合法的 XML 名称的列表
ENTITY 值是一个实体
ENTITIES 值是一个实体列表
NOTATION 此值是符号的名称
xml: 值是一个预定义的 XML 值
值 属性的默认值
#REQUIRED 属性值是必需的
#IMPLIED 属性不是必需的 <!ATTLIST 元素名称 属性名称 属性类型 #IMPLIED>
#FIXED value 属性值是固定的
-->
<!ATTLIST 属性元素 属性名称 CDATA "默认值">
<!ATTLIST 属性元素 非必要属性1 CDATA #IMPLIED>
<!ATTLIST 属性元素 非必要属性2 CDATA #IMPLIED>
<!-- 没有默认值选项,但是仍然希望强制作者提交属性的话,请使用关键词 #REQUIRED -->
<!ATTLIST 属性元素 必要属性 CDATA #REQUIRED>
<!ATTLIST 属性元素 固定值属性 CDATA #FIXED "value">
<!ATTLIST 属性元素 枚举属性值 (v1|v2) "v1"> <!-- <!ATTLIST 元素名称 属性名称 (en1|en2|..) 默认值> -->
<!--
实体相当于定义变量, 是用于定义引用普通文本或特殊字符的快捷方式的变量
实体引用是对实体的引用
实体可在内部或外部进行声明
<!ENTITY 实体名称2 SYSTEM1 "URI/URL"> 外部实体定义
-->
<!ENTITY 实体名称 "实体的值"> <!-- 内部实体定义 -->
<!ENTITY 实体名称1 "1 2 3 4 5"> <!-- 定义实体, 实体引用使用 &实体名称1; -->
<!ELEMENT 使用实休 (e1+)>
<!ELEMENT e1 (#PCDATA)>
]>
<根元素>
<基本>
<文本>text</文本>
<空元素 />
<带有任何内容的元素>111</带有任何内容的元素>
</基本>
<次数>
<只一次>111</只一次>
<至少一次>222</至少一次>
<至少一次>333</至少一次>
</次数>
<次数>
<只一次>111</只一次>
<至少一次>222</至少一次>
<至少一次>333</至少一次>
<零次或多次>4444</零次或多次>
<零次或多次>4444</零次或多次>
<零次或多次>4444</零次或多次>
<零次或多次>4444</零次或多次>
</次数>
<或1>
<或值1_1>1</或值1_1>
</或1>
<或1>
<或值1_2>1</或值1_2>
</或1>
<或2>
<或值2_1>1</或值2_1>
<或值2_2>1</或值2_2>
</或2>
<属性元素 属性名称="aa" 非必要属性1="333" 必要属性="33" 固定值属性="value" 枚举属性值="v2" />
<使用实休>
<e1>&实体名称1;</e1>
</使用实休>
</根元素>