DTD语法
1.元素
<!ELEMNT 元素名称 元素的约束>
(1)元素约束存放的类型:ANY/EMPTY
(2)元素约束:子元素的列表,将可以包含的子元素用小括号括起来
(3)子元素之间可以使用逗号进行分割,表明子元素必须按照顺序出现
(4)子元素之间可以使用竖线进行分割,表面子元素出现其中之一
PCDATA 表明包含标签体
+ 表示一次或多次
* 0次或多次
? 0次或一次
我们也可以使用小括号进行组的操作
2.属性
<!ATTLIST 元素名
属性名 属性类型 属性约束
属性名2 属性类型 属性约束
......
>
(1)属性类型
CDATA:表示属性的值是一个普通字符串
ENUMERATED : 属性的值是一个枚举列表中的值
ID: 表明属性的值必须在整个文档中都是唯一的,如果有重复的id则校验不通过,ID 属性的值只能由字母,下划线开始,不能使用数字,不能出现空白字符
(2)属性约束
#required --- 表明当前属性是一个必须存在的属性,如果这样的属性不存在则在校验时会报错
#IMPLIED --- 表明当前属性是一个可选的属性,可以有也可以没有
#FIXED '固定值' --- 表明当前属性具有一个固定值,这样的属性不需要进行赋值,自动就会取这个固定值为值.如果这样的属性指定了一个不是固定值的值则校验报错
'默认值' --- 表明当前属性具有一个默认值,如果给了其他的值就用其他值,如果没有给值则取这个默认值
(3)ENTITY(实体)
<!ENTITY >,就是对一大段内容的引用,可以简化代码的复用
引用实体:在xml中引用的实体叫做引用实体
<!ENTITY 实体名称 “实体内容” >
&实体名称;
参数实体:在dtd中引用的实体叫做参数实体
<!ENTITY % 实体名称 "实体内容">
%实体名称;