XSD ¸´ºÏÀàÐÍָʾÆ÷
ͨ¹ýָʾÆ÷£¬ÎÒÃÇ¿ÉÒÔ¿ØÖÆÔÚÎĵµÖÐʹÓÃÔªËØµÄ·½Ê½¡£
ָʾÆ÷
ÓÐÆßÖÖָʾÆ÷£º
Order ָʾÆ÷£º
- All
- Choice
- Sequence
Occurrence ָʾÆ÷£º
- maxOccurs
- minOccurs
Group ָʾÆ÷£º
- Group name
- attributeGroup name
Order ָʾÆ÷
Order ָʾÆ÷ÓÃÓÚ¶¨ÒåÔªËØµÄ˳Ðò¡£
All ָʾÆ÷
<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>
×¢ÊÍ£ºµ±Ê¹Óà <all> ָʾÆ÷ʱ£¬Äã¿ÉÒÔ°Ñ <minOccurs> ÉèÖÃΪ 0 »òÕß 1£¬¶øÖ»ÄÜ°Ñ <maxOccurs> ָʾÆ÷ÉèÖÃΪ 1£¨ÉԺ󽫽²½â <minOccurs> ÒÔ¼° <maxOccurs>£©¡£
Choice ָʾÆ÷
<choice> ָʾÆ÷¹æ¶¨¿É³öÏÖij¸ö×ÓÔªËØ»òÕ߿ɳöÏÖÁíÍâÒ»¸ö×ÓÔªËØ£¨·Ç´Ë¼´±Ë£©£º
<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>
Ìáʾ£ºÈçÐèÉèÖÃ×ÓÔªËØ³öÏÖÈÎÒâ´ÎÊý£¬¿É½« <maxOccurs> £¨ÉÔºó»á½²½â£©ÉèÖÃΪ unbounded£¨ÎÞÏ޴Σ©¡£
Sequence ָʾÆ÷
<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>
Occurrence ָʾÆ÷
Occurrence ָʾÆ÷ÓÃÓÚ¶¨Òåij¸öÔªËØ³öÏֵįµÂÊ¡£
×¢ÊÍ£º¶ÔÓÚËùÓÐµÄ "Order" ºÍ "Group" ָʾÆ÷£¨any¡¢all¡¢choice¡¢sequence¡¢group name ÒÔ¼° group reference£©£¬ÆäÖÐµÄ maxOccurs ÒÔ¼° minOccurs µÄĬÈÏÖµ¾ùΪ 1¡£
maxOccurs ָʾÆ÷
<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"
/>
</xs:sequence>
</xs:complexType>
</xs:element>
ÉÏÃæµÄÀý×Ó±íÃ÷£¬×ÓÔªËØ "child_name" ¿ÉÔÚ "person" ÔªËØÖÐ×îÉÙ³öÏÖÒ»´Î£¨ÆäÖÐ minOccurs µÄĬÈÏÖµÊÇ 1£©£¬×î¶à³öÏÖ 10 ´Î¡£
minOccurs ָʾÆ÷
<minOccurs> ָʾÆ÷¿É¹æ¶¨Ä³¸öÔªËØÄܹ»³öÏÖµÄ×îС´ÎÊý£º
<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>
ÉÏÃæµÄÀý×Ó±íÃ÷£¬×ÓÔªËØ "child_name" ¿ÉÔÚ "person" ÔªËØÖгöÏÖ×îÉÙ 0 ´Î£¬×î¶à³öÏÖ 10 ´Î¡£
Ìáʾ£ºÈçÐèʹij¸öÔªËØµÄ³öÏÖ´ÎÊý²»ÊÜÏÞÖÆ£¬ÇëʹÓà maxOccurs="unbounded" Õâ¸öÉùÃ÷£º
Ò»¸öʵ¼ÊµÄÀý×Ó£º
ÃûΪ "Myfamily.xml" µÄ XML Îļþ£º
<?xml version="1.0" encoding="ISO-8859-1"?> <persons xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="family.xsd"> <person> <full_name>Tony Smith</full_name> <child_name>Cecilie</child_name> </person> <person> <full_name>David Smith</full_name> <child_name>Jogn</child_name> <child_name>mike</child_name> <child_name>kyle</child_name> <child_name>mary</child_name> </person> <person> <full_name>Michael Smith</full_name> </person> </persons>
ÉÏÃæÕâ¸ö XML Îļþº¬ÓÐÒ»¸öÃûΪ "persons" µÄ¸ùÔªËØ¡£ÔÚÕâ¸ö¸ùÔªËØÄÚ²¿£¬ÎÒÃǶ¨ÒåÁËÈý¸ö "person" ÔªËØ¡£Ã¿¸ö "person" ÔªËØ±ØÐ뺬ÓÐÒ»¸ö "full_name" ÔªËØ£¬Í¬Ê±Ëü¿ÉÒÔ°üº¬¶àÖÁ 5 ¸ö "child_name" ÔªËØ¡£
ÕâÊÇschemaÎļþ"family.xsd"£º
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="persons">
<xs:complexType>
<xs:sequence>
<xs:element name="person" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
minOccurs="0" maxOccurs="5"
/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Group ָʾÆ÷
Group ָʾÆ÷ÓÃÓÚ¶¨ÒåÏà¹ØµÄÊýÅúÔªËØ¡£
ÔªËØ×é
ÔªËØ×éͨ¹ý group ÉùÃ÷½øÐж¨Ò壺
<xs:group name="×éÃû³Æ"> ... </xs:group>
Äú±ØÐëÔÚ group ÉùÃ÷ÄÚ²¿¶¨ÒåÒ»¸ö all¡¢choice »òÕß sequence ÔªËØ¡£ÏÂÃæÕâ¸öÀý×Ó¶¨ÒåÁËÃûΪ "persongroup" µÄ group£¬Ëü¶¨ÒåÁ˱ØÐë°´ÕÕ¾«È·µÄ˳Ðò³öÏÖµÄÒ»×éÔªËØ£º
<xs:group name="persongroup"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> <xs:element name="birthday" type="xs:date"/> </xs:sequence> </xs:group>
ÔÚÄú°Ñ group ¶¨ÒåÍê±ÏÒԺ󣬾ͿÉÒÔÔÚÁíÒ»¸ö¶¨ÒåÖÐÒýÓÃËüÁË£º
<xs:groupname="persongroup"
> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> <xs:element name="birthday" type="xs:date"/> </xs:sequence> </xs:group> <xs:element name="person" type="personinfo"/> <xs:complexType name="personinfo"> <xs:sequence><xs:group ref="persongroup"/>
<xs:element name="country" type="xs:string"/> </xs:sequence> </xs:complexType>
ÊôÐÔ×é
ÊôÐÔ×éͨ¹ý attributeGroup ÉùÃ÷À´½øÐж¨Ò壺
<xs:attributeGroup name="×éÃû³Æ"> ... </xs:attributeGroup>
ÏÂÃæÕâ¸öÀý×Ó¶¨ÒåÁËÃûΪ "personattrgroup" µÄÒ»¸öÊôÐÔ×飺
<xs:attributeGroup name="personattrgroup"> <xs:attribute name="firstname" type="xs:string"/> <xs:attribute name="lastname" type="xs:string"/> <xs:attribute name="birthday" type="xs:date"/> </xs:attributeGroup>
ÔÚÄúÒѶ¨ÒåÍê±ÏÊôÐÔ×éÖ®ºó£¬¾Í¿ÉÒÔÔÚÁíÒ»¸ö¶¨ÒåÖÐÒýÓÃËüÁË£¬¾ÍÏñÕâÑù£º
<xs:attributeGroupname="personattrgroup"
> <xs:attribute name="firstname" type="xs:string"/> <xs:attribute name="lastname" type="xs:string"/> <xs:attribute name="birthday" type="xs:date"/> </xs:attributeGroup> <xs:element name="person"> <xs:complexType><xs:attributeGroup ref="personattrgroup"/>
</xs:complexType> </xs:element>