XSD 元素替換(Element Substitution)
- 上一頁 XSD <anyAttribute>
- 下一頁 XSD 實例
Sa pamamagitan ng XML Schema, ang isang elemento ay maaaring pagsusukatin ang ibang elemento.
Pagsususukat ng Elemento
Higit pa, ipinapakita namin ang halimbawa: ang aming mga user ay mula sa Inglatera at Noruwega. Gusto naming magkaroon ng kakayahan na pinili ng user kung gamitin nila ang pangalan ng elemento sa Inglis o Norwegian sa dokumentong XML.
Upang lutasin ito, maaari naming id definit ng isang elementong XML schema. substitutionGroupUnang, inihayag namin ang pangunahing elemento, pagkatapos ay inihayag namin ang pangalawang elemento, ang mga pangalawang elemento ay maaaring ipahayag na maaaring palitan ang pangunahing elemento.
<xs:element name="name" type="xs:string"/> <xs:element name="navn"> substitutionGroup="name"/>
Sa itaas na halimbawa, ang "name" na elemento ay ang pangunahing elemento, at ang "navn" na elemento ay pwedeng palitan ang "name" na elemento.
tingnan ang isang piraso ng 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"/>
Ang validong dokumentong XML ay magiging tulad nito (ayon sa itaas na schema):
<customer> <name>John Smith</name> </customer>
o tulad nito:
<kunde> <navn>John Smith</navn> </kunde>
Iwasan ang pagpalit ng elemento
Upang maiwasan na palitan ng ibang elemento ang isang tinukoy na elemento, gamit ang attribute na block:
<xs:element name="name" type="xs:string"> block="substitution"/>
tingnan ang isang piraso ng 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"/>
Ang legal na dokumentong XML ay dapat magiging tulad nito (ayon sa itaas na schema):
<customer> <name>John Smith</name> </customer>
Ngunit ang sumusunod na dokumento ay hindi na legal:
<kunde> <navn>John Smith</navn> </kunde>
Gamit ang substitutionGroup
Ang uri ng elemento na pwedeng palitan ay dapat magkapareho sa uri ng pangunahing elemento, o mula sa pangunahing elemento. Kung ang uri ng elemento na pwedeng palitan ay magkapareho sa uri ng pangunahing elemento, hindi na kailangan mong itala ang uri ng elemento na pwedeng palitan.
請注意,substitutionGroup 中的所有元素(主元素和可替換元素)必須被聲明為全局元素,否則就無法工作!
什麼是全局元素(Global Elements)?
全局元素指 "schema" 元素的直接子元素!本地元素(Local elements)指嵌套在其他元素中的元素。
- 上一頁 XSD <anyAttribute>
- 下一頁 XSD 實例