Tipo composto XSD - contendo apenas texto

Um elemento composto contendo apenas texto pode conter texto e atributos.

Elemento composto contendo apenas texto

Este tipo contém apenas conteúdo simples (texto e atributos), portanto, devemos adicionar o elemento simpleContent a este conteúdo. Quando usamos conteúdo simples, devemos definir a extensão ou restrição dentro do elemento simpleContent, assim:

<xs:element name="algumNome">
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="basetype">
        ....
        ....
      </xs:extension>     
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

ou:

<xs:element name="algumNome">
  <xs:complexType>
    <xs:simpleContent>
      <xs:restriction base="basetype">
        ....
        ....
      </xs:restriction>     
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

Dica:Use os elementos extension ou restriction para expandir ou restringir o tipo básico do elemento.

Aqui está um exemplo de elemento XML, "shoesize", que contém apenas texto:

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

Abaixo está um exemplo que declara um tipo composto, cujo conteúdo é definido como valor inteiro e o elemento "shoesize" contém um atributo chamado "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>

Também podemos definir um nome para o elemento complexType e permitir que o atributo type do elemento "shoesize" faça referência a este nome (usando este método, vários elementos podem fazer referência ao mesmo tipo composto):

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