XML Schema Definition(XSD)
XML本身也是XML文档,其根元素是<schema.../>
<schema.../>支持的属性:
elementFormDefault=qualified | unqualified:用于指定在XML文档中使用该Schema中的定义的局部元素时是否必须命名空间。
atttributeFormDefault=qualified | unqualified:用于指定在XML文档中使用该Schema中的定义的局部属性时是否必须命名空间。
Schema使用<element..,/>定义元素。
Schema使用<attribute.../>定义属性,属性必须指明其所属的元素后,方可使用。
Schema有两种方式指定元素或属性的类型:
1:直接type属性指定一个全局的数据类型,type的值是一个数据类型名。
2:使用局部的数据类型。
使用全局数据类型示例:
<?xml version="1.0" encoding="GBK"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="element1" type="xs:string"/>
<xs:attribute name="attribute1" type="xs:boolean"/>
</xs:schema>
使用局部数据类型示例:
<?xml version="1.0" encoding="GBK"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="element1">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:maxInclusive value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
命名空间
XML Schema文件的命名空间方法:
xxx.xsd
<?xml version="1.0" encoding="GBK"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.namespace.org/Schema" targetNamespace="http://www.namespace.org/Schema"> ... </xs:schema>
xmlns[:xxx]属性作用:引入语义约束,xxx为该命名空间的限定名,
http://www.w3.org/2001/XMLSchema是XML Schema语义约束的命名空间。
xmlns=http://www.namespace.org/Schema表明使用该命名空间的组件,无需使用前缀。
targetNamespace=http://www.namespace.org/Schema表明该Schema定义的元素、属性和类型等Schema组件放在那个命名空间下。
在XML中引用Schema的方法:
<?xml version="1.0" encoding="GBK"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
</web-app>