1、XML对Schema文档的引用123 |
2、Schema文档概述123 |
3、Schema之简单元素、复合元素和属性 |
4、Schema约束 |
5、Schema指示器 |
6、如何创建一份XMLSchema And XML Elements |
和XML文档一样,Schema文档同样有一个根元素,其他的元素都镶嵌在根元素内部,如:
<?xml version="1.0" encoding="utf-8"?> <xs:schema id="test" targetNamespace="http://tempuri.org/test.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/test.xsd" xmlns:mstns="http://tempuri.org/test.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:element name ="Person"> <xs:complexType > <xs:sequence > <xs:element name ="ID"> <xs:simpleType > <xs:restriction base ="xs:int"> <xs:minExclusive value ="101"></xs:minExclusive> <xs:maxExclusive value ="200"></xs:maxExclusive> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name ="Name" type ="xs:string" ></xs:element> <xs:element name ="Gender" > <xs:simpleType > <xs:restriction base ="xs:string"> <xs:enumeration value ="男"></xs:enumeration> <xs:enumeration value ="女"></xs:enumeration> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
schema的关键就是:简单元素,复合元素和属性:
1、所谓简单元素就是只含有文本的XML元素。它不可以含有其他元素或属性,如:
<xs:element name ="bigman"> <xs:simpleType > <xs:restriction base ="xs:string"> <xs:maxLength value ="4"></xs:maxLength> </xs:restriction> </xs:simpleType> </xs:element>
simpleType指示Age元素为简单类型,restriction来对其进行约束(最小值为0,最大值为120);
2、所谓复合元素就是说是含有其他元素或属性的XML元素;
2.1、包含其他元素的复合元素的定义:
<xs:element name ="women"> <xs:complexType > <xs:sequence > <xs:element name ="girl"></xs:element> <xs:element name ="biggirl"></xs:element> </xs:sequence> </xs:complexType> </xs:element>
2.2、包含属性的复合元素的定义:
<xs:element name ="women"> <xs:complexType > <xs:sequence > <xs:element name ="girl"></xs:element> <xs:element name ="biggirl"></xs:element> </xs:sequence> <xs:attribute name ="weight" type ="xs:double"></xs:attribute> </xs:complexType> </xs:element>
2.3、复合元素对简单元素的引用:
<xs:element name ="bigman"> <xs:simpleType > <xs:restriction base ="xs:string"> <xs:maxLength value ="4"></xs:maxLength> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name ="man" > <xs:complexType > <xs:sequence > <xs:element ref ="bigman" ></xs:element> <xs:element name ="smallman" type ="xs:string"></xs:element> </xs:sequence> </xs:complexType> </xs:element>
复合元素man的第一个子元素引用了已经定义好的简单元素bigman,而他的第二个子元素则是最直接的一个简单元素;
2.4、复合元素对复合元素的引用:
<?xml version="1.0" encoding="utf-8"?> <xs:schema id="test" targetNamespace="http://tempuri.org/test.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/test.xsd" xmlns:mstns="http://tempuri.org/test.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:element name ="bigman"> <xs:simpleType > <xs:restriction base ="xs:string"> <xs:maxLength value ="4"></xs:maxLength> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name ="man" > <xs:complexType > <xs:sequence > <xs:element ref ="bigman" ></xs:element> <xs:element name ="smallman" type ="xs:string"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name ="women" > <xs:complexType > <xs:sequence > <xs:element name ="girl" type ="xs:string" ></xs:element> <xs:element name ="biggirl" type ="xs:string" ></xs:element> </xs:sequence> <xs:attribute name ="weight" type ="xs:double" use ="required"></xs:attribute> </xs:complexType> </xs:element> <xs:element name ="Person"> <xs:complexType > <xs:sequence > <xs:element ref ="man"></xs:element> <xs:element ref ="women"></xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
该份Schema的定义可以理解为:人类包括男性和女性,而男性和女性又分别含有男孩和男人、女孩和女人,女性还有她们最在乎的体重这一属性,复合元素Person分别引用了man和women两个复合元素,同时复合元素man也引用了简单元素bigman;较复杂的Schema也就是元素之间的相互引用和相互嵌套构成的;
更多参考http://www.cnblogs.com/caoxch/archive/2006/11/17/563856.html