Déclarations de listes d'attributs

SyntaxeDéclaration d'attribut

Les déclarations d'attributs correspondent à la forme générale :

1
<!ATTLIST nom-élément nom-attribut type-attribut déclaration-de-contrainte>

où :

  • nom-élément :

    Nom de l'élément XML[1] pour lequel les attributs déclarés seront applicables.

  • nom-attribut :

    Nom de l'attribut, des éléments différents peuvent avoir des attributs de même nom sans qu'il y ait de confusion possible car un attribut est toujours déclaré en même temps que l'élément auquel il est attaché.

  • type-attribut :

    Les deux types principaux sont :

    • CDATA

      L'attribut aura pour valeur une chaîne de caractères.

    • Liste de choix

      Une liste de noms symboliques correspondant aux valeurs possibles pour l'attribut et se présentant sous la forme : (choix1 | choix2 | ... | choixN).

  • déclaration-de-contrainte :

    Les deux formes principales de contrainte sont :

    • #REQUIRED

      L'attribut est obligatoire.

    • #IMPLIED

      L'attribut est facultatif.

RemarqueDéclaration de liste d'attributs

La syntaxe ATTLIST permet de déclarer des listes d'attributs, car il est possible de répéter le pattern : nom-attribut type-attribut déclaration-de-contrainte.

ExempleDéclaration de liste d'attributs

1
<!ELEMENT x EMPTY>
2
<!ATTLIST x 
3
att1 CDATA #REQUIRED
4
att2 (a | b | c) #IMPLIED
5
>

ComplémentAutres types d'attributs

En plus des types CDATA et "liste de choix", les attributs peuvent avoir les types suivants :

  • ID ou IDREF

    Sont utilisés pour définir des liens à l'intérieur d'un document, ID identifiant de manière unique tous les éléments pouvant être référencés et IDREF indiquant la référence à cet identifiant.

  • NMTOKEN ou NMTOKENS

    Permet à l'attribut de prendre pour valeur un ou des noms symboliques quelconques, formés de caractères alphanumériques.

  • ENTITY ou ENTITIES

    L'attribut prendra pour valeur le nom d'une ou plusieurs entités externes non XML (images...).

  • NOTATION

    Est utilisé pour des éléments ayant un contenu non XML, l'attribut aura alors pour valeur le nom de l'application qui a été associée à l'application externe traitant le type de contenu concerné lors d'une déclaration de type NOTATION.

ComplémentAutres déclarations de contraintes

En plus des déclarations #IMPLIED et #REQUIRED, les attributs peuvent avoir les déclaration de contrainte :

  • Valeur par défaut

    Indique la valeur par défaut prise par l'attribut (en accord avec son type) s'il n'est pas renseigné. L'attribut peut donc être renseigné ou non (comme un #IMPLIED), mais s'il ne l'est pas il prend la valeur par défaut spécifiée. Se note 'valeur'.

  • #FIXED 'valeur'

    L'attribut prend toujours la valeur indiquée, il est "constant". Il doit donc toujours être renseigné (comme un #REQUIRED), mais toujours avec la même valeur.

ComplémentVoir aussi