Tipi complessi di XSD - Contengono solo testo

Un elemento complesso contenente solo testo può contenere testo e attributi.

Elemento complesso contenente solo testo

Questo tipo contiene solo contenuto semplice (testo e attributi), quindi dobbiamo aggiungere l'elemento simpleContent a questo contenuto. Quando si utilizza il contenuto semplice, dobbiamo definire l'estensione o la restrizione all'interno dell'elemento simpleContent, come segue:

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

Ora:

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

Suggerimento:Utilizzare gli elementi extension o restriction per estendere o limitare il tipo di base dell'elemento.

Ecco un esempio di elemento XML, "shoesize", che contiene solo testo:

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

Ecco un esempio di dichiarazione di un tipo complesso, il cui contenuto è definito come valore intero e l'elemento "shoesize" contiene un attributo chiamato "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>

Anche possiamo assegnare un nome all'elemento complexType e far riferimento a questo nome tramite l'attributo type dell'elemento "shoesize" (attraverso questo metodo, più elementi possono riferirsi allo stesso tipo complesso):

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