أحدث البرامج التعليمية وتطوير الشبكة
 

XSD عناصر مجمع


وثمة عنصر معقد يحتوي على عناصر و / أو غيرها من الصفات.


ما هو العنصر مجمع؟

وثمة عنصر تعقيدا هو عنصر XML التي تحتوي على عناصر و / أو غيرها من الصفات.

هناك أربعة أنواع من العناصر المعقدة:

  • العناصر الفارغة
  • العناصر التي تحتوي على عناصر أخرى الوحيدة
  • العناصر التي تحتوي على النص فقط
  • العناصر التي تحتوي على كل العناصر ونص أخرى

Note: كل هذه العناصر قد تحتوي على سمات كذلك!


أمثلة من عناصر مجمع

وثمة عنصر XML معقدة، "product" ، الذي فارغ:

<product pid="1345"/>

وثمة عنصر XML معقدة، "employee" ، الذي يحتوي على عناصر أخرى فقط:

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

وثمة عنصر معقدة XML، "food" ، والذي يحتوي على النص فقط:

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

وثمة عنصر XML معقدة، "description" ، الذي يحتوي على كل العناصر والنص:

<description>
It happened on <date lang="norwegian">03.03.99</date> ....
</description>

كيفية تعريف العنصر مجمع

انظروا إلى هذا العنصر XML معقدة، "employee" ، الذي يحتوي على عناصر أخرى فقط:

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

يمكننا تحديد عنصر التعقيد في مخطط XML بطريقتين مختلفتين:

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>