Elemento complexType del XML Schema
Definición y uso
El elemento complexType define un tipo complejo. Los elementos de tipo complejo son elementos XML que contienen otros elementos y/u atributos.
Información del elemento
Número de apariciones | Sin restricciones dentro del esquema; una vez dentro del elemento. |
Elemento padre | element, redefine, schema |
Contenido | annotation, simpleContent, complexContent, group, all, choice, sequence, attribute, attributeGroup, anyAttribute |
Gramática
<complexType id=ID name=NCName abstract=true|false mixed=true|false block=(#all|lista de (extensión|restricción)) final=(#all|lista de (extensión|restricción)) cualquier atributos > (anotación?,(simpleContent|complexContent|((grupo|todo| choice|sequence)?,((atributo|grupo de atributo)*,atributo cualquiera?)))) </complexType>
(? El símbolo de declaración se encuentra en el elemento complexType, el elemento puede aparecer cero o una vez, * El símbolo de declaración indica que el elemento puede aparecer cero o múltiples veces。)
Atributo
id
Opcional. Define el ID único de este elemento.
name
Opcional. Define el nombre del elemento.
abstract
Opcional. Define 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 este tipo complejo. El valor predeterminado es false.
mixed
Opcional. Define 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.
block
Opcional. Evita que los tipos complejos con el tipo de derivación especificado se utilicen para reemplazar este tipo complejo. Este valor puede contener #all o una lista, que es un subconjunto de extension o restriction:
- extension - Evita que los tipos complejos derivados por extensión se utilicen para reemplazar este tipo complejo.
- restriction - Evita que los tipos complejos derivados por restricción se utilicen para reemplazar este tipo complejo.
- #all - Evita que todos los tipos complejos derivados se utilicen para reemplazar este tipo complejo.
final
Opcional. Evita que los tipos derivados del elemento complexType especificado se utilicen para reemplazar este tipo complejo. Este valor puede contener #all o una lista, que es un subconjunto de extension o restriction.
- expansión - Evita la derivación a través de expansión.
- restricción - Evita la derivación a través de restricción.
- #all - Evita todas las derivaciones (expansión y restricción).
cualquier atributos
Opcional. Especifica cualquier otra propiedad con un espacio de nombres no de esquema.
Ejemplo
Ejemplo 1
El siguiente ejemplo posee un elemento 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) y se deriva 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".