DTD
DTD
- 创建一个文件,这个文件的后缀名为.dtd
- 看xml文件中使用了哪些元素
<!ELEMENT>
可以定义元素
- 判断元素是简单元素还是复杂元素
- 简单元素:没有子元素
- 复杂元素:有子元素的元素
<!ELEMENT persons (person)>
<!ELEMENT person (name, age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
引入DTD,约束xml文档
<?xml version="1.0" encoding="UTF-8" ?>
<!--引入DTD约束,约束xml文档-->
<!DOCTYPE persons SYSTEM 'persondtd.dtd'>
<persons>
<person>
<name>张三</name>
<age>23</age>
</person>
</persons>
引入DTD约束的三种方法
- 引入本地dtd
<!DOCTYPE 根标签的名字 SYSTEM '本地dtd文件的路径'>
- 在xml文件内部引入
<?xml version="1.0" encoding="UTF-8" ?><!--引入DTD约束,约束xml文档--><!DOCTYPE persons [ <!ELEMENT persons (person)> <!ELEMENT person (name, age)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> ]><persons> <person> <name>张三</name> <age>23</age> </person></persons>
- 引入网络dtd
<!DOCTYPE 根标签的名字 PUBLIC "dtd文件的名称" "dtd文档的URL">
DTD语法规则
定义一个元素的格式为:<!ELEMENT 元素名 元素类型>
- 简单元素
- EMPTY: 表示标签体为空
- ANY: 表示标签体可以为空也可以不为空
- PCDATA: 表示该元素的内容部分为字符串
- 复杂元素
- 直接写子元素名称
- 多个子元素可以使用“,”或者“|”隔开;
- “,”表示定义子元素的顺序
- “|”:表示子元素只能出现任意一个
- “?”:零次或一次
- "+": 一次或多次
- "*": 零次或多次
- 如果不写则表示出现一次
定义一个属性的格式为:<!ATTLIST 元素名称 属性名称 属性的类型 属性的约束>
- 属性的类型:
- CDATA类型:普通的字符串
- 属性的约束:
# REQUIRED
: 必须的# IMPLIED
: 属性不是必须的# FIXED value
: 属性值是固定的