Sur les contenus des éléments XML
Le langage XML Schema permet de distinguer différents contenus pour un élément XML : simple ou composé (ou complexe). Ici, on mettra l'accent essentiellement sur :
Contenu mixte,
Contenu non contraint,
Contenu null.
Elément à contenu mixte
C'est un élément XML dont le contenu est composé de texte et d'autres éléments XML.
Syntaxe :
<xsd:element name="elt">
<xsd:complexType mixed="true">
<!-- Définition du modèle de contenu -->
</xsd:complexType>
</xsd:element>
Définition :
Elément qui contient au même niveau :
Eléments et texte
Attributs et texte
Attribut mixed de l'élément <xsd :complexType>
Par défaut, mixed ="false "
mixed="true" , modèle de contenu est mixte.
Contenu non contraint
C'est un élément XML qui n'a aucune contrainte sur son contenu.
Syntaxe :
<xsd:element name="nom_elt" type="xsd:anyType"/>
ou
<xsd:element name="nom_elt"/>
"anyType" est le type de base d'où sont dérivés tous les types simples et complexes . C'est un type par défaut pour un élément XML si l'attribut "type" est absent.
Contenu null
XML Schema n'inclut pas de support spécial pour les modèles de contenu vide. Les modèles de contenu vide sont :
des éléments qui ne peuvent accepter que des attributs, considérés comme des modèles de contenu complexe sans éléments.
<xsd:complexType name="StudentType">
<xsd:attribute name="numId" type="xsd:Integer"/>
</xsd:complexType>
<xsd:element name="student" type="StudentType" />
des modèles de contenu simple avec une valeur limitée à la chaîne null (par exemple : utilisation de l'attribut nillable).
<xsd:element name="Depart" type="xsd:date" nillable="true"/>