Compartir a través de


Elemento <xsd:complexType>

Define un tipo complejo, que determina el conjunto de atributos y el contenido de un elemento.

<complexType
  abstract = Boolean : false
  block = (#all | List of (extension | restriction))
  final = (#all | List of (extension | restriction))
  id = ID
  mixed = Boolean : false
  name = NCName
  {any attributes with non-schema Namespace...}>
Content: (annotation?, (simpleContent | complexContent | ((group | all |
choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?))))
</complexType>

Atributos

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

    Opcional.

  • block
    Tipo de derivación. El atributo block evita que se utilice un tipo complejo que tiene el tipo especificado de derivación en lugar de este tipo complejo. Este valor puede contener #all o una lista que sea un subconjunto de extensión o restricción. El atributo block solo se utiliza cuando, durante la validación, un documento de instancia invalida el tipo normal de un elemento mediante el atributo schema-instance:type. El atributo block es capaz de impedir que los elementos seleccionen tipos complejos definidos a través de una extensión, una restricción o ambas para reemplazar el tipo original especificado para el elemento.

    extension

    Evita que se utilicen tipos complejos derivados por extensión en lugar de este tipo complejo.

    restriction

    Evita que se utilicen tipos complejos derivados por restricción en lugar de este tipo complejo.

    #all

    Evita que se utilicen todos los tipos complejos derivados en lugar de este tipo complejo.

    Opcional.

  • final
    Tipo de derivación. El atributo final evita el tipo especificado de derivación de este elemento complexType. Este valor puede contener #all o una lista que sea un subconjunto de extension o restriction.

    extension

    Evita la derivación por extensión.

    restriction

    Evita la derivación por restricción.

    #all

    Evita todas las derivaciones (por extensión y por restricción).

    Opcional.

  • id
    Identificador de este elemento. El valor id debe ser de tipo ID y debe ser único dentro del documento que contiene este elemento.

    Opcional.

  • mixed
    Indicador de si está permitido que aparezcan datos de caracteres entre los elementos secundarios de este tipo complejo. El valor predeterminado es false.

    Si el elemento simpleContent es secundario, no está permitido el atributo mixed.

    Si el elemento complexContent es secundario, este atributo mixed puede ser invalidado por el atributo mixed en el elemento complexContent.

    Opcional.

  • nombre
    Nombre del tipo. El nombre no debe incluir un signo de dos puntos (NCName), como se define en la especificación de los espacios de nombres XML.

    Es necesario si el elemento contenedor es schema; en caso contrario, está prohibido.

    Si se especifica, el nombre debe ser único entre todos los elementos simpleType y complexType.

    Opcional.

Información del elemento

Número de apariciones

Ilimitado en el esquema; una vez en el elemento.

Elementos primarios

element, redefine, schema

Contenido

annotation, simpleContent, complexContent, group, all, choice, sequence, attribute, attributeGroup, anyAttribute

Notas

Un tipo complejo es esencialmente una definición de tipos de elementos que pueden contener atributos y elementos. Un elemento puede declararse con un atributo type que haga referencia a un elemento complexType que define la estructura, el contenido y los atributos de ese elemento. Un elemento también puede hacer referencia a un simpleType en su atributo type.

Un tipo complejo solo puede contener uno de los siguientes elementos, que determina el tipo de contenido permitido en él.

Elemento Descripción

simpleContent

El tipo complejo tiene datos de caracteres o un simpleType como contenido y no contiene elementos, pero puede contener atributos.

complexContent

El tipo complejo contiene solo elementos o no contiene elementos (está vacío).

group

El tipo complejo contiene los elementos definidos en el grupo al que se hace referencia.

sequence

El tipo complejo contiene los elementos definidos en la secuencia especificada.

choice

El tipo complejo permite uno de los elementos especificados en el elemento choice.

all

El tipo complejo permite que algunos o todos los elementos especificados en el elemento all aparezcan una vez.

Si se especifica group, sequence, choice o bien all como elemento secundario, los atributos de complexType pueden ser declarados opcionalmente mediante los elementos siguientes.

Elemento Descripción

atributo

El tipo complejo contiene el atributo especificado.

attributeGroup

El tipo complejo contiene los atributos definidos en el attributeGroup al que se hace referencia.

anyAttribute

El tipo complejo puede contener cualquier atributo de los espacios de nombres especificados.

Se puede utilizar cualquier número de elementos attribute o attributeGroup. También se puede utilizar una instancia de anyAttribute.

Si se especifica group, sequence, choice o all, los elementos deben aparecer en el orden siguiente.

  1. group | sequence | choice | all

  2. attribute | attributeGroup

  3. anyAttribute

Ejemplos

En el ejemplo siguiente se muestra un tipo complejo que contiene un tipo simple (decimal) con una declaración de atributo y elemento que utiliza un tipo complejo.

En el ejemplo siguiente se muestra una instancia del elemento myShoeSize en un documento XML.

En el ejemplo siguiente se muestra el elemento myShoeSize con complexType definido anónimamente dentro del elemento. Observe la ausencia del atributo name.

Vea también

Referencia

Referencia de esquemas XML (XSD)
Elementos de los esquemas XML