<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
xml声明头,必须在第一行,注释也不能放前边。
version 使用的xml文件版本,目前只有1.0,w3c于2000年发布;
encoding 标识该xml文件以那种编码解析,如果保存时的编码集与该声明不一致,则会
出现乱码,默认值为UTF-8。
standalone 表示该文件是否是独立的,yes|no,yes表示是独立的。
-->
<!--
DTD约束包括三个部分,元素、属性、实体的定义。
元素标签为ELEMENT,该标签用来表现XML文件的元素之间的层级关系。
属性标签为ATTLIST,该标签用来说明元素与属性之间的表现关系。
实体标签为ENTITY,该标签用来简化内容输入。
-->
<!DOCTYPE SCHOOL [
<!--
语法:<!ELEMENT 元素名称 使用规则>
使用规则只能任选其一:
(#PCDATA):说明该元素内部出现的是普通文本
EMPTY:说明不能有主体内容
ANY:用于指示元素的主体内容为任意类型
(子元素):指示标签内部的其他嵌套标签
-->
<!--
pcdata表示该元素内部是文本,并且没有子元素。
-->
<!ELEMENT PCDATA (#PCDATA)>
<!--
该规则表示元素不能有任何内容,包括字节点等等,与PCDATA有区别为,PCDATA允许空字符。
并且与指令和CDATA区没有关系。
-->
<!ELEMENT EMPTY EMPTY>
<!--
该规则表示元素可以有任何内容。
-->
<!ELEMENT ANY ANY>
<!--
element元素不能重复定义来指定子元素,只能通过,和|来定义子元素集合。
-->
<!ELEMENT PARENT (CHILD)>
<!--ELEMENT PARENT (ABC) -->
<!--
逗号分割表示子元素必须按照顺序使用。
-->
<!ELEMENT CHILDS (A,B,C)>
<!--
|表示子元素只能有一个存在.
-->
<!ELEMENT CHILDRENS (A|B|C)>
<!--
+表示子元素至少出现一次.
-->
<!ELEMENT CHILD_PLUS (A+)>
<!--
*表示子元素出现任意次.
-->
<!ELEMENT CHILDRENS_MULTIPLY (A*)>
<!--
?表示子元素出现1次或者0次.
-->
<!ELEMENT CHILDRENS_WHAT (A?)>
<!--
默认表示子元素必须出现1次并只能出现一次.
-->
<!ELEMENT CHILDRENS_DEFAULT (A)>
<!--
元素的子集和可以用小括号进行分组来使用统一的规则,也可以进行复杂的设计。
-->
<!ELEMENT CHILDRENS_DEFAULTA (A,(C+|D)*,(F?,G)?,(X*,Y)+)>
<!--
<!ATTLIST 元素名称
属性名称1 属性值类型 设置说明
属性名称2 属性值类型 设置说明
>
属性值类型:
CDATA:属性取值为普通字符
ENUMERATED (DTD没有此关键字):表示枚举,只能从枚举列表中任选其一,如(鸡肉|牛肉|猪肉|鱼肉)
ID:表示属性的取值不能重复
设置说明:
#REQUIRED:说明该属性为必填项
#IMPLIED:说明属性为可选项
#FIXED:说明属性的取值为固定值
直接值:表示属性的取值为该默认值
-->
<!--
属性表可以单行单个属性定义,也可以进行多行同时定义.
-->
<!ATTLIST PCDATA body CDATA #REQUIRED>
<!ATTLIST PCDATA game CDATA #IMPLIED>
<!ATTLIST PCDATA
body CDATA #REQUIRED
game CDATA #REQUIRED
>
<!--
枚举需要用选择列表来表示,以|分割,同时默认值必须是列表内的元素。
-->
<!ATTLIST CHILDRENS_DEFAULT CASE (HardShell|Soft|NotApplicable) "HardShell">
<!--
ID表示属性值不能重复,并且不能以数字和非法字符开头。
-->
<!ATTLIST CHILDRENS_DEFAULTA CASE ID "HardShell">
]>
DTD总结
最新推荐文章于 2024-04-27 12:46:54 发布