Un elemento di solo testo complesso può contenere testo e gli attributi.
Elementi di solo testo complessi
Questo tipo contiene solo contenuto semplice (text and attributes) , quindi aggiungiamo un elemento simpleContent intorno al contenuto. Quando si utilizza contenuto semplice, è necessario definire una proroga o una restrizione ai elemento simpleContent, in questo modo:
<xs:element name="somename">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="basetype">
....
....
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
OR
<xs:element name="somename">
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="basetype">
....
....
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
Tip: Utilizzare l'elemento di estensione / restrizione per espandere o limitare la semplice tipo di base per l'elemento.
Ecco un esempio di un elemento XML, "shoesize" , che contiene solo testo:
<shoesize country="france">35</shoesize>
L'esempio seguente dichiara un complexType, "shoesize" . Il contenuto è definito come un valore intero, ed il "shoesize" elemento contiene anche un attributo denominato "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>
Potremmo anche dare l'elemento complexType un nome, e lasciare che il "shoesize" elemento di avere un attributo type che si riferisce al nome del complexType (se si utilizza questo metodo, alcuni elementi possono fare riferimento 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>