Derniers tutoriels de développement web
 

XSD Contenu mixte


Un élément de type complexe mixte peut contenir des attributs, des éléments et du texte.


Types complexes avec un contenu mixte

Un élément XML, "letter" , qui contient à la fois du texte et d' autres éléments:

<letter>
  Dear Mr.<name>John Smith</name>.
  Your order <orderid>1032</orderid>
  will be shipped on <shipdate>2001-07-13</shipdate>.
</letter>

Le schéma suivant déclare que la "letter" élément:

<xs:element name="letter">
  <xs:complexType mixed="true">
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="orderid" type="xs:positiveInteger"/>
      <xs:element name="shipdate" type="xs:date"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Note: Pour activer les données de caractères à apparaître entre les enfants-éléments de "letter" , le mixed attribut doit être réglé sur "true" . Le <xs:sequence> tag signifie que les éléments définis (name, orderid and shipdate) doivent apparaître dans cet ordre dans une "letter" élément.

On pourrait aussi donner à l'élément complexType un nom, et de laisser la "letter" élément un attribut de type qui fait référence au nom du complexType (si vous utilisez cette méthode, plusieurs éléments peuvent se référer au même type complexe):

<xs:element name="letter" type="lettertype"/>

<xs:complexType name="lettertype" mixed="true">
  <xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="orderid" type="xs:positiveInteger"/>
    <xs:element name="shipdate" type="xs:date"/>
  </xs:sequence>
</xs:complexType>