XSD ÔªËØÌæ»»£¨Element Substitution£©
ͨ¹ý XML Schema£¬Ò»¸öÔªËØ¿É¶ÔÁíÒ»¸öÔªËØ½øÐÐÌæ»»¡£
ÔªËØÌæ»»
ÈÃÎÒÃǾÙÀý˵Ã÷£ºÎÒÃǵÄÓû§À´×ÔÓ¢¹úºÍŲÍþ¡£ÎÒÃÇÏ£ÍûÓÐÄÜÁ¦ÈÃÓû§Ñ¡ÔñÔÚ XML ÎĵµÖÐʹÓÃŲÍþÓïµÄÔªËØÃû³Æ»¹ÊÇÓ¢ÓïµÄÔªËØÃû³Æ¡£
ΪÁ˽â¾öÕâ¸öÎÊÌ⣬ÎÒÃÇ¿ÉÒÔÔÚ XML schema Öж¨ÒåÒ»¸ö substitutionGroup¡£Ê×ÏÈ£¬ÎÒÃÇÉùÃ÷Ö÷ÔªËØ£¬È»ºóÎÒÃÇ»áÉùÃ÷´ÎÔªËØ£¬ÕâЩ´ÎÔªËØ¿ÉÉùÃ÷ËüÃÇÄܹ»Ìæ»»Ö÷ÔªËØ¡£
<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"
/>
ÔÚÉÏÃæµÄÀý×ÓÖУ¬"name" ÔªËØÊÇÖ÷ÔªËØ£¬¶ø "navn" ÔªËØ¿ÉÌæ´ú "name" ÔªËØ¡£
Çë¿´Ò»¸ö XML schema µÄƬ¶Î£º
<xs:element name="name" type="xs:string"/> <xs:element name="navn" substitutionGroup="name"/> <xs:complexType name="custinfo"> <xs:sequence> <xs:element ref="name"/> </xs:sequence> </xs:complexType> <xs:element name="customer" type="custinfo"/> <xs:element name="kunde" substitutionGroup="customer"/>
ÓÐЧµÄ XML ÎĵµÀàËÆÕâÑù£¨¸ù¾ÝÉÏÃæµÄ schema£©£º
<customer> <name>John Smith</name> </customer>
»òÀàËÆÕâÑù£º
<kunde> <navn>John Smith</navn> </kunde>
×èÖ¹ÔªËØÌæ»»
Ϊ·ÀÖ¹ÆäËûµÄÔªËØÌæ»»Ä³¸öÖ¸¶¨µÄÔªËØ£¬ÇëʹÓà block ÊôÐÔ£º
<xs:element name="name" type="xs:string" block="substitution"
/>
Ç뿴ij¸ö XML schema µÄƬ¶Î£º
<xs:element name="name" type="xs:string" block="substitution"/> <xs:element name="navn" substitutionGroup="name"/> <xs:complexType name="custinfo"> <xs:sequence> <xs:element ref="name"/> </xs:sequence> </xs:complexType> <xs:element name="customer" type="custinfo" block="substitution"/> <xs:element name="kunde" substitutionGroup="customer"/>
ºÏ·¨µÄ XML ÎĵµÓ¦¸ÃÀàËÆÕâÑù£¨¸ù¾ÝÉÏÃæµÄ schema£©£º
<customer> <name>John Smith</name> </customer>
µ«ÊÇÏÂÃæµÄÎĵµ²»ÔٺϷ¨£º
<kunde> <navn>John Smith</navn> </kunde>
ʹÓà substitutionGroup
¿ÉÌæ»»ÔªËصÄÀàÐͱØÐëºÍÖ÷ÔªËØÏàͬ£¬»òÕß´ÓÖ÷ÔªËØÑÜÉú¶øÀ´¡£¼ÙÈç¿ÉÌæ»»ÔªËصÄÀàÐÍÓëÖ÷ÔªËØµÄÀàÐÍÏàͬ£¬ÄÇôÄú¾Í²»±Ø¹æ¶¨¿ÉÌæ»»ÔªËصÄÀàÐÍÁË¡£
Çë×¢Ò⣬substitutionGroup ÖеÄËùÓÐÔªËØ£¨Ö÷ÔªËØºÍ¿ÉÌæ»»ÔªËØ£©±ØÐë±»ÉùÃ÷Ϊȫ¾ÖÔªËØ£¬·ñÔò¾ÍÎÞ·¨¹¤×÷£¡
ʲôÊÇÈ«¾ÖÔªËØ£¨Global Elements£©£¿
È«¾ÖÔªËØÖ¸ "schema" ÔªËØµÄÖ±½Ó×ÓÔªËØ£¡±¾µØÔªËØ£¨Local elements£©Ö¸Ç¶Ì×ÔÚÆäËûÔªËØÖеÄÔªËØ¡£