DTD约束其实相对来看比较简单,功能比较少,所以接受的成本也比较低。
从以下两个方面说下DTD约束吧
- 如何引入DTD约束文件
DTD如何约束xml文件
如何引入DTD约束文件
引入DTD文件分为两种,内部引用和外部引用
1.1 内部引用
<!DOCTYPE root [
<!ELEMENT root (to,from,name)>
<!ELEMENT to (#PCDATA)
]>
1.2 外部引用
<!DOCTYPE root SYSTEM "root.dtd">
<!DOCTYPE root PUBLIC "http://.....">
DTD如何约束标签
2.1 约束标签
<!ELEMENT root(to?,from+,name*)>
表示:root标签下有3个子元素
to:出现零次或者一次
from:至少出现一次
name:出现零次或者多次
2.2 约束属性
<!ATTLIST 元素名 属性名 属性类型 默认值>
属性类型可以选择的值包含:
CDATA:字符类型
(en1|en2…):枚举类型
ID:唯一值,但不可以数字开头
默认值:
值:默认值REQUIRED:必须的
IMPLIED :非必须的
FIXED 值:固定值