عنصر complexType Schema XML

التعريف والاستخدام

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

معلومات العنصر

مرة الظهور في هيكل يكون غير محدود؛ في العنصر يكون مرة واحدة.
العمودية element،redefine،schema
المحتوى annotation،simpleContent،complexContent،group،all،choice،sequence،attribute،attributeGroup،anyAttribute

النحو

<complexType
id=ID 
name=NCName 
abstract=true|false 
mixed=true|false
block=(#all|قائمة من (extension|restriction))
final=(#all|قائمة من (extension|restriction))
خصائص أي
>
(annotation?,(simpleContent|complexContent|((group|all| 
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))
</complexType>

(? علامة التصريح موجودة في العنصر complexType، يمكن أن يظهر العنصر صفر مرة أو مرة واحدة، * علامة التصريح يمكن أن يظهر صفر مرة أو مرات عديدة.)

خصائص

id

اختياري. يحدد ID العنصر الفريد.

name

اختياري. يحدد اسم العنصر.

abstract

اختياري. يحدد ما إذا كان يمكن استخدام هذا العنصر complexType في مستند الصيغة. إذا كانت القيمة هي true، فإن العنصر لا يمكن أن يستخدم هذا العنصر complexType مباشرة، بل يجب استخدامه من خلال أنواع مشتقة من هذا العنصر complexType. القيمة الافتراضية هي false.

mixed

اختياري. يحدد ما إذا كان يمكن أن تظهر بيانات النص بين عناصر هذا العنصر complexType. القيمة الافتراضية هي false.

  • إذا كان العنصر simpleContent هو عنصر فرعي، فإن خاصية mixed غير مسموح بها.
  • إذا كان العنصر complexContent هو عنصر فرعي، فإن الخاصية mixed يمكن أن يتم تعديلها بواسطة خاصية mixed لعنصر complexContent.

block

اختياري. يمنع استخدام الأنواع المشتقة من هذا العنصر complexType المحددة. يمكن أن يحتوي هذا القيمة على #all أو قائمة، تكون قائمة من extension أو restriction:

  • extension - يمنع استخدام الأنواع المشتقة من هذا العنصر complexType عبر التوسيع.
  • restriction - يمنع استخدام الأنواع المشتقة من هذا العنصر complexType عبر التقييد.
  • #all - يمنع استخدام جميع الأنواع المشتقة من هذا العنصر complexType.

final

اختياري. يمنع استخدام الأنواع المشتقة من هذا العنصر complexType. يمكن أن يحتوي هذا القيمة على #all أو قائمة، تكون قائمة من extension أو restriction.

  • extension - يمنع المشتقات عن طريق التوسيع.
  • restriction - يمنع المشتقات عن طريق التحديد.
  • #all - يمنع جميع المشتقات (التوسيع والتحديد).

خصائص أي

اختياري. يحدد أي خصائص أخرى بملكية non-schema.

مثال

مثال 1

في هذا المثال هناك عنصر معقد اسمه "note":

<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
	<xs:element name="to" type="xs:string"/>
	<xs:element name="from" type="xs:string"/>
	<xs:element name="heading" type="xs:string"/>
	<xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>

مثال 2

في هذا المثال هناك نوع معقد "fullpersoninfo"، يتم توسيع النوع الموروث باستخدام ثلاثة عناصر إضافية (address، city و country)، ويتم استخراجه من نوع معقد آخر "personinfo":

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

في المثال أعلاه، العنصر "employee" في الأعلى يجب أن يحتوي على الترتيب التالي من العناصر: "firstname", "lastname", "address", "city" و "country".