棣栧厛錛屾垜浠啓鍑轟竴涓渶綆鍗曠殑XML鏂囨。.
hello.xml
-------------------
<?xml version="1.0"?>
<greeting>Hello World!!</greeting>
錛堜竴涓牴鍏冪礌錛歡reeting錛涗笖榪欎釜鍏冪礌涓嶅惈灞炴э紝鏃犲瓙鍏冪礌錛屽唴瀹規(guī)槸瀛楃涓層傦級(jí)
hello.xsd
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="greeting" type="xsd:string"/>
</xsd:schema>
XML Schema鏂囨。鍚庣紑鍚嶆槸.xsd錛屽畬鍏ㄧ鍚圶ML璇硶錛屾牴鍏冪礌鏄痵chema錛屽懡鍚嶇┖闂磝mlns:xsd="http://www.w3.org/2001/XMLSchema錛岀敤鍏冪礌<element>瀹氫箟瀹炰緥鏂囨。涓殑鍏冪礌錛屽greeting銆?br>
鍋囪瀹炰緥鏂囨。鏄涓嬬殑錛?/p>
customer.xml
-----------
<customer>
<name>teiki</name>
<address>No.237, Road Waitan, Shanghai</address>
</customer>
鍒欏彲浠ュ啓鍑轟互涓嬬殑XML Schema鏂囨。錛?br>customer.xsd
----------------
1: <?xml version="1.0"?>
2: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3: <xsd:element name="customer">
4: <xsd:complexType>
5: <xsd:sequence>
6: <xsd:element name="name" type="xsd:string"/>
7: <xsd:element name="address" type="xsd:string" />
8: </xsd:sequence>
9: </xsd:complexType>
10: </xsd:element>
11: </xsd:schema>
瀹炰緥鏂囨。customer.xml涓紝<customer>鍏冪礌鍚湁涓や釜瀛愬厓绱狅紝鎵浠ユ垜浠湪Schema鏂囨。涓噰鐢–omplexType鏉ュ畾涔夎鍏冪礌銆?/p>
sequence琛ㄧず瀛愬厓绱犱緷嬈″嚭鐜扮殑欏哄簭銆?br>
榪欐鎴戜滑緇欏嚭涓涓洿鍔犲鏉備竴浜涚殑鏂囨。錛?/p>
address.xml
---------------
<customer>
<name>Teiki</name>
<address>
<!-- address榪藉姞涓涓湴鍧瀛愬厓绱?nbsp;-->
<prefecture>Zhejiang</prefecture>
<city>Hangzhou</city>
<street>Xilu Road, No.121, 7F</street>
</address>
</customer>
涓烘錛屾垜浠渶瑕佷竴涓洿鍔犲鏉備竴鐐圭殑Schema鏂囨。錛?/p>
address.xsd
-----------------
1: <?xml version="1.0"?>
2: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3:
4: <xsd:element name="customer">
5: <xsd:complexType>
6: <xsd:sequence>
7: <xsd:element name="name" type="xsd:string"/>
8: <!-- 榪藉姞瀛愬厓绱燼ddress-->
9: <xsd:element name="address">
10: <xsd:complexType>
11: <xsd:sequence>
12: <xsd:element name="prefecture" type="xsd:string"/>
13: <xsd:element name="city" type="xsd:string" />
14: <xsd:element name="street" type="xsd:string" />
15: </xsd:sequence>
16: </xsd:complexType>
17: </xsd:element>
18: <!-- end -->
19: </xsd:sequence>
20: </xsd:complexType>
21: </xsd:element>
22:
23:</xsd:schema>
涓嶈繃錛屾垜浠繕鍙互閲囩敤ref鍏冪礌鏉ラ噸鏂扮紪鍐欒繖涓猄chema鏂囨。錛?br>address2.xsd
----------------------
1: <?xml version="1.0"?>
2: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3:
4: <xsd:element name="customer">
5: <xsd:complexType>
6: <xsd:sequence>
7: <xsd:element name="name" type="xsd:string"/>
8: <xsd:element ref="address"/>
9: </xsd:sequence>
10: </xsd:complexType>
11: </xsd:element>
12:
13: <xsd:element name="address">
14: <xsd:complexType>
15: <xsd:sequence>
16: <xsd:element name="prefecture" type="xsd:string"/>
17: <xsd:element name="city" type="xsd:string" />
18: <xsd:element name="street" type="xsd:string" />
19: </xsd:sequence>
20: </xsd:complexType>
21: </xsd:element>
22:
23: </xsd:schema>
浣跨敤ref鍏冪礌鍙互鐩存帴灝嗗叾鎸囧悜鍙︿竴涓ā鍧楋紝浣挎枃妗f洿鍔犲叿鏈夊彲璇繪с?/p>
璺熸垜瀛ML Schema(4):濡備綍瀹氫箟灞炴у憿錛?nbsp;
鍔犲叆瀹炰緥鏂囨。鐨勫厓绱犲寘鍚睘鎬э紝鎬庝箞鍔炲憿錛?/p>
customer2.xml
---------------
<customer id="001718">
<name>Teiki</name>
<address>No.237, Road Waitan, Shanghai</address>
</customer>
閭e氨榪欐牱鍐橲chema鏂囨。錛?br>customer2.xsd
------------------
1: <?xml version="1.0"?>
2: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3:
4: <xsd:element name="customer">
5: <xsd:complexType>
6: <xsd:sequence>
7: <xsd:element name="name" type="xsd:string"/>
8: <xsd:element name="address" type="xsd:string" />
9: </xsd:sequence>
10: <!-- 澧炲姞灞炴у畾涔?nbsp;-->
11: <xsd:attribute name="id" type="xsd:string"/>
12: </xsd:complexType>
13: </xsd:element>
14:
15: </xsd:schema>
寰堢畝鍗曪紝鍦?lt;sequence>鍏冪礌瀹氫箟瀹屾垚鍚庯紝鍐嶇敤<attribute>鍏冪礌id銆?/p>
鍏堢湅榪欎釜綆鍗曠殑璁㈣喘鏁版嵁瀹炰緥鏂囨。錛?/p>
order.xml
---------
<order>
<orderItem>Accounting Book</orderItem>
<orderItem>Taxation Book</orderItem>
</order>
鍋囪<orderItem>鍏冪礌錛屽嵆姣忔鐨勮璐功鐩笉鑳借秴榪?0縐嶏紝閭h鎬庝箞鍐欒繖涓猄chema鏂囨。鍛紵榪欓噷瑕佺敤鍒?lt;element>鐨刴axOccurs灞炴с?/p>
order.xsd
--------------------
1:<?xml version="1.0"?>
2:<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3:
4: <xsd:element name="order">
5: <xsd:complexType>
6: <xsd:sequence>
7: <xsd:element name="orderItem" type="xsd:string" maxOccurs="10" />
8: </xsd:sequence>
9: </xsd:complexType>
10: </xsd:element>
11:
12:</xsd:schema>
絎?琛屼腑鐨刴axOccurs灞炴т負(fù)10錛屼唬琛╫rderItem鍏冪礌鍙互鏈澶ф湁10涓傚鏋滐紝涓嶈瀹氬厓绱犱釜鏁幫紝鍒欏彲浠ョ敤maxOccurs="unbounded"鏉ュ畾涔?
綾諱技錛屽鏋滆瀹氫箟鏈灝忓鹼紝鍙互浣跨敤minOccurs錛屾瘮濡備笅闈㈣繖鍙ワ細(xì)
<xsd:element name="orderItem" type="xsd:string" minOccurs="5" maxOccurs="10"/>
榪欎袱涓睘鎬х己鐪佸奸兘鏄?銆?/p>
鍋囧涓婇潰鐨勮涔︽暟鎹腑錛屽彲浠ョ敤涔﹀悕鎴栬呬功鍙蜂換涓涓縐嶈璐紝鍒欏疄渚嬫枃妗e彲鑳藉涓嬶細(xì)
order2.xml
-----------------
<order>
<orderItem>
<!--涔﹀悕璁㈣喘-->
<name>Accounting Book</name>
</orderItem>
<orderItem>
<!--涔﹀彿璁㈣喘-->
<id>7-5058-3496-7</id>
</orderItem>
</order>
榪欐椂涔﹀啓Schema鏂囨。榪橀渶瑕佷嬌鐢╟hoice鍏冪礌銆?/p>
order2.xsd
-------------------------
1:<?xml version="1.0"?>
2:<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3:
4: <xsd:element name="order">
5: <xsd:complexType>
6: <xsd:sequence>
7: <xsd:element ref="orderItem" maxOccurs="10" />
8: </xsd:sequence>
9: </xsd:complexType>
10: </xsd:element>
11:
12: <xsd:element name="orderItem">
13: <xsd:complexType>
14: <xsd:choice>
15: <xsd:element name="name" type="xsd:string"/>
16: <xsd:element name="id" type="xsd:string"/>
17: </xsd:choice>
18: </xsd:complexType>
19: </xsd:element>
20:
21:</xsd:schema>
鍐嶇◢寰慨鏀逛竴涓嬭涔︽暟鎹殑瀹炰緥鏂囨。錛?/p>
order3.xml
-----------------
<order>
<orderItem>
<name>Accounting Book</name>
<quantity>2</quantity>
</orderItem>
<orderItem>
<id>7-5058-3496-7</id>
</orderItem>
</order>
榪欓噷鍋囧畾<quantity>鍊間負(fù)1鏃訛紝緙虹渷銆?/p>
濡備綍淇敼Schema鏂囨。鍛紵
order3.xsd
-----------------
1:<?xml version="1.0"?>
2:<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3:
4: <xsd:element name="order">
5: <xsd:complexType>
6: <xsd:sequence>
7: <xsd:element ref="orderItem" maxOccurs="10"/>
8: </xsd:sequence>
9: </xsd:complexType>
10: </xsd:element>
11:
12: <xsd:element name="orderItem">
13: <xsd:complexType>
14: <xsd:sequence>
15: <xsd:choice>
16: <xsd:element name="name" type="xsd:string"/>
17: <xsd:element name="id" type="xsd:string"/>
18: </xsd:choice>
19: <xsd:element name="quantity" type="xsd:string" minOccurs="0"/>
20: </xsd:sequence>
21: </xsd:complexType>
22: </xsd:element>
23:
24:</xsd:schema>
19琛屼腑鐨剄uantity鏈灝戝嚭鐜板間負(fù)0錛屼篃灝辨槸鍙互鏈夛紝涔熷彲浠ユ病鏈夈?br>褰撶劧錛屼篃鍙互鐩存帴鍦?lt;choice>鍏冪礌涓紝鍖呭惈quantity,鐒跺悗瀹氫箟瀹冪殑minOccurs銆?/p>
鍐呭緩浜嶺ML Schema鐨勭畝鍗曠被鍨嬫湁44縐嶃備粬浠湪XML Schema鎺ㄨ崘鏍囧噯鐨勭浜岄儴鍒嗕腑鍏竷錛屼笅闈㈣繖鏄竴寮犲唴緗被鍨嬬殑灞傛緇撴瀯鍥撅細(xì)
http://www.w3.org/TR/2001/PR-xmlschema-2-20010330/type-hierarchy.jpg
濡傛灉鍐呯疆綆鍗曠被鍨嬬殑44縐嶈繕?shù)笉鑳芥弧鑳鲨姹傚Q屾庝箞鍔炲憿錛熶笅闈㈠涔?fàn)鑷畾涔壗巰鍗曠被鍨嬨?XML鐨勬墿灞曟у厖鍒嗕綋鐜板湪榪欓噷)
渚嬪榪欎釜瀹炰緥鏂囨。錛?/p>
order4.xml
-----------------
<order>
<orderItem>
<id>7-5058-3496-7</id>
<quantity>5</quantity>
</orderItem>
</order>
ID鏄竴涓爣鍑嗙殑ISBN緙栫爜錛屾垜浠庝箞瀹氫箟榪欎釜ISBN緙栫爜鍛紵
<xsd:simpleType name="idType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{1}-\d{4}-\d{4}-\d{1}"/>
</xsd:restriction>
</xsd:simpleType>
idType鏄竴涓嚜瀹氫箟鐨勭畝鍗曠被鍨嬨?br>鎴戜滑瀵瑰畠鍋氫簡(jiǎn)闄愬埗錛?br><xsd:restriction base="xsd:string">浠h〃瀹冩槸鍩轟簬涓涓瓧絎︿覆綾誨瀷銆傚啀鐢╬attern鍏冪礌鏉ユ弿榪拌瀛楃涓茬殑褰㈠紡銆?/p>
value="\d{1}-\d{4}-\d{4}-\d{1}"榪欐槸涓涓鍒欒〃杈懼紡錛屽叧浜庢鍒欒〃杈懼紡錛屼互鍚庡啀浠嬬粛銆傚樆鍢伙紒
鍒╃敤榪欎釜鑷畾涔夌殑綆鍗曠被鍨嬶紝鎴戜滑鍙互閲嶆柊鍐橲chema鏂囨。錛?/p>
order4.xsd
---------------
1:<?xml version="1.0"?>
2:<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3:
4: <xsd:element name="order">
5: <xsd:complexType>
6: <xsd:sequence>
7: <xsd:element ref="orderItem" maxOccurs="10"/>
8: </xsd:sequence>
9: </xsd:complexType>
10: </xsd:element>
11:
12: <xsd:element name="orderItem">
13: <xsd:complexType>
14: <xsd:sequence>
15: <xsd:element name="id" type="idType"/>
16: <xsd:element name="quantity" type="xsd:integer"/>
17: </xsd:sequence>
18: </xsd:complexType>
19: </xsd:element>
20:
21: <xsd:simpleType name="idType">
22: <xsd:restriction base="xsd:string">
23: <xsd:pattern value="\d{1}-\d{4}-\d{4}-\d{1}"/>
24: </xsd:restriction>
25: </xsd:simpleType>
26:
27:</xsd:schema>
鍋囧鎴戜滑浜嬪厛紜畾濂絀D鍙湁3涓紝鍗沖彧鏈?涓狪SBN鏄彲閫夌殑錛岄偅鎬庝箞鍔烇紵鎴戜滑鍙互鐢╡numeration鍏冪礌鏉ヨ繘琛屽垪涓俱?/p>
<xsd:simpleType name="idType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="7-5058-3496-7"/>
<xsd:enumeration value="7-5005-6450-3"/>
<xsd:enumeration value="7-3020-6069-7"/>
</xsd:restriction>
</xsd:simpleType>
鍐嶆潵鐪嬭璐噺quantity鐨勫鹼紝濡傛灉鎴戜滑璁懼畾鍏跺煎繀欏誨湪1錛?0涔嬮棿錛岃鎬庝箞鍔炲憿錛熷彲浠ヨ繖浜涜嚜瀹氫箟涓涓畝鍗曠被鍨嬨?/p>
<xsd:simpleType name="quantityType">
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="10"/>
</xsd:restriction>
</xsd:simpleType>
鍏朵腑錛宮inInclusive,maxInclusive鍒嗗埆浠h〃璇ョ被鍨嬬殑鍙栧艱寖鍥淬?/p>
鎵浠ユ渶緇堜慨鏀瑰悗鐨凷chema鏂囨。濡備笅錛?/p>
order4-1.xsd
----------------------
1:<?xml version="1.0"?>
2:<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3:
4: <xsd:element name="order">
5: <xsd:complexType>
6: <xsd:sequence>
7: <xsd:element ref="orderItem" maxOccurs="10"/>
8: </xsd:sequence>
9: </xsd:complexType>
10: </xsd:element>
11:
12: <xsd:element name="orderItem">
13: <xsd:complexType>
14: <xsd:sequence>
15: <xsd:element name="id" type="idType"/>
16: <xsd:element name="quantity" type="quantityType"/>
17: </xsd:sequence>
18: </xsd:complexType>
19: </xsd:element>
20:
21: <xsd:simpleType name="idType">
22: <xsd:restriction base="xsd:string">
23: <xsd:enumeration value="7-5058-3496-7"/>
<xsd:enumeration value="7-5005-6450-3"/>
<xsd:enumeration value="7-3020-6069-7"/>
26: </xsd:restriction>
27: </xsd:simpleType>
28:
29: <xsd:simpleType name="quantityType">
30: <xsd:restriction base="xsd:integer">
31: <xsd:minInclusive value="1"/>
32: <xsd:maxInclusive value="10"/>
33: </xsd:restriction>
34: </xsd:simpleType>
35:
36:</xsd:schema>
鏈鍚庯紝鎴戜滑鍐嶆潵璁茶鍏冪礌鐨勫睘鎬у浣曞湪Schema鏂囨。涓畾涔夈?/p>
姣斿涓婇潰鐨刼rder.xml瀹炰緥鏂囨。涓細(xì)
<order>
<orderItem id="7-5058-3496-7" />
</order>
瀵規(guī)錛屾垜浠湪Schema鏂囨。涓噰鐢ㄤ竴涓猘ttribute鏉ュ畾涔夛細(xì)
order.xsd
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛?br><xsd:element name="orderItem">
<xsd:complexType>
<xsd:sequence>銆銆←絀哄厓绱?br> </xsd:sequence>銆
<!--瀹氫箟璇ュ厓绱犲睘鎬?->
<xsd:attribute name="id" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
閭d箞錛屽疄渚嬫枃妗d腑璇ュ睘鎬у兼槸蹇呴』鐨勮繕鏄彲鏈夊彲鏃犵殑鍛紵鎴戜滑鍙互榪欐牱闄愬埗錛?/p>
<xsd:attribute name="id" type="idType" use="required"/>
榪欓噷鎴戜滑璁瞚d灞炴х被鍨嬩綔涓轟竴縐嶈嚜瀹氫箟鏁版嵁綾誨瀷idType銆?br>鑰屼笖錛岀敤attribute鍏冪礌鐨剈se灞炴ф潵瀹氫箟鏄惁鏄繀欏葷殑灞炴с?br>required鏄繀欏誨鹼紝optional鏄彲閫夊鹼紝prohibited鏄棤灞炴у箋?/p>
閭d箞瀵逛簬灞炴х殑緙虹渷鍊鹼紝鎴戜滑鎬庝箞瀹氫箟鍛紵
姣斿錛?br><order>
<orderItem id="4-8443-1780-6" quantity="3"/>
</order>
鎴戜滑榪樺彲浠ョ敤attribute鍏冪礌鐨勫彟涓涓睘鎬efault鏉ュ畾涔夛細(xì)
<xsd:attribute name="quantity" type="xsd:integer" default="1"/>
鎵浠ワ紝鎴戜滑鍙互閲嶆柊鍐欏嚭涓涓猄chema鏂囨。錛?/p>
order2.xsd
--------------
<xsd:element name="orderItem">
<xsd:complexType>
<xsd:sequence></xsd:sequence>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="quantity" type="xsd:integer" default="1"/>
</xsd:complexType>
</xsd:element>
order3.xsd
----------------
1: <xsd:element name="orderItem">
2: <xsd:complexType>
3: <xsd:sequence></xsd:sequence>
4: <xsd:attributeGroup ref="orderItemAttributes"/>
5: </xsd:complexType>
6: </xsd:element>
7:
8: <xsd:attributeGroup name="orderItemAttributes">
9: <xsd:attribute name="id" type="idType" use="required"/>
10: <xsd:attribute name="quantity" type="xsd:integer" default="1"/>
11: </xsd:attributeGroup>
榪欎釜灞炴х粍灝變笉璇︾粏瑙i噴浜?jiǎn)锛屼笉杩囧Q屽ぇ瀹朵竴鐪嬪氨娓呮浜?jiǎn)鍚с?/p>
鏈鍚庯紝鎴戜滑鍐欎竴涓畬鏁寸殑璁功order.xml鐨凷chema鏂囨。銆?br>1: <?xml version="1.0"?>
2: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3:
4: <xsd:element name="order">
5: <xsd:complexType>
6: <xsd:sequence>
7: <xsd:element ref="orderItem" maxOccurs="10"/>
8: </xsd:sequence>
9: </xsd:complexType>
10: </xsd:element>
11:
12: <xsd:element name="orderItem">
13: <xsd:complexType>
14: <xsd:sequence></xsd:sequence>
15: <xsd:attributeGroup ref="orderItemAttributes"/>
16: </xsd:complexType>
17: </xsd:element>
18:
19: <xsd:attributeGroup name="orderItemAttributes">
20: <xsd:attribute name="id" type="idType" use="required"/>
21: <xsd:attribute name="quantity" type="xsd:integer" default="1"/>
22: </xsd:attributeGroup>
23:
24: <xsd:simpleType name="idType">
25: <xsd:restriction base="xsd:string">
26: <xsd:pattern value="\d{1}-\d{4}-\d{4}-\d{1}"/>
27: </xsd:restriction>
28: </xsd:simpleType>
29:
30: </xsd:schema>