1.什么是DTD?
文档类型定义 (document type definition) (用来约束XML文档)规定子元素的名称以及顺序,元素的属性等
2.什么是XML?
HTML:超文本标记语言
XML:可扩展标记语言
3.XML的两种文档约束
DTD(主要要学的)和Schema
4.XML格式要求(合法XML)
1)有且只有一个根节点;
2)由开始标签和结束标签组成;
3)XML标签区分大小写;
4)正确嵌套标签;
5)使用合法的标签名,不能使用特殊符号;
6)定义有效的属性;
5.使用DTD
5.1 在XML中加入DTD申明
1)内部申明:<!DOCTYPE root[]>
2)外部申明:<!DOCTYPE 文档根节点 SYSTEM(PUBLIC) “DTD文件名”>
5.2 元素定义语法(DTD对元素的限制)
基本语法:<!ELEMENT 元素名称 元素类型 >
元素分类:EMPTY 空元素 <br/>
(#PCDATA) 文本元素
(e1,e2) 混合元素
元素限制:, 逗号(顺序)
| 竖条(或,多选一)
? 问号(0或1次)
* 星号(1*0=0,0次或多次)
+ 加号(1+0=1,1次或多次)
5.3 属性定义语法(DTD对属性的限制)
基本语法:<!ATTLIST 元素名称 属性名称 属性类型 设置说明>
属性类型:ID 唯一确定的属性值
CDATA 字符数据
ENUM (男|女) "男" 枚举类型
IDREF 属性值是一个id的引用,引用一个标识的唯一元素
设置说明:#REQUIRED(必须)
#IMPLIED(可选)
5.4 特殊符号转义
&(逻辑与) --> &
>(大于) --> >
<(小于) --> <
‘(单引号) --> '
“(双引号) --> "
代码如下:
<!DOCTYPE persons[
<!ELEMENT persons (person+) >
<!ELEMENT person (name,age,contact,br?) >
<!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>
</persons>
<!DOCTYPE persons[
<!ELEMENT persons (person+) >
<!ELEMENT person (name,age,contact,br?) >
<!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>
思维导图: