DTD - Attributs
Dans une DTD, les attributs sont déclarés avec une déclaration ATTLIST.
Déclaration d'attributs
Une déclaration d'attribut a la syntaxe suivante :
<!ATTLIST element-name attribute-name attribute-type attribute-value>
DTD example:
<!ATTLIST payment type CDATA "check">
XML example:
<payment type="check" />
Le type d'attribut peut être l'un des suivants :
Type | Description |
---|---|
CDATA | The value is character data |
(en1|en2|..) | The value must be one from an enumerated list |
ID | The value is a unique id |
IDREF | The value is the id of another element |
IDREFS | The value is a list of other ids |
NMTOKEN | The value is a valid XML name |
NMTOKENS | The value is a list of valid XML names |
ENTITY | The value is an entity |
ENTITIES | The value is a list of entities |
NOTATION | The value is a name of a notation |
xml: | The value is a predefined xml value |
La valeur de l'attribut peut être l'une des suivantes :
Value | Explanation |
---|---|
value | The default value of the attribute |
#REQUIRED | The attribute is required |
#IMPLIED | The attribute is optional |
#FIXED value | The attribute value is fixed |
Une valeur d'attribut par défaut
DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
Valid XML:
<square width="100" />
Dans l'exemple ci-dessus, l'élément "square" est défini comme étant un élément vide avec un attribut "width" de type CDATA. Si aucune largeur n'est spécifiée, sa valeur par défaut est 0.
#OBLIGATOIRE
Syntaxe
<!ATTLIST element-name attribute-name attribute-type #REQUIRED>
Exemple
DTD:
<!ATTLIST person number CDATA #REQUIRED>
Valid XML:
<person number="5677" />
Invalid XML:
<person />
Utilisez le mot-clé #REQUIRED si vous n'avez pas d'option pour une valeur par défaut, mais que vous voulez quand même forcer la présence de l'attribut.
#IMPLICITE
Syntaxe
<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
Exemple
DTD:
<!ATTLIST contact fax CDATA #IMPLIED>
Valid XML:
<contact fax="555-667788" />
Valid XML:
<contact />
Utilisez le mot-clé #IMPLIED si vous ne voulez pas forcer l'auteur à inclure un attribut et que vous n'avez pas d'option pour une valeur par défaut.
#FIXÉ
Syntaxe
<!ATTLIST element-name attribute-name attribute-type #FIXED "value">
Exemple
DTD:
<!ATTLIST sender company CDATA #FIXED "Microsoft">
Valid XML:
<sender company="Microsoft" />
Invalid XML:
<sender company="W3Schools" />
Utilisez le mot-clé #FIXED lorsque vous souhaitez qu'un attribut ait une valeur fixe sans permettre à l'auteur de la modifier. Si un auteur inclut une autre valeur, l'analyseur XML renverra une erreur.
Valeurs d'attribut énumérées
Syntaxe
<!ATTLIST element-name attribute-name (en1|en2|..) default-value>
Exemple
DTD:
<!ATTLIST payment type (check|cash) "cash">
XML example:
<payment type="check" />
or
<payment type="cash" />
Utilisez des valeurs d'attribut énumérées lorsque vous souhaitez que la valeur d'attribut fasse partie d'un ensemble fixe de valeurs légales.