一、什么是XML约束
在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,约束文档定义了在XML中允许出现的元素名称、属性及元素出现的顺序等等。
二、为什么需要约束
由于xml的标签由用户自己定义,因此在开发的时候,每个人都可以根据自己的需求来定义xml标签,这样导致项目中的xml难以维护,因此需要使用一定的规范机制来约束xml文件中的标签书写。
三、XML约束有哪些
XML的约束有两种,分别为:
- XML DTD
- XML Schema
四、DTD约束的使用方法
(一)DTD快速入门
第一步:先定义自己的一个XML文件
1 |
|
第二步:书写DTD文件来约束xml文件。
DTD文件在定义的时候,扩展名就是dtd。
1 | <?xml version="1.0" encoding="UTF-8" ?> |
第三步:引入DTD
DTD的引入方式由如下三种
1 | DTD主要用来约束xml文件,DTD可以单独写在文件中,也可以直接定义在xml中,可以在xml中引入第三方的公共DTD。 |
此处,在XML文件中使用的引入方式是使用的第三种
1 |
|
(二)DTD约束语法细节
元素定义:
1 | 当定义DTD约束xml时候,这时需要在DTD中使用ELEMENT来定义当前xml中可以出现的标签名称。 |
属性定义:
1 | 格式: |
1 | 属性值类型: |
1 | a.使用FIXED约束 |
实体定义:
1 | 实体用于为一段内容创建一个别名,以后在XML文档中就可以使用别名引用这段内容了。 |
1 |
|
五、Schema约束的使用方法
(一) Schema简介
1 | Schema它也来约束xml文件的,DTD在约束xml的时候一个xml中只能引入一个DTD,同时DTD它无法对属性以及标签中的数据做数据类型的限定。 |
(二)Schema快速入门
第一步:书写xml文件
1 |
|
第二步:定义schema文件
test.xsd
1 |
|
(三)对上述文件中相关元素及属性的解释
1 | 在schema文件里面 |
1 | 在被约束文件里面引入约束文件 |
(四)Schema的名称空间
1 | 在XML Schema中,每个约束模式文档都可以被赋以一个唯一的名称空间,名称空间用一个唯一的URI(Uniform Resource Identifier,统一资源标识符)表示。 在Xml文件中书写标签时,可以通过名称空间声明(xmlns),来声明当前编写的标签来自哪个Schema约束文档。 |
(五) Schema约束语法细节
- XMLSchema 简易元素和复杂元素
1 | 简易元素:指那些仅包含文本的元素。它不会包含任何其他的元素或属性。 |
- XMLSchema 复杂元素指示器
1 | All: 表示只能出现一次 |
(六)XMLSchema 进阶例子
- company.xsd
1 |
|
- department.xsd
1 |
|
- company.xml
1 |
|
注意:
由于一个标签上不能出现两个同名的属性,所以在引入多个约束文档时,需要给名称空间起一个别名。如company.xml中的第3,4,5行。在之后指定哪一个约束文档时,只需要使用别名即可。