ATTLIST (Liste d'attributs)
L'instruction ATTLIST
permet d'énumérer et de déclarer chaque attribut pouvant appartenir à un élément. Elle commence par spécifier le nom du ou des éléments auxquels la liste d'attributs s'applique. Elle répertorie ensuite chaque attribut par son nom, indique s'il est obligatoire et spécifie les données de type caractère qu'il peut recevoir comme valeur.
Syntaxe
<!ATTLIST elementName attributeName dataType default >
Paramètres
- elementName
Nom de l'élément auquel la liste d'attributs s'applique.
- attributeName
Nom d'un attribut. Ce paramètre peut être répété autant de fois que nécessaire pour répertorier tous les attributs disponibles à utiliser avecelementName
.
dataType
Type de données de l'attribut nommé dans le paramètreattributeName
, qui doit être un des types suivants :CDATA – L'attribut ne contient que des données de type caractère.
ID - La valeur de l'attribut doit être unique. Elle ne peut pas être répétée dans d'autres éléments ou attributs utilisés dans le document.
IDREF– L'attribut fait référence à la valeur d'un autre attribut du document, de type ID.
ENTITY – La valeur de l'attribut doit correspondre au nom d'une ENTITY externe non analysée, déclarée dans la même DTD.
ENTITIES - La valeur de l'attribut contient plusieurs noms d'entités externes non analysées déclarées dans la DTD.
NMTOKEN – La valeur de l'attribut doit être un jeton de nom. Les jetons de nom autorisent les valeurs de données de type caractère, mais sont plus limités que CDATA. Un jeton de nom peut contenir des lettres, des chiffres et certains signes de ponctuation tels que les points, les traits d'union et de soulignement et les deux-points. Les valeurs des jetons de nom ne peuvent cependant contenir aucun caractère d'espacement.
NMTOKENS - La valeur de l'attribut contient plusieurs jetons de nom. Pour plus d'informations, voir la description de NMTOKEN et Enumerated.
Enumerated – Les valeurs des attributs sont limitées à celles contenues dans une liste énumérée. Seules les valeurs correspondant à cette liste sont valablement analysées. Tous les types de données énumérés sont placés entre parenthèses et séparés par des barres verticales (« | »).
default
Valeur par défaut de l'attribut nommé dansattributeName
. Le tableau suivant décrit les valeurs par défaut possibles.Valeurs par défaut Description #REQUIRED
L'attribut doit apparaître dans le document XML ou une erreur d'analyse se produit. Pour éviter une erreur d'analyse dans certains cas, vous pouvez (facultativement) utiliser le champ
defaultValue
directement après ce mot clé.#IMPLIED
L'attribut peut apparaître dans le document XML, mais, s'il est omis, aucune erreur d'analyse ne se produit. Facultativement, dans certains cas, vous pouvez également utiliser le champ
defaultValue
directement après ce mot clé.#FIXED
La valeur de l'attribut est fixée dans la DTD et ne peut pas être modifiée ou remplacée dans le document XML. En cas d'utilisation de ce mot clé, le champ
defaultValue
qui le suit directement doit également être utilisé pour déclarer la valeur fixe de l'attribut.defaultValue
Valeur par défaut ou valeur fixe. L'analyseur insère cette valeur dans le document XML lorsque l'attribut est manquant ou n'est pas utilisé dans le document XML. Toutes les valeurs doivent être placées entre guillemets (simples ou doubles).
Notes
Pour chaque déclaration ATTLIST
effectuée dans la DTD, une seule occurrence d'elementName
est nécessaire. Les paramètres attributeName
, dataType
et default
définissent chaque attribut de la liste et peuvent être répétés autant de fois que nécessaire jusqu'à ce que vous ayez répertorié et défini tous les attributs disponibles à utiliser avec elementName
.
Exemple
L'exemple suivant déclare, pour l'élément <book>
:
Attribut
publisher
facultatif ne pouvant contenir que des données de type caractère.Attribut
reseller
fixe dont la valeur est définie sur"MyStore".
.Attribut
ISBN
obligatoire devant contenir une valeur d'identification unique pour chaque élément<book>
du document XML.Attribut
InPrint
obligatoire devant contenir une valeur"yes"
ou"no"
. La valeur par défaut définit la valeur sur"yes"
lorsqu'elle n'est pas explicitement définie dans le document XML.
<!ATTLIST book
publisher CDATA #IMPLIED
reseller CDATA #FIXED "MyStore"
ISBN ID #REQUIRED
inPrint (yes|no) "yes"
>