DTD技术

DTD技术
文档类型定义----Document Type Definition
用来描述XML文档的结构,一个DTD文档包含:
1、元素的定义规则
2、元素之间的关系规则
3、属性的定义规则

使用DTD可以:
每个XML文件可以携带一个自身格式的描述
不同组织的人可以使用一个通用DTD用来交换数据
应用程序可以使用一个标准DTD校验从外部接受的XML数据是否有效

DTD文档的声明以及引用:

内部DTD
<!DOCTYPE 根元素 [定义内容]>

外部DTD文档
<!DOCTYPE 根元素 SYSTEM "DTD文件路径">

内外部DTD文档结合
<!DOCTYPE根元素 SYSTEM "DTD文件路径 [定义内容]>

---------------------------
元素的定义:
<!ELEMENT NAME CONTENT>
<!关键字 元素名称 元素类型>

元素类型:
EMPTY ---不能包含子元素和文本,但可以有属性(空元素)
#PCDATA---可以包含任何字符数据,但是不能在其中包含任何子元素
纯元素类型---只包含子元素,并且这些子元素外没有文本
ANY----------可以包含任何在DTD中定义的元素内容


<!ELEMENT 元素名称 EMPTY>

<!ELEMENT 元素名称 (#PCDATA)>

<!ELEMENT 元素名称 (人+,家电*)>

<!ELEMENT 元素名称 ANY> ----将根元素设置为ANY,元素出现的次数和顺序不受限制
通常一般用在子元素里面

() 给元素分组
| 在列出的对象中选择一个
, 对象按照指定顺序出现
* 0-多次
? 0-1次
+ 1-多次

 

<!DOCTYPE CCTV-6 [
<!ELEMENT CCTV-6(电影+)>
<!ELEMENT 电影(名称,主演+,类型?,片长)>
<!ELEMENT 名称 (#PCDATA)>
<!ELEMENT 主演 (#PCDATA)>
<!ELEMENT 类型 (#PCDATA)>
<!ELEMENT 片长 (#PCDATA)>
]>

定义属性的语法:
<!ATTLIST 元素名称 属性名称 属性类型 属性特点...>

属性类型——----------------------------------------------
CDATA --- <!ATTLIST 元素名称 CDATA #REQUIRED>
表示属性值可以是任何字符(包括数字和中文)
<木偶 姓名="Pi Luocao"/>
<木偶 姓名="匹诺曹"/>
ID----------<!ATTLIST 公司职员
编号 ID #REQUIRED
姓名 CDATA #REQUIRED>
该属性的取值是唯一的

IDREF/IDREFS----<!ELEMENT 家庭 (人+)>
<!ELEMENT 人 EMPTY>
<ATTLIST 人
relID ID #REQUIRED
parentID IDREFS #IMPLIED
name CDATA #REQUIRED
>
IDREF属性的值只向文档中其他地方声明的ID类型的值
IDREFS,同IDREF,但是可以具有由空格分开的多个引用

Enumerated------<!ATTLIST person
婚姻状态 (未婚|结婚|离婚) #IMPLIED>
<!ATTLIST person 性别(男|女) #REQUIRED>
预定义一些值,属性的值必须在所在的值范围内

 

属性特点——
#REQUIRED
#IMPLIED
#FIXED value
Default value

 

posted @ 2017-09-14 23:46  盛夏光年2017  阅读(254)  评论(0编辑  收藏  举报