XML Schema complexType 元素

tambayi da amfani

complexType 元素定义复杂类型。复杂类型的元素是包含其他元素和/或属性的 XML 元素。

matanar

saiyawa yarima na farko a cikakken; a cikakken a cikin abubu
akoko element、redefine、schema
matanar annotation、simpleContent、complexContent、group、all、choice、sequence、attribute、attributeGroup、anyAttribute

语法

<complexType
id=ID 
name=NCName 
abstract=true|false 
mixed=true|false
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
كل خصائص
>
(annotation?,(simpleContent|complexContent|((group|all| 
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))
</complexType>

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

属性

id

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

name

可选。规定元素的名称。

abstract

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

mixed

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

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

block

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

  • extension - 防止通过扩展派生的复杂类型被用来替代该复杂类型。
  • restriction - 防止通过限制派生的复杂类型被用来替代该复杂类型。
  • #all - 防止所有派生的复杂类型被用来替代该复杂类型。

final

可选。防止从该 complexType 元素派生指定的类型。该值可以包含 #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: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: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"/>
      
    
  

在上面的例子中,上面的 "employee" 元素必须按顺序包含下列元素:"firstname", "lastname", "address", "city" 以及 "country"。