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> |