Los últimos tutoriales de desarrollo web
 

XML Esquema Elemento complexType


<XML completo esquema de referencia

Definición y Uso

El elemento complexType define un tipo complejo. Un elemento de tipo complejo es un elemento XML que contiene otros elementos y / o atributos.

elemento de información

  • Parent elements: elemento, redefinir el esquema

Sintaxis

<complexType
id=ID
name=NCName
abstract=true|false
mixed=true|false
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
any attributes
>

(annotation?,(simpleContent|complexContent|((group|all|
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))

</complexType>

(El signo? Declara que el elemento puede aparecer cero o una vez, y el signo * declara que el elemento puede aparecer cero o más veces dentro del elemento complexType)

Atributo Descripción
id Opcional. Especifica un identificador único para el elemento
name Opcional. Especifica un nombre para el elemento
abstract Opcional. Especifica si el tipo de complejo se puede utilizar en un documento de instancia. True indica que un elemento no puede utilizar este tipo complejo directamente, sino que debe utilizar un tipo complejo derivado de este tipo complejo. El valor predeterminado es falsa
mixed Opcional. Especifica si se permite que los datos de caracteres a aparecer entre los elementos secundarios de este elemento complexType. El valor predeterminado es falso. Si un elemento simpleContent es un elemento secundario, la mixed atributo no está permitido!
block Opcional. Evita un tipo complejo que tiene un tipo determinado de derivación de ser utilizado en lugar de este tipo complejo. Este valor puede contener #all o una lista que es un subconjunto de la extensión o restricción:
  • extensión - evita tipos complejos derivados, por extensión,
  • restricción - evita tipos complejos derivados por la restricción
  • #all - previene todos los tipos complejos derivados
final Opcional. Evita que un tipo determinado de derivación de este elemento de tipo complejo. Puede contener #all o una lista que es un subconjunto de extensión o restricción.
  • extensión - evita la derivación por extensión
  • restricción - evita la derivación por restricción
  • #all - evita toda derivación
any attributes Opcional. Especifica cualquier otro atributo con el espacio de nombres no esquema

Ejemplo 1

El siguiente ejemplo tiene un elemento llamado "note" que es de un tipo complejo:

<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

El siguiente ejemplo tiene un tipo complejo, "fullpersoninfo" , que se deriva de otro tipo complejo, "personinfo" , mediante la ampliación del tipo hereditario con tres elementos adicionales (address, city and country) :

<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 "employee" elemento debe contener, en secuencia, los siguientes elementos: "firstname" , "lastname" , "address" , "city" y "country" .


<XML completo esquema de referencia