很早以前看过一句话:“XML就象空气”,在企业应用开发中XML是一个重要的数据交换标准。而XSD则可以用来校验XML的数据格式是否正确。
一个典型的XSD文件如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!-- edited with XMLSpy v2013 (http://www.altova.com) by () --> 3 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> 4 <xs:element name="AWB"> 5 <xs:annotation> 6 <xs:documentation>运单</xs:documentation> 7 </xs:annotation> 8 <xs:complexType> 9 <xs:sequence> 10 <xs:element name="AWB-INFO" minOccurs="1" maxOccurs="1"> 11 <xs:complexType> 12 <xs:sequence> 13 <xs:element name="AWBPRE"> 14 <xs:annotation> 15 <xs:documentation>运单前缀只有输入3位数字</xs:documentation> 16 </xs:annotation> 17 <xs:simpleType> 18 <xs:restriction base="xs:positiveInteger"> 19 <xs:totalDigits value="3"/> 20 </xs:restriction> 21 </xs:simpleType> 22 </xs:element> 23 <xs:element name="AWBNO"> 24 <xs:annotation> 25 <xs:documentation>运单号只能输入8位数字</xs:documentation> 26 </xs:annotation> 27 <xs:simpleType> 28 <xs:restriction base="xs:positiveInteger"> 29 <xs:totalDigits value="8"/> 30 </xs:restriction> 31 </xs:simpleType> 32 </xs:element> 33 </xs:sequence> 34 </xs:complexType> 35 </xs:element> 36 <xs:element name="PART-INFO"> 37 <xs:complexType> 38 <xs:sequence> 39 <xs:element name="PARTICIPANT" minOccurs="2" maxOccurs="unbounded"> 40 <xs:annotation> 41 <xs:documentation>物流参与者至少要有2个</xs:documentation> 42 </xs:annotation> 43 <xs:complexType> 44 <xs:sequence> 45 <xs:element name="TYPE"> 46 <xs:annotation> 47 <xs:documentation>物流参考者类型,只能是A/S/C其中之一</xs:documentation> 48 </xs:annotation> 49 <xs:simpleType> 50 <xs:restriction base="xs:string"> 51 <xs:enumeration value="C"/> 52 <xs:enumeration value="S"/> 53 <xs:enumeration value="A"/> 54 </xs:restriction> 55 </xs:simpleType> 56 </xs:element> 57 <xs:element name="ADDRESS" type="AddressType"/> 58 </xs:sequence> 59 </xs:complexType> 60 </xs:element> 61 </xs:sequence> 62 </xs:complexType> 63 </xs:element> 64 </xs:sequence> 65 </xs:complexType> 66 </xs:element> 67 <xs:complexType name="AddressType"> 68 <xs:sequence> 69 <xs:element name="Name" type="xs:string"/> 70 <xs:element name="Street" type="xs:string"/> 71 <xs:element name="City" type="xs:string"/> 72 </xs:sequence> 73 </xs:complexType> 74 </xs:schema>