什么是XML约束?
- 在XML技术里,可以编写一个文档(文件)来约束一个XML文档的书写规范,这称之为XML约束。
常用的约束技术:
- XML DTD
- XML Schema
schema约束文档的创建步骤:
**1、创建一个以.xsd结尾的文件,定义xml文档的书写规范:例如:book.xsd
<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.atguigu.com/bookSchema"
elementFormDefault="qualified">
<element name="书架">
<complexType>
<sequence maxOccurs="unbounded">
<element name="书">
<complexType>
<sequence>
<element name="书名" type="string" />
<element name="作者" type="string" />
<element name="售价" type="string" />
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>
**2、新建一个book.xml文件,使用定义好的规范编辑。
<?xml version="1.0" encoding="UTF-8"?>
<书架 xmlns="http://www.atguigu.com/bookSchema"
xmlns:dd="http://www.w3.org/2001/XMLSchema-instance"
dd:schemaLocation="http://www.atguigu.com/bookSchema book.xsd">
<书>
<书名>JavaScript开发</书名>
<作者>老佟</作者>
<售价>28.00元</售价>
</书>
</书架>
schema规范:
1、所有的标签和属性都需要schema文件来定义。例如:boo.xml中的标签必须在boox.xsd中进行定义。
2、所有的schema文件都需要有一个标识类似id,在这里叫做namespace;
3、namespace的值由targetNamespace属性来指定,它的值是一个url(这个地址不一定存在)
4、引入一个Schema约束:属性xmlns,属性值:对应的schema文件的namespace,elementFormDefault默认只关联根标签。
5、如果引入的schema不是w3c定义的,必须指定schema的位置。
6、schema文件的位置由:属性:schemaLocation,属性值:namespace 定义的schema文件名。
要使用schemaLocation属性,还要引入一个文档
xmlns="http://www.w3.org/2001/XMLSchema-instance"
这个时候有两个xmlns,就需要起一个别名xmlns:bb
,为了区分属性schemaLocation属性是哪个约束的,就需要这样写bb:schemaLocation
7、如果引入了N个约束,需要给n-1个取别名。