Éléments texte XSD uniquement
Un élément textuel complexe peut contenir du texte et des attributs.
Éléments textuels complexes
Ce type ne contient que du contenu simple (texte et attributs), nous ajoutons donc un élément simpleContent autour du contenu. Lorsque vous utilisez un contenu simple, vous devez définir une extension OU une restriction dans l'élément simpleContent, comme ceci :
<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>
Conseil : Utilisez l'élément extension/restriction pour développer ou limiter le type simple de base de l'élément.
Voici un exemple d'élément XML, "shoesize", qui ne contient que du texte :
<shoesize country="france">35</shoesize>
L'exemple suivant déclare un complexType, "shoesize". Le contenu est défini comme une valeur entière, et l'élément "shoesize" contient également un attribut nommé "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>
Nous pourrions également donner un nom à l'élément complexType, et laisser l'élément "shoesize" avoir un attribut type qui fait référence au nom du complexType (si vous utilisez cette méthode, plusieurs éléments peuvent faire référence au même type complexe) :
<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>