在XML技术力可以编写一个文档来约束一个XML文档的书写规范,称之为XML约束
常用约束技术:
--XML DTO
--XML Schema
编写一个简单的Schema 约束文件:book.xsd
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace ="http://www.dong.com"
elementFormDefault="qualified">
<element name="书架">
<!-- 复合类型 -->
<complexType>
<!-- 序列,unbounded 最大出现次数不受限制 -->
<sequence maxOccurs="unbounded">
<element name="书">
<complexType>
<sequence maxOccurs="unbounded">
<!-- type 定义类型 -->
<element name="书名" type="string"></element>
<element name="作者" type="string"></element>
<element name="售价" type="string"></element>
</sequence>
</complexType>
</element>
<element name="杂物" type="string"></element>
</sequence>
</complexType>
</element>
</schema>
编写一个XML引入该约束:book.xml
<?xml version="1.0" encoding="utf-8"?>
<书架 xmlns="http://www.dong.com"
xsi:schemaLocation="http://www.dong.com book.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<书>
<售价>12</售价>
<书名>22</书名>
<作者>董*龙</作者>
</书>
<杂物>
12
</杂物>
</书架>
schema约束规范:
1.所有标签和属性都需要有schema来定义
2.所有的schema文件都需要一个id,这里叫做命名空间namespace,由targetNamespace指定
3.引入schema约束,通过xmlns属性,值为约束文档的namespace及id值,
每个文档都有,引入http://www.w3.org/2001/XMLSchema
4.elementForDefault="qualified" 关联所有标签
5.如果引入的schema文件约束不是W3C组织定义的必须要制定schema文件的位置
6.schema文件的位置由schemaLocation来指定,值为namespace 的值加 文件名
7.而schemaLocation 由W3C约束文档来指定,需要引入xmlns:dd ="http://www.w3.org/2001/XMLSchema-instance"
8.dd表示别名,告诉由哪个约束来定义的属性,所有schemaLocation 前面需要加dd:
schema约束重要知识
1.namespace:相当于schema文件的id
2.targetNameSpace:用来指定schema文件的namespace的值
3.xmlns属性:用来引入一个约束,值为一个schema文件的的namespace的值
4.schemaLocation:用来指定引入的schema文件的位置,namespace 文件名.xsd