عنصر 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".