Dans une DTD, les attributs sont déclarés avec une déclaration ATTLIST.
Déclarant 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 attribute-type peut être l' un des éléments suivants:
Type | La description |
---|---|
CDATA | La valeur est des données de caractère |
( en1 | en2 |..) | La valeur doit être une à partir d'une liste énumérée |
ID | La valeur est un identifiant unique |
IDREF | La valeur est l'identifiant d'un autre élément |
IDREFS | La valeur est une liste d'autres ids |
NMTOKEN | La valeur est un nom XML valide |
NMTOKENS | La valeur est une liste de noms XML valides |
ENTITY | La valeur est une entité |
ENTITIES | La valeur est une liste d'entités |
NOTATION | La valeur est un nom d'une notation |
xml: | La valeur est une valeur prédéfinie xml |
L' attribute-value peut être l' un des éléments suivants:
Valeur | Explication |
---|---|
value | La valeur par défaut de l'attribut |
#REQUIRED | L'attribut est obligatoire |
#IMPLIED | L'attribut est facultative |
#FIXED value | La valeur d'attribut est fixe |
A défaut Attribut Valeur
DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
Valid XML:
<square width="100" />
Dans l'exemple ci - dessus, le "square" élément est défini comme un élément vide avec une "width" attribut de type CDATA. Si aucune largeur est spécifié, il a une valeur par défaut de 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 ne disposez pas d'une option pour une valeur par défaut, mais encore envie de forcer l'attribut d'être présent.
#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 ne disposez pas d'une 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="w3ii" />
Utilisez le mot-clé #FIXED quand vous voulez un attribut d'avoir une valeur fixe sans permettre à l'auteur de le changer. Si un auteur comprend une autre valeur, l'analyseur XML renvoie une erreur.
Attribut énumératif Valeurs
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'attributs énumérés lorsque vous souhaitez que la valeur de l'attribut d'être l'un d'un ensemble fixe de valeurs légales.