xsd概述
XML Schemas Definition, XML模式定义。本质仍是xml文档。
它定义了XML文档的结构,可以用一个指定的xsd来验证某个XML文档是否符合其要求。
它定义了XML文档的结构,可以用一个指定的xsd来验证某个XML文档是否符合其要求。
XML Schema本身有很多数据种类。最常见的种类有: * xs:string xs:字符 * xs:decimal xs: 小数 * xs:integer xs:整数 * xs:boolean xs:逻辑值 * xs:date xs:日期 * xs:time xs:时间
Xml Schema的根元素
- <?xml version="1.0"?>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 表示数据类型等定义来自w3
- targetNamespace="http://www.w3schools.com" 表示文档中要定义的元素来自什么命名空间
- xmlns="http://www.w3schools.com" 表示此文档的默认命名空间是什么
- elementFormDefault="qualified"> 表示要求xml文档的每一个元素都要有命名空间指定
- …………………………
- ……定义主体部分……
- …………………………
- </xs:schema>
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 表示数据类型等定义来自w3
targetNamespace="http://www.w3schools.com" 表示文档中要定义的元素来自什么命名空间
xmlns="http://www.w3schools.com" 表示此文档的默认命名空间是什么
elementFormDefault="qualified"> 表示要求xml文档的每一个元素都要有命名空间指定
…………………………
……定义主体部分……
…………………………
</xs:schema>
如何定义一个简单元素
- <xs:element 此处表示要定义一个元素
- name=”color” 表示要定义元素的名称
- type=”xs:string” 表示要定义元素的数据类型
- default=”red” 表示定义元素的默认值
- fixed=”red”/> 表示要定义元素的固定值,此元素只可以取“red”值
<xs:element 此处表示要定义一个元素
name=”color” 表示要定义元素的名称
type=”xs:string” 表示要定义元素的数据类型
default=”red” 表示定义元素的默认值
fixed=”red”/> 表示要定义元素的固定值,此元素只可以取“red”值
枚举限制
- <xs:element name="car" type="carType"/>
- <xs:simpleType name="carType">
- <xs:restriction base="xs:string">
- <xs:enumeration value="Audi"/>
- <xs:enumeration value="KIA"/>
- <xs:enumeration value="BMW"/>
- </xs:restriction>
- </xs:simpleType>
<xs:element name="car" type="carType"/>
<xs:simpleType name="carType">
<xs:restriction base="xs:string">
<xs:enumeration value="Audi"/>
<xs:enumeration value="KIA"/>
<xs:enumeration value="BMW"/>
</xs:restriction>
</xs:simpleType>
定义复杂类型
- <xs:element name="person">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="firstname" type="xs:string"/>
- <xs:element name="lastname" type="xs:string"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
使用指示器
ALL--指示子元素可以以任何顺序出现,并且每一个元素都必须出现一次
- <xs:element name="person">
- <xs:complexType>
- <xs:all>
- <xs:element name="firstname" type="xs:string"/>
- <xs:element name="lastname" type="xs:string"/>
- </xs:all>
- </xs:complexType>
- </xs:element>
<xs:element name="person">
<xs:complexType>
<xs:all>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
Choice——指示子元素中可以出现一个或者另一个
- <xs:element name="person">
- <xs:complexType>
- <xs:choice>
- <xs:element name="employee" type="employee"/>
- <xs:element name="member" type="member"/>
- </xs:choice>
- </xs:complexType>
- </xs:element>
<xs:element name="person">
<xs:complexType>
<xs:choice>
<xs:element name="employee" type="employee"/>
<xs:element name="member" type="member"/>
</xs:choice>
</xs:complexType>
</xs:element>
Sequence——指示子元素必须按照顺序出现
- <xs:element name="person">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="firstname" type="xs:string"/>
- <xs:element name="lastname" type="xs:string"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
minOccurs,maxOccurs ——出现次数指示器
- <xs:element name="person">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="full_name" type="xs:string"/>
- <xs:element name="child_name" type="xs:string"
- maxOccurs="10" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
maxOccurs="10" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>