Los últimos tutoriales de desarrollo web
 

XSD contenido mixto


Un elemento de tipo complejo mixto puede contener atributos, elementos y texto.


Tipos complejos con contenido mixto

Un elemento XML, "letter" , que contiene texto y otros elementos:

<letter>
  Dear Mr.<name>John Smith</name>.
  Your order <orderid>1032</orderid>
  will be shipped on <shipdate>2001-07-13</shipdate>.
</letter>

El siguiente esquema declara la "letter" elemento:

<xs:element name="letter">
  <xs:complexType mixed="true">
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="orderid" type="xs:positiveInteger"/>
      <xs:element name="shipdate" type="xs:date"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Note: Para permitir que los datos de caracteres a aparecer entre los niños-elementos de la "letter" , la mixed atributo debe establecerse en "true" . La <xs:sequence> significa que la etiqueta de los elementos definidos (name, orderid and shipdate) deben aparecer en este orden dentro de una "letter" elemento.

También podríamos dar al elemento complexType un nombre, y dejar que la "letter" elemento tiene un atributo de tipo que se refiere al nombre de la tipoCompuesto (si se utiliza este método, varios elementos se refieren al mismo tipo complejo):

<xs:element name="letter" type="lettertype"/>

<xs:complexType name="lettertype" mixed="true">
  <xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="orderid" type="xs:positiveInteger"/>
    <xs:element name="shipdate" type="xs:date"/>
  </xs:sequence>
</xs:complexType>