1.什么是DTD?
文档类型定义(约束)
2.什么是XML?
HTML:超文本标记语言 a/b/c/z
XML:可扩展标记语言
3.XML的两种文档约束:
DTD:Schema
4.XML格式要求(合法XML)
1)有且只有一个根节点;
2)由开始标签和结束标签组成;
3)XML标签区分大小写;
4)正确嵌套标签;
5.使用DTD
5.1 在XML中加入DTD申明
1)内部申明:
2)外部申明:
5.2 元素定义语法(DTD对元素的限制)
基本语法:
元素分类:EMPTY 空元素
(#PCDATA) 文本元素
(e1,e2) 混合元素
元素限制:,(顺序)、|(或,多选一)、?(0或1次),*(1*0=0,0次或多次), +(1+0=1,1次或多次)
5.3 属性定义语法(DTD对属性的限制)
基本语法:
属性类型:ID/CDATA/ENUM (男|女)
设置说明:#REQUIRED(必须)/#IMPLIED(可选)
5.4 特殊符号转义
&(逻辑与) --> &
>(大于) --> >
<(小于) --> <
‘(单引号) --> '
“(双引号) --> "
person.xml
<?xml version="1.0" encoding="UTF-8" ?> <!-- 1.DTD申明 1)内部申明:<!DOCTYPE 根节点[]> 2)外部申明:<!DOCTYPE 根节点 SYSTEM "DTD外部文件路径"> 2.元素定义 1)语法:(!ELEMENT 元素名称 元素类型) 2)类型: 2.1)空元素:EMPTY 2.2)文本元素:(#PCDATA) 2.3)混合元素:(e1,e2,e3,...) 3)限制: 3.1),代表:元素出现的顺序 3.2)|代表:多选一 3.3)?代表:元素出现0次或1次(可有可无) 3.4)*代表:元素出现0次或n次 3.5)+代表:元素必须出现1次或n次 3.属性定义 attribute list 1)语法:<!ATTLIST 元素名称 属性名称 设置说明> 2)类型: 2.1)ID:唯一,不能以/或者数字开头 2.2)CATA:文本 2.3)枚举:多选一,例如:(男或女) 3)设置说明: 3.1)必须: #REQUIRED 3.2)可选:#IMPLIED 4.特殊字符转义 --> <!-- <!DOCTYPE persons[ <!ELEMENT persons (person*)> <!ELEMENT person (name,age,contact,br?)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT contact (phone|mail)> <!ELEMENT phone (#PCDATA)> <!ELEMENT mail (#PCDATA)> <!ELEMENT br EMPTY> <!ATTLIST person pid ID #REQUIRED paddr CDATA #IMPLIED psex(男|女|妖) > ]> --> <!DOCTYPE config SYSTEM "person.dtd"> <persons> <person pid="p01" paddr="123" psex="男"> <name>张三</name> <age>22</age> <contact> <phone>15882821111</phone> </contact> <br/> </person> <person pid="p02"> <name>李四</name> <age>23</age> <contact> <mail>123@qq.com</mail> </contact> </person> </persons>
person.dtd
<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT persons (person*)> <!ELEMENT person (name,age,contact,br?)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT contact (phone|mail)> <!ELEMENT phone (#PCDATA)> <!ELEMENT mail (#PCDATA)> <!ELEMENT br EMPTY> <!ATTLIST person pid ID #REQUIRED paddr CDATA #IMPLIED psex(男|女|妖) >