XSD 复合元素

عنصر ترکیبی شامل عناصر دیگر و/یا ویژگی‌ها است.

عنصر ترکیبی چیست؟

عنصر ترکیبی به عنصری اشاره دارد که شامل عناصر دیگر و/یا ویژگی‌ها است.

چهار نوع عنصر ترکیبی وجود دارد:

  • عنصر خالی
  • عناصری که شامل عناصر دیگر هستند
  • عناصری که تنها شامل متن هستند
  • عناصری که شامل عناصر و متن هستند

توضیح:این عناصر می‌توانند ویژگی‌ها را شامل شوند!

مثال‌های عنصر ترکیبی

عنصر ترکیبی، "product"، خالی است:

<product pid="1345"/>

عنصر ترکیبی، "employee"، تنها شامل عناصر دیگر است:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

عنصر ترکیبی، "food"، تنها شامل متن است:

<food type="dessert">Ice cream</food>

عنصر ترکیبی، "description"، شامل عناصر و متن است:

<description>
این رویداد در <date lang="norwegian">03.03.99</date> اتفاق افتاد...
</description>

چگونه می‌توان عنصر ترکیبی را تعریف کرد؟

این عنصر ترکیبی XML را ببینید، "employee"، که تنها شامل عناصر دیگر است:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

در XML Schema، دو روش برای تعریف عنصر ترکیبی داریم:

1. نام دینامیک این عنصر را مشخص کنید، تا بتوانید مستقیماً عنصر "employee" را اینجا تعریف کنید:

<xs:element name="ملازم">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="نام" type="xs:string"/>
      <xs:element name="عائلی نام" type="xs:string"/>
    
  
</xs:element>

اگر آپ بالا کی ذکر شدہ طریق کو استعمال کریں تو صرف "ملازم" کو مقرر کی جانے والی کانپلکس کی نوعیت استعمال کی جاسکتی ہے. لطفاً اس کے ذریعہ آئیکنوئس کی دیکھیجئے، "نام" اور "عائلی نام"، جو <sequence> آئیکنوئس میں محصور ہیں. یہ معنات رکھتا ہے کہ ذریعہ آئیکنوئس کا اعلان کئے جانے والی ترتیب میں آئیکنوئس آئیکنوئس اپنے اصل اعلان کی ترتیب سے آئیکنوئس کا استعمال کرسکتے ہیں. آپ کانپلکس میں اس کا استعمال پائیں گے XSD آئیکنوئس اس سیکشن میں آپ کو کانپلکس آئیکنوئس کے بارے میں مزید معلومات ملتی ہیں。

2. عنصر "ملازم" کو type خاصیت استعمال کی جاسکتی ہے، اس خاصیت کا استعمال یہ ہے کہ وہ استعمال کی جانے والی کانپلکس کی نوعیت کا نام دکھاتا ہے:

<xs:element name="ملازم" type="personinfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="نام" type="xs:string"/>
    <xs:element name="عائلی نام" type="xs:string"/>
  

اگر آپ بالا کی ذکر شدہ طریق کو استعمال کریں تو متعدد عناصر ایک ہی کانپلکس کی نوعیت کا استعمال کرسکتے ہیں، مثلاً اس طرح:

<xs:element name="ملازم" type="personinfo"/>
<xs:element name="طالب علم" type="personinfo"/>
<xs:element name="ممبر" type="personinfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="نام" type="xs:string"/>
    <xs:element name="عائلی نام" type="xs:string"/>
  

آپ بہتر سے کسی موجودہ کانپلکس عناصر کی بنیاد پر کام کرسکتے ہیں، جس میں آپ چند عناصر شامل کرسکتے ہیں، مثلاً اس طرح:

<xs:element name="ملازم" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="نام" type="xs:string"/>
    <xs:element name="عائلی نام" type="xs:string"/>
  

<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="آدرس" type="xs:string"/>
        <xs:element name="شہر" type="xs:string"/>