XSD Element အစားထိုးခြင်း
XML Schemas ဖြင့်၊ ဒြပ်စင်တစ်ခုသည် အခြားဒြပ်စင်တစ်ခုကို အစားထိုးနိုင်သည်။
ဒြပ်စင်အစားထိုး
ကျွန်ုပ်တို့တွင် မတူညီသောနိုင်ငံနှစ်ခုမှ သုံးစွဲသူများရှိသည်- အင်္ဂလန်နှင့် နော်ဝေး။ အသုံးပြုသူကို Norwegian ဒြပ်စင်အမည်များ သို့မဟုတ် XML စာရွက်စာတမ်းရှိ အင်္ဂလိပ်ဒြပ်စင်အမည်များကို အသုံးပြုလိုသည်ဖြစ်စေ အသုံးပြုသူကို ရွေးချယ်ခွင့်ပေးစေလိုပါသည်။
ဤပြဿနာကိုဖြေရှင်းရန်၊ ကျွန်ုပ်တို့သည် XML schema တွင် အစားထိုး အုပ်စုတစ်ခုကို သတ်မှတ်နိုင်သည်။ ဦးစွာ၊ ကျွန်ုပ်တို့သည် ဦးခေါင်းဒြပ်စင်ကိုကြေငြာပြီးနောက် ဦးခေါင်းဒြပ်စင်အတွက်အစားထိုးနိုင်သောအခြားဒြပ်စင်များကိုကြေငြာပါ။
<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>
အထက်ဖော်ပြပါ ဥပမာတွင်၊ "name" ဒြပ်စင်သည် ဦးခေါင်းဒြပ်စင်ဖြစ်ပြီး "navn" ဒြပ်စင်ကို "အမည်" နှင့် အစားထိုးနိုင်သည်။
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 စာရွက်စာတမ်း (အထက်ဖော်ပြပါ အစီအစဉ်အရ) ဤကဲ့သို့ ပေါ်လာနိုင်သည်-
<customer>
<name>John Smith</name>
</customer>
သို့မဟုတ် ဤကဲ့သို့
<kunde>
<navn>John Smith</navn>
</kunde>
ဒြပ်စင်အစားထိုးခြင်းကို ပိတ်ဆို့ခြင်း။
သတ်မှတ်ထားသော ဒြပ်စင်တစ်ခုဖြင့် အခြားဒြပ်စင်များကို အစားထိုးခြင်းမှ ကာကွယ်ရန်၊ block attribute ကို အသုံးပြုပါ-
<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 စာရွက်စာတမ်း (အထက်ဖော်ပြပါ အစီအစဉ်အရ) ဤကဲ့သို့ ဖြစ်သည်-
<customer>
<name>John Smith</name>
</customer>
ဒါပေမယ့် ဒါက တရားဝင်တော့မဟုတ်တော့ဘူး-
<kunde>
<navn>John Smith</navn>
</kunde>
အစားထိုးအဖွဲ့ကို အသုံးပြုခြင်း။
အစားထိုးနိုင်သော ဒြပ်စင်အမျိုးအစားသည် ဦးခေါင်းဒြပ်စင်အမျိုးအစား သို့မဟုတ် ဆင်းသက်လာသည်နှင့် တူညီရပါမည်။ အစားထိုးနိုင်သောဒြပ်စင်အမျိုးအစားသည် ဦးခေါင်းဒြပ်စင်အမျိုးအစားနှင့်တူညီပါက၊ အစားထိုးနိုင်သောဒြပ်စင်အမျိုးအစားကို သတ်မှတ်ရန်မလိုအပ်ပါ။
SubstitutionGroup (ခေါင်းဒြပ်စင်နှင့် အစားထိုးနိုင်သောဒြပ်စင်များ) အားလုံးကို ကမ္ဘာလုံးဆိုင်ရာဒြပ်စင်များအဖြစ် ကြေညာရမည်၊ မဟုတ်ပါက ၎င်းသည် အလုပ်မဖြစ်ပါ။
Global Elements တွေက ဘာတွေလဲ။
ကမ္ဘာလုံးဆိုင်ရာဒြပ်စင်များသည် "schema" ဒြပ်စင်၏ ချက်ခြင်းကလေးများဖြစ်ကြသော ဒြပ်စင်များဖြစ်သည်။ ဒေသဆိုင်ရာဒြပ်စင်များသည် အခြားဒြပ်စင်များအတွင်း အသိုက်အမြုံရှိသောဒြပ်စင်များဖြစ်သည်။