Elemento complexType de XML Schema

Definición y uso

El elemento complexType define un tipo complejo. Los elementos del tipo complejo son elementos XML que contienen otros elementos y/u atributos.

元素信息

Información del elemento Número de apariciones
En el esquema es ilimitado; en el elemento es una vez. Padre del elemento
elemento、redefinir、esquema Contenido

anotación、simpleContent、complexContent、grupo、todo、elección、secuencia、atributo、grupoAtributo、anyAttribute

Gramática
<complexType 
id=ID 
name=NCName 
abstract=true|false
mixed=true|false
bloque=(#all|lista de (extensión|restricción))
cualquier atributos
final=(#all|lista de (extensión|restricción))
> 
(anotación?,(simpleContent|complexContent|((grupo|todo|
</complexType>

(? El símbolo se declara en el elemento complexType, puede aparecer cero o una vez, * El símbolo se declara en el elemento, puede aparecer cero o múltiples veces.)

Atributos

id

opcional. Determinar el ID único de este elemento.

name

opcional. Determinar el nombre del elemento.

abstract

opcional. Determinar si se puede utilizar el tipo complejo en el documento de instancia. Si este valor es true, el elemento no puede usar directamente este tipo complejo, sino que debe usar un tipo complejo derivado de él. El valor predeterminado es false.

mixed

opcional. Determinar si se permite que los datos de caracteres aparezcan entre los subelementos de este tipo complejo. El valor predeterminado es false.

  • Si el elemento simpleContent es un subelemento, no se permite la propiedad mixed.
  • Si el elemento complexContent es un subelemento, la propiedad mixed puede ser sobrescrita por la propiedad mixed del elemento complexContent.

bloque

opcional. Evitar que los tipos complejos con un tipo derivado específico se utilicen para reemplazar el tipo complejo en cuestión. Este valor puede contener #all o una lista, que es un subconjunto de extensión o restricción:

  • extensión - evitar que los tipos complejos derivados se utilicen para reemplazar el tipo complejo en cuestión.
  • restricción - evitar que los tipos complejos derivados se utilicen para reemplazar el tipo complejo en cuestión.
  • #all - Evita que todos los tipos complejos derivados se utilicen para reemplazar este tipo complejo.

final

Opcional. Evita la derivación de tipos especificados desde este elemento de tipo complejo. Este valor puede contener #all o una lista, que es un subconjunto de extension o restriction.

  • extensión - Evita las derivaciones mediante extensión.
  • restricción - Evita las derivaciones mediante restricción.
  • #all - Evita todas las derivaciones (extensión y restricción).

cualquier atributos

Opcional. Define cualquier otra propiedad con un espacio de nombres no de esquema.

Ejemplo

Ejemplo 1

El siguiente ejemplo posee un elemento de tipo complejo llamado "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>

Ejemplo 2

En el siguiente ejemplo, hay un tipo complejo "fullpersoninfo" que extiende el tipo heredado utilizando tres elementos complementarios (address, city y country), derivado de otro tipo complejo "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>

En el ejemplo anterior, el elemento "employee" superior debe contener en orden los siguientes elementos: "firstname", "lastname", "address", "city" y "country".