Elementi di solo testo XSD
Un elemento di solo testo complesso può contenere testo e attributi.
Elementi complessi di solo testo
Questo tipo contiene solo contenuto semplice (testo e attributi), quindi aggiungiamo un elemento simpleContent attorno al contenuto. Quando si utilizza un contenuto semplice, è necessario definire un'estensione OPPURE una restrizione all'interno dell'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>
Suggerimento: utilizzare l'elemento di estensione/limitazione per espandere o limitare il tipo semplice 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 e l'elemento "shoesize" 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 un nome all'elemento complexType e lasciare che l'elemento "shoesize" abbia un attributo type che fa riferimento al nome del complexType (se usi 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>