1.什么是DTD?
文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
2.什么是XML?
3.XML的两种文档约束
XML 被设计用来传输和存储数据。HTML 被设计用来显示数据。
4.XML格式要求(合法XML)
1)有且只有一个根节点;
2)由开始标签和结束标签组成;
3)XML标签区分大小写;
4)正确嵌套标签;
5.使用DTD
5.1 在XML中加入DTD申明
1)内部申明:<! DOCTYPE root[]>
2)外部申明:<!DOCTYPE 文档根节点 SYSTEM “DTD文件名”>
5.2 元素定义语法(DTD对元素的限制)
基本语法:<! ELEMENT 元素名称 元素类型 >
元素分类:EMPTY 空元素
(#PCDATA) 文本元素
(e1,e2) 混合元素
元素限制:,(顺序)、|(或,多选一)、?(0或1次),*(1*0=0,0次或多次), +(1+0=1,1次或多次)
5.3 属性定义语法(DTD对属性的限制)
基本语法:<!ATTLIST 元素名称 属性名称 属性类型 设置说明>
属性类型:ID/CDATA/ENUM (男|女)
设置说明:#REQUIRED(必须)/#IMPLIED(可选)
5.4 特殊符号转义
&(逻辑与) --> &
>(大于) --> >
<(小于) --> <
‘(单引号) --> '
“(双引号) --> "
<?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) (name,age...):混合元素
3)限制:
3.1) , 代表:元素的出场顺序
3.2) 、 代表:多选一
3.3) ? 代表:可有可无 元素出现0次或一次
3.4) * 代表:元素出现0次或者N次
3.5) + 代表:元素出现1次或者N次 至少出现一次
3.属性定义:attribute
3.1)语法:<!ATTLIST 元素名称 属性名称 属性类型 设置说明>
3.2)类型:
1)ID:唯一、不能以/或者数字开头
2)文本:CDATA
3)枚举: 多选一、例如:(男|女|妖)
3.3)设置说明:
1)必填:#REQUIRED required
2)可选: #IMPLIED implied
-->
<!DOCTYPE persons[
<!ELEMENT persons (person+)>
<!ELEMENT person (name,age,contact,br?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT contact (phone|mail|qq|wechat)>
<!ELEMENT br EMPTY>
<!ELEMENT mail (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
<!ATTLIST person
pid ID #REQUIRED
paddr CDATA #IMPLIED
psex (男|女|妖) "男"
>
]>
<persons>
<person pid="p01" paddr="123" psex="男">
<name>张三</name>
<age>select * from t_book where price > 100 and price < 200</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>