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".