XSD အစိတ်အပိုင်း ပြောင်းလဲ

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>
  John Smith

အကိရိယာအစားထိုးခြင်းကို ပိတ်ပင်ပါ

အခြား အကိရိယာများ အကိရိယာတစ်ခုကို အစားထိုးခြင်းကို ရည်ရွယ်၍ အသုံးပြုရန် block အကိုးးအဝင်းကို အသုံးပြုပါ

<xs:element name="name" type="xs:string"> block="substitution"/>

အခွင့်ပြုထားသော 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>
  John Smith

使用 substitutionGroup

可替换元素的类型必须和主元素相同,或者从主元素衍生而来。假如可替换元素的类型与主元素的类型相同,那么您就不必规定可替换元素的类型了。

请注意,substitutionGroup 中的所有元素(主元素和可替换元素)必须被声明为全局元素,否则就无法工作!

什么是全局元素(Global Elements)?

全局元素指 "schema" 元素的直接子元素!本地元素(Local elements)指嵌套在其他元素中的元素。