Tous les attributs sont déclarés comme des types simples.
Qu'est-ce qu'un attribut?
éléments simples ne peuvent pas avoir des attributs. Si un élément a des attributs, il est considéré comme étant d'un 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 indique le type de l'attribut de données.
XML Schema a beaucoup de types de données intégrées. Les types les plus courants sont:
- xs: string
- xs: décimal
- xs: integer
- xs: boolean
- xs: Date
- xs: temps
Exemple
Voici un élément XML avec un attribut:
<lastname lang="EN">Smith</lastname>
Et voici la corresponding définition de l' attribut:
<xs:attribute name="lang" type="xs:string"/>
Valeur par défaut et fixe des valeurs d'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 quand aucune autre valeur 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 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 requis, utilisez la "use" attribut:
<xs:attribute name="lang" type="xs:string" use="required"/>
Restrictions sur les contenus
Quand un élément XML ou attribut a un type de données défini, il met des restrictions sur le contenu de l'élément ou attribut.
Si un élément XML est de type "xs:date" et contient une chaîne comme "Hello World" tout le "Hello World" , l'élément ne sera pas valide.
Avec les schémas XML, 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.