Attributs XSD
Tous les attributs sont déclarés en tant que types simples.
Qu'est-ce qu'un attribut ?
Les éléments simples ne peuvent pas avoir d'attributs. Si un élément a des attributs, il est considéré comme étant de type complexe. Mais l'attribut lui-même est toujours déclaré comme un type simple.
Comment définir un attribut ?
La syntaxe pour définir un attribut est :
<xs:attribute name="xxx" type="yyy"/>
où xxx est le nom de l'attribut et yyy spécifie le type de données de l'attribut.
XML Schema a beaucoup de types de données intégrés. Les types les plus courants sont :
- xs : chaîne
- xs : décimal
- xs : entier
- xs : booléen
- xs :date
- xs : temps
Exemple
Voici un élément XML avec un attribut :
<lastname lang="EN">Smith</lastname>
Et voici la définition d'attribut correspondante :
<xs:attribute name="lang" type="xs:string"/>
Valeurs par défaut et valeurs fixes pour les attributs
Les attributs peuvent avoir une valeur par défaut OU une valeur fixe spécifiée.
Une valeur par défaut est automatiquement affectée à l'attribut lorsqu'aucune autre valeur n'est spécifiée.
Dans l'exemple suivant, la valeur par défaut est "EN" :
<xs:attribute name="lang" type="xs:string" default="EN"/>
Une valeur fixe est également automatiquement affectée à l'attribut et vous ne pouvez pas spécifier une autre valeur.
Dans l'exemple suivant, la valeur fixe est "EN" :
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
Attributs facultatifs et obligatoires
Les attributs sont facultatifs par défaut. Pour spécifier que l'attribut est obligatoire, utilisez l'attribut "use":
<xs:attribute name="lang" type="xs:string" use="required"/>
Restrictions sur le contenu
Lorsqu'un élément ou un attribut XML a un type de données défini, il impose des restrictions sur le contenu de l'élément ou de l'attribut.
Si un élément XML est de type "xs:date" et contient une chaîne comme "Hello World", l'élément ne sera pas validé.
Avec XML Schemas, vous pouvez également ajouter vos propres restrictions à vos éléments et attributs XML. Ces restrictions sont appelées facettes. Vous pouvez en savoir plus sur les facettes dans le chapitre suivant.