XSD ပေါင်းစပ် အရာ

复合元素包含了其他的元素及/或属性。

什么是复合元素?

复合元素指包含其他元素及/或属性的 XML 元素。

有四种类型的复合元素:

  • 空元素
  • 包含其他元素的元素
  • 仅包含文本的元素
  • 包含元素和文本的元素

注释:上述元素均可包含属性!

复合元素的例子

复合元素,"product",是空的:


复合元素,"employee",仅包含其他元素:


John
Smith

复合元素,"food",仅包含文本:

Ice cream

复合元素,"description",包含元素和文本:


It happened on 03.03.99 ....

如何定义复合元素?

请看这个复合 XML 元素,"employee",仅包含其他元素:


John
Smith

在 XML Schema 中,我们有两种方式来定义复合元素:

1. 通过命名此元素,可直接对"employee"元素进行声明,就像这样:

<xs:element name="employee">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

သင်သည် ထိုအချက်အလက်များ ကို အသုံးပြုလျှင် သာလျှင် "employee" ကို သုံးစံအစုအဝေး ကို အသုံးပြုနိုင်သည်။ အသုံးပြုသော အသုံးစံအစုအဝေး "firstname" နှင့် "lastname" ကို အက်ဥ်ဂ် <sequence> အတွင်း အုပ်ချုပ်ထားသည်။ ဤအချက်က လျှပ်ပ်ချက် အရ လျှပ်ပ်ချက် အရ ဖြစ်ပေါ်လာသော အသုံးစံအစုအဝေး ကို အုပ်ချုပ်ထားသည်။ ဤအချက်က အသုံးစံအစုအဝေး ဖြစ်ပေါ်လာသော အသုံးစံအစုအဝေး ကို အုပ်ချုပ်ထားသည်။ XSD အက်ဥ်ဂ် ဤအချိန်တွင် အက်ဥ်ဂ် နှင့် ပတ်သက်၍ ပိုမိုသိရှိသင်မည်။

2. "employee" အက်ဥ်ဂ် အသုံးပြုနိုင်သည်။ အက်ဥ်ဂ်၏ အရာအရ သုံးစံအစုအဝေး ကို အသုံးပြုသည်။

<xs:element name="employee" type="personinfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

သင်သည် ထိုအချက်အလက်များ ကို အသုံးပြုလျှင် အခြား အသုံးပြုနိုင်သော အသုံးစံအစုအဝေး ကို ထိုမှ ပြောင်းလဲပြီး အသုံးပြုနိုင်သည်။

<xs:element name="employee" type="personinfo"/>
<xs:element name="student" type="personinfo"/>
<xs:element name="member" type="personinfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

သင်သည် ထိုအချက်အလက်များ ကို အသုံးပြုလျှင် အခြား အသုံးပြုနိုင်သော အသုံးစံအစုအဝေး ကို ထိုမှ ပြောင်းလဲပြီး အသုံးပြုနိုင်သည်။ အိမ်ဖြူးချင်းတစ်ခု အဖြစ် ပြောင်းလဲပြီး အသုံးပြုသည်ကို သိနိုင်သည်။

<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>