Tipos compuestos de XSD - solo texto

Un elemento compuesto solo con texto puede contener texto y atributos.

Elemento compuesto solo con texto

Este tipo solo contiene contenido simple (texto y atributos), por lo tanto, debemos agregar un elemento simpleContent a este contenido. Al usar contenido simple, debemos definir la extensión o restricción dentro del elemento simpleContent, como se muestra a continuación:

<xs:element name="algún nombre">
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="basetype">
        ....
        ....
      </xs:extension>     
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

O bien:

<xs:element name="algún nombre">
  <xs:complexType>
    <xs:simpleContent>
      <xs:restriction base="basetype">
        ....
        ....
      </xs:restriction>     
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

Consejo:Utilice los elementos extension o restriction para expandir o restringir el tipo básico del elemento.

Aquí hay un ejemplo de elemento XML, "shoesize", que contiene solo texto:

<shoesize country="france">35</shoesize>

A continuación, se muestra un ejemplo en el que se declara un tipo compuesto, cuyos valores se definen como enteros y el elemento "shoesize" contiene una propiedad llamada "country":

<xs:element name="shoesize">
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="xs:integer">
        <xs:attribute name="country" type="xs:string" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

También podemos asignar un nombre al elemento complexType y hacer que el atributo type del elemento "shoesize" se refiera a este nombre (mediante este método, varios elementos pueden referirse al mismo tipo compuesto):

<xs:element name="shoesize" type="shoetype"/>
<xs:complexType name="shoetype">
  <xs:simpleContent>
    <xs:extension base="xs:integer">
      <xs:attribute name="country" type="xs:string" />
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>