Latest web development tutorials

elementos complejos de esquema XML

elemento complejo contiene otros elementos y / o atributos.


h2> ¿Qué es un elemento compuesto?

elemento compuesto se refiere al elemento XML que contiene otros elementos y / o atributos.

Hay cuatro tipos de elementos compuestos:

  • Los elementos vacíos
  • Contiene otros elementos de
  • Elemento contiene sólo texto
  • Elemento contiene elementos y texto

Nota: Los elementos anteriores pueden contener atributos!


Ejemplos de elementos compuestos

elemento compuesto, "producto", está vacía:

<product pid="1345"/>

elemento compuesto, "empleado", sólo contiene otros elementos:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

elemento complejo XML, "comida", que contiene sólo texto:

<food type="dessert">Ice cream</food>

elemento XML complejo, "Descripción" contiene elementos y el texto:

<description>
It happened on <date lang="norwegian">03.03.99</date> ....
</description>


¿Cómo definir elemento complejo?

Mira este elemento XML complejo, "empleado", sólo contiene otros elementos:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

En el esquema XML, tenemos dos maneras de definir elementos complejos:

1. Nombre del elemento directamente al declaración de elemento "empleado", como este:

<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>

Si se utiliza el método descrito anteriormente, la única "empleado" se puede utilizar el complejo tipo especificado. Tenga en cuenta que sus elementos secundarios, "nombre" y "apellido", están rodeados por el indicador <secuencia> son. Esto significa que los elementos secundarios deben aparecer en el orden en que se declaran. Así, los indicadores XSD aprender más acerca de los indicadores de esta sección.

2. Elemento "empleado" se puede utilizar el atributo de tipo, el papel de este atributo es una referencia al nombre del tipo de complejos para ser utilizado:

<xs:element name="employee" type="personinfo"/>

<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>

Si se utiliza el método descrito anteriormente, que puede ser utilizado por un número de elementos del mismo tipo complejo, como este:

<xs:element name="employee" type="personinfo"/>
<xs:element name="student" type="personinfo"/>
<xs:element name="member" type="personinfo"/>

<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>

También puede sobre un elemento compuesto existente a un elemento compuesto base, y luego añadir algunos elementos, como este:

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