عناصر complexType في XML Schema

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

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

元素信息

出现次数 在架构内为无限制;在元素内为一次。
父元素 element、redefine、schema
内容 annotation、simpleContent、complexContent、group、all、choice、sequence、attribute、attributeGroup、anyAttribute

语法

خصائص أي
>
(annotation?,(simpleContent|complexContent|((group|all| 
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))

(? 符号声明在 complexType 元素中,元素可出现零次或一次,* 符号声明元素可出现零次或多次。)

属性

id

可选。规定该元素的唯一的 ID。

name

可选。规定元素的名称。

abstract

可选。规定在实例文档中是否可以使用复杂类型。如果该值为 true,则元素不能直接使用该复杂类型,而是必须使用从该复杂类型派生的复杂类型。 默认值为 false。

mixed

可选。规定是否允许字符数据出现在该复杂类型的子元素之间。 默认值为 false。

  • 如果 simpleContent 元素是子元素,则不允许 mixed 属性。
  • 如果 complexContent 元素是子元素,则该 mixed 属性可被 complexContent 元素的 mixed 属性重写。

block

可选。防止具有指定派生类型的复杂类型被用来替代该复杂类型。该值可以包含 #all 或者一个列表,该列表是 extension 或 restriction 的子集:

  • extension - ya'ya ga'na' kare da'niya ta'niya da'niya ta'niya da'niya ga'na'na'niya.
  • restriction - ya'ya ga'na' kare da'niya ta'na' kara'niya da'niya ta'niya da'niya ga'na'na'niya.
  • #all - يمنع جميع المشتقات المعقدة من الاستبدال بهذا النوع المعقد.

final

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

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

خصائص أي

اختياري. يحدد أي خصائص أخرى تحتوي على مساحة اسم غير النمط.

مثال

مثال 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>

A cikin masanin da suka gana, yancin "employee" yana da wajibin kaiwa da kamar haka: "firstname", "lastname", "address", "city" kuma "country".