Définition du type complexe

Le modèle de contenu des éléments XML complexes, est spécifié par l'élément complexType qui peut contenir :

  • Des déclarations d'éléments XML fils par :

    • Déclaration directe : spécification de l'élément XML

    • Déclaration par référence : faire référence à une spécification d'élément XML déjà défini (attribut ref).

  • Des déclarations d'attributs par l'élément attribute.

Syntaxe

<xsd:complexType name="nom_type-complexe">

<!-- Définition du modèle de contenu -->

</xsd:complexType>

Constructeurs du modèle de contenu complexe

Trois éléments pour exprimer les modèles de contenu :

  • Séquence (sequence) : les éléments déclarés par les fils doivent apparaître dans l'instance dans le même ordre que dans le schéma.

  • Ensemble sans ordre (all) : les éléments déclarés par les fils peuvent apparaître au plus une fois dans l'instance, dans un ordre quelconque. all doit être le seul fils d'un modèle de contenu

  • Choix (choice) : un seul élément déclaré par un des fils peut apparaître dans l'instance

Un élément "group" offre une facilité d'écriture et est équivalent des entités paramètres de XML (interdit dans all).

Les attributs "minOccurs" et "maxOccurs" s'appliquent aux éléments "sequence", "all" et "choice", et indiquent le nombre d’occurrences des éléments XML.

Valeurs possibles :

  • minOccurs : entier positif ou nul

  • maxOccurs : entier positif ou nul, unbounded

Les valeurs par défaut des deux attributs : 1 (une occurrence obligatoire si les deux attributs sont omis)