XML DTD约束文件语法、示范
- DTD文档约束文件
-
- 结构截图
- 示范dtd
- 示范xml(使用上面的dtd约束)
- 引入本地dtd
- xml文件内部引入dtd
- 引入网络dtd
- 语法规则
-
- 定义一个元素的格式
- 简单元素
- 复杂元素
- 定义属性
DTD文档约束文件
结构截图
示范dtd
persondtd.dtd 定义了一些元素(比如persons、person)和一个属性(比如id)
<!ELEMENT persons (person+)> <!ELEMENT person (name,age)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ATTLIST person id CDATA #REQUIRED>
示范xml(使用上面的dtd约束)
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE persons SYSTEM "persondtd.dtd"> <persons> <person id="1"> <name>张三</name> <age>18</age> </person> <person id="2"> <name>李四</name> <age>20</age> </person> </persons>
引入本地dtd
<!DOCTYPE 根元素 SYSTEM "本地dtd文件路径.dtd">
xml文件内部引入dtd
<!DOCTYPE 根元素 [dtd文件内容]>
引入网络dtd
<!DOCTYPE 根元素 PUBLIC "dtd文件名称" "DTD文档的URL">语法规则
定义一个元素的格式
<!ELEMETN 元素名 元素类型>
简单元素
EMPTY 内容为空 ANY 可以为空也可以不为空 #PCDATA 内容为字符串
复杂元素
- 直接写子元素名称
- 多个子元素则用",“或者”|"隔开
(name,age) 逗号隔开表示要子元素按照顺序写 (name|age) 或符号隔开表示只能选其中一个
- 子元素个数限制
? 零次或一次 + 一次或多次 * 零次或多次 如果不写则只出现一次
定义属性
- 格式
<!ATTLIST 元素名称 属性名称 属性的类型 属性的约束>
- 属性类型
CDATA 为字符串 或者写子元素 (name,age)
- 属性约束
#REQUIRED 必须的 #IMPLIED 非必须的 #FIXED value 值是固定的 例如让person标签的id属性值为固定值001 <!ATTLIST person id CDATA #FIXED "001">