1.1什么是DTD约束:
DTD(Document Type Definition)文档类型定义,用来约束xml文档。规定xml文档中元素的名称,子元素的名称及顺序,元素的属性等等。
1.2关于使用
-
XML 可扩展标记语言 标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言
DTD约束 (Document Type Definition) 文档类型定义
Schema约束 -
什么是格式良好XML
1.1 有且只有一个根元素
1.2 XML标签大小写正确区分
1.3 正确使用结束标签
1.4 正确嵌套标签
1.5 使用了合法的标签名
1.6 定义有效的属性 -
在XML加入DTD声明
-
元素定义的语法
<!ELEMENT element-name (type)> -
元素的分类
<!ELEMENT element-name EMPTY>//空元素 <!ELEMENT element-name (#PCDATA)>//文本元素 <!ELEMENT element-name (e1,e2)>//混合元素 -
元素的限制
,
|
次数: +, 1~n
*, 0~n
?, 0或1
默认有且只有一个 -
属性定义的语法 ()
<!ATTLIST element-name att_name type 属性(ATTLIST)ATT是attribute的缩写
LIST 是集合的意思
ID
(男|女)
CDATA
IDREF#REQUIRED/#IMPLIED
-
XML中的特殊符号
&(逻辑与) &
<(小于) <
(大于) >
"(双引号) "
'(单引号) ’
1.3实例:
dtd约束文件。
<!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
>
]>
对应的xml文件:
<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>