Dans le Part.2 nous avons appris à définir les éléments et leur hiérarchisation dans une DTD; Mais qu'en est-il des attributs ? C'est ce que je vous propose de découvrir dans ce nouveau Part.
Définition d'attributs
Les attributs XML ont la même fonction que les attributs HTML : préciser les caractéristiques des éléments. On définit les attributs dans une DTD avec l'instruction <!ATTLIST
Tous les attributs utilisés doivent être déclarés explicitement dans une DTD.
Comme pour les balises XML, le développeur nomme à sa convenance les attributs tout en respectant
les mêmes contraintes.
La syntaxe générale d'une déclaration d'attribut est la suivante :
<!ATTLIST nom_element nom_attribut TypeAttribut #OptionAttribut>
On remarque ici qu'avant de définir le nom de l'attribut, on doit déclarer le nom de l'élément auquel il est associé. Ensuite vient la spécification du type de l'attribut soit sa (ou ses) valeur(s). Enfin, on précise le rôle de l'attribut avec une option.
Le type de l'attribut est obligatoire. En d'autres termes, toute déclaration d'attribut doit impérativement
posséder une valeur.
L'option est obligatoire. En d'autres termes, tout attribut déclaré doit posséder une option précisant une
valeur par défaut ou le comportement à tenir par le parser en cas d'attribut non obligatoire.
Il existe 3 types de spécification d'attribut : le type énuméré, le type chaîne et le type prédéfini (par mot clé). Ces spécifications sont décrites dans le tableau suivant (Tableau 5).
Une suite de valeurs séparées par un trait vertical. L'attribut ne pourra prendre qu'une seule de ces valeurs. <!ATTLIST nom_elmt nom_attrib (v1 | v2)>
Définit comme valeur d'attribut plusieurs entités (séparées par des espaces) non parsées déclarées dans une DTD. <!ATTLIST nom_elmt nom_attrib ENTITIES #option>
Indique que l'attribut possède une valeur unique pour chaque élément. La valeur peut contenir une ou plusieurs lettres, des chiffres, des points (.), des tirets hauts (-) ou bas (_), et un double point (:). <!ATTLIST nom_elmt nom_attrib ID #option>
Identique à IDREF excepté que la valeur de l'attribut peut se référer à plusieurs ID, chaque valeur étant séparée par un espace. <!ATTLIST nom_elmt nom_attrib IDREFS #option>
Indique que la valeur de l'attribut est une chaîne de caractères pouvant contenir une ou plusieurs lettres, des chiffres, des points (.), des tirets hauts (-) ou bas (_), et un double point (:). <!ATTLIST nom_elmt nom_attrib NMTOKEN #option>