XML约束:可以编写一个文档来对xml的语法格式进行约束,这个过程称为xml约束。
XML的约束分为2种:
1.DTD
2. Schema.
DTD文档后缀名是 dtd.
DTD 语法
1. dtd 外部引入的方式。
<!DOCTYPE 根元素 SYSTEM 在本机中的位置>
<!DOCTYPE 根元素 PUBLIC DTD名称 所在的互联网中的位置>
DTD约束的内容:
1.元素:
<!ELEMENT 元素名 元素约束>
元素约束:
1.存放类型 ANY/EMPTY 2.元素约束(将可以包含的子元素用小括号扩起来)子元素之间可以用逗号分隔,子元素必须按照这个顺序, 子元素还可以用|分隔,表示只能出现之一。 3. PCDATA 表明包含标签体 4 + 号表示1次或多次 5 * 表示0次或多次。6 ? 次或1次。 也可以用小括号进行组的操作。例如:
<!ELEMENT书架(书+)>
<!ELEMENT 书(书名,作者,售价)>
<!ELEMENT 书名(#PCDATA)>
<!ELEMENT 作者(#PCDATA)>
<!ELEMENT 售价(#PCDATA)>
对应的xml文件
<书架>
<书>
<书名>Java就业培训教程</书名>
<作者>张孝祥</作者>
<售价>39.00元</售价>
</书>
</书架>
2:属性:
<!ATTLIST 元素名
属性名1 属性类型 属性约束
属性名2 属性类型 属性约束 >
属性类型: CDATA 表示值为一个字符串
ENUMERATED 属性的值是一个枚举类型 使用方式( XX|XX |XX |)
ID 属性值不能重复。
ENTITY:
引用实体:<!ENTITY 实体名称 "实体内容" > 用在xml文件中 用 &实体名; 来引用该值
参数实体: <!ENTITY % 实体名称 "实体内容" > 用在dtd文档中 用%实体名; 来引用该值
注:xml文件中 ID属性的值不能以数字开头 不能出现空格, 只能有字母下划线开头。
属性约束:
#REQUIED ---当前属性必须存在。
#IMPLIED ---当前属性是可选的
#FIXED "XXXX" ---当前属性具有固定值。 这样的属性不需要进行赋值。值也不能修改
" " ---- 表明当前属性具有默认值。