Un élément peut définir des attributs.
Ces attributs doivent être déclarés dans le DTD pour que le document XML soit valide.
La déclaration d'un attribut doit commencer par "
<!ATTLIST
", suivi par un espace,
suivi par le nom de l'élément auquel appartient l'attribut (exemple book), suivi par un espace,
suivi par le nom de l'attribut (exemple isbn), suivi par un espace,
suivi par les options de l'attribut (type, valeur par défaut, ...).
Notes : il est possible de déclarer plusieurs attributs dans la même déclaration.
Voir la liste des types des attributs :
-
CDATA
Indique que la valeur de l'attribut est une chaîne caractères.
-
ID
Indique que la valeur de l'attribut identifie de manière unique l'élément auquel cet attribut appartient.
-
IDREF
Indique que la valeur de l'attribut est une référence à un élément (identifié par son ID).
-
IDREFS
Indique que la valeur de l'attribut est une liste de valeurs "IDREF
" séparées par des espaces.
-
NMTOKEN
Indique que la valeur de l'attribut est un nom de jeton.
-
NMTOKENS
Indique que la valeur de l'attribut est une liste de valeurs "NMTOKEN
" séparées par des espaces.
-
ENTITÉ
Indique que la valeur de l'attribut est une référence à une ressource externe (image, texte, …).
-
ENTITÉS
Indique que la valeur de l'attribut est une liste de valeurs "ENTITÉ
" séparées par des espaces.
-
Liste de valeurs possibles : (value1, value2, ...)
Indique que la valeur de l'attribut peut prendre une valeur parmi les valeurs de cette liste (séparées par le caractère "|").
Dans l'exemple précédant, la déclaration de l'élément "<book>
" indique qu'il peut avoir un attribut "<version>
"
qui peut prendre l'une des valeurs "1", "2", "3", "4".
La valeur par défaut de l'attribut "<version>
" est "1".
Il est possible d'omettre l'attribut, mais il est interdit de lui donner une valeur différente des valeurs listées dans sa déclaration.
Il est aussi possible d'ajouter les options suivantes à la déclaration de l'attribut :
-
#FIXED
Indique que la valeur de l'attribut a une valeur fixe.
Il est possible d'omettre l'attribut, mais il est interdit de lui donner une valeur différente de la valeur fixe.
-
#REQUIRED
Indique que l'attribut est requit.
-
#IMPLIED
Indique que l'attribut est optionnel.