Les attributs des éléments XML doivent être définis dans le DTD (Definition de Type de Document).
L'instruction ATTLIST permet de déclarer les attributs.
<!ATTLIST NomElément NomAttribut TypeAttribut ValeurDefaut>
Le langage XML supporte la déclaration multiple d'attributs sur plusieurs lignes à partir d'une seule instruction ATTLIST.
<!ATTLIST Elément Nom_Attribut Type_Attribut Valeur_Defaut
Nom2_Attribut Type_Attribut Valeur_Defaut
Nom3_Attribut Type_Attribut Valeur_Defaut> |
Le type de l'attribut renseigne sur le type de données de l'attribut.
| Type | Description |
|---|---|
| CDATA | indique l'utilisation de données textuelles ne comprenant pas de balises XML. |
| (Valeur|...|ValeurN) | déclare une liste de valeurs à utiliser. |
| ENTITY | correspond à une entité déclarée dans la DTD. |
| ENTITIES | correspond à la déclaration de plusieurs entités séparées par des espaces blancs dans la DTD. |
| ID | identifie des éléments d'une manière unique. |
| IDREF | correspond à la valeur d'un attribut ID. |
| IDREFS | correspond aux valeurs de plusieurs attributs ID séparés par un espace blanc. |
| NMTOKEN | invoque un token, un nom XML composé de lettres, de chiffres, soulignés, tirets, points et deux-points. |
| NMTOKENS | invoque plusieurs tokens XML séparés par des espaces blancs. |
| NOTATION | correspond à une notation déclarée dans la DTD. |
La valeur par défaut permet d'initialiser l'attribut.
| Valeur | Description |
|---|---|
| #REQUIRED | signifie que la valeur d'attribut est requise pour l'élément XML. |
| #IMPLIED | indique que la valeur de l'attribut peut ne pas être spécifiée. |
| #FIXED "valeur" | permet de fixer la valeur de l'attribut. |
| "valeur" | initialise la valeur de l'attribut. |
Exemple :<!ATTLIST livre auteur CDATA "nom"> <!ATTLIST livre gencode ID #REQUIRED> <!ATTLIST porte ouvert (true|false) "true"> <!ATTLIST rugby point (essai|pénalité|drop|transformation) #IMPLIED>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE liste [
<!ELEMENT commentaire (#PCDATA)>
<!ELEMENT editeur (#PCDATA)>
<!ATTLIST editeur adresse CDATA #REQUIRED>
<!ELEMENT liste (logiciel+)>
<!ELEMENT logiciel (nom, commentaire, editeur, prix)>
<!ATTLIST logiciel id ID #REQUIRED>
<!ELEMENT nom (#PCDATA)>
<!ATTLIST nom
langue CDATA #REQUIRED
systeme_exploitation CDATA #REQUIRED>
<!ELEMENT prix (#PCDATA)>
<!ATTLIST prix monnaie CDATA #REQUIRED>
]>
<liste>
<logiciel id="CTP0124555">
<nom langue="US" systeme_exploitation="Win">
Cooktop 2.200
</nom>
<commentaire>
Un editeur XML, XSLT, XPath et DTD puissant et totalement gratuit.
</commentaire>
<editeur adresse="http://xmleverywhere.com/cooktop/">
XML Everywhere
</editeur>
<prix monnaie="$US">00.00</prix>
</logiciel>
<logiciel id="XSY325684">
<nom langue="US" systeme_exploitation="Win">
XML Spy 4.1
</nom>
<commentaire>
Un editeur XML desormais mature.
</commentaire>
<editeur adresse="http://www.xmlspy.com/default.html">
Altova Inc.
</editeur>
<prix monnaie="$US">199,00</prix>
</logiciel>
<logiciel id="XWR387795">
<nom langue="US" systeme_exploitation="Win">
XMLwriter v1.21
</nom>
<commentaire>
Permet de creer des documents XML.
</commentaire>
<editeur adresse="http://xmlwriter.net/">
Wattle Software
</editeur>
<prix monnaie="$US">75,00</prix>
</logiciel>
</liste> |