简述
xml通过xml约束文档来实现对自定义的xml的文档的约束,一般有DTD约束文档和schema两种约束方式。
DTD较为简单,schema较为复杂。
DTD约束文档
引入
若约束文档在本地,我们使用:
<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">
若约束文档在网络,我们使用:
<!DOCTYPE 根标签名 PUBLIC "dtd文件的名字" "dtd文件的位置URL">
格式
像这样定义了一个xml文档中的约束
<!ELEMENT Programmers (Programmer*) > <!-- 定义Programmers标签下有Programmer标签,*是正则规则,代表0次或多次 --> <!ELEMENT Programmer (name,age,code)> <!-- 定义Programmers标签下有name,age,code标签,一次,按照顺序 --> <!ELEMENT name (#PCDATA)> <!-- 定义name标签,字符串 --> <!ELEMENT age (#PCDATA)> <!-- 定义age标签,字符串 --> <!ELEMENT code (#PCDATA)> <!-- 定义cod标签e,字符串 --> <!ATTLIST Programmer id ID #REQUIRED> <!-- 定义Programmer属性ID为di,必须出现 -->
其中*代表有若干个子标签,可以有0个或若干个
若为+则必须至少含有一个
schema约束文档
若为DTD约束文档,约束编写者很难约束属性内容
XML Schema 可针对未来的需求进行扩展
XML Schema 更完善,功能更强大
XML Schema 基于 XML 编写 (schema本质上就是一个 xml文件)
XML Schema 支持数据类型(提供的更加丰富的数据类型)
引入
<>里面分别填写:
xmlns是web.xml文件用到的命名空间
1.xml文档的根元素
2.引入xsi前缀,xsi是xml schema instance的缩写,指具体用到的schema资源,一般来说是个URL
3.引入xsd文件命名空间
4.为每一个xsd约束声明一个前缀作为标识
若有多个前缀,则用xmlns加冒号加前缀名形式声明