Types complexes contenant uniquement du texte XSD

Un élément composite contenant uniquement du texte peut contenir du texte et des attributs.

Élément composite contenant uniquement du texte

Ce type ne contient que du contenu simple (texte et attributs), donc nous devons ajouter un élément simpleContent à ce contenu. Lorsque nous utilisons un contenu simple, nous devons définir l'extension ou la restriction à l'intérieur de l'élément simpleContent, comme ceci :

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

ou :

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

Astuce :Utilisez les éléments extension ou restriction pour étendre ou limiter le type 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 type composite dont le contenu est défini comme une valeur entière, et l'élément "shoesize" contient une propriété nommée "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 pouvons également attribuer un nom à l'élément complexType et faire référence à ce nom à l'aide de l'attribut type de l'élément "shoesize" (de cette manière, plusieurs éléments peuvent référencer le même type composite) :

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