DTD - Propriétés

Dans la DTD, les attributs sont déclarés par l'intermédiaire de l'élément ATTLIST.

Déclarer l'attribut

La déclaration d'attribut utilise la syntaxe suivante :

<!ATTLIST nom_d_element nom_d_attribut type_d_attribut valeur_par_defaut>

Instance DTD :

<!ATTLIST payment type CDATA "check">

Instance XML :

<payment type="check" />

Voici :Type d'attributOptions :

Type Description
CDATA La valeur est des données de caractères (character data)
(en1|en2|..) Cette valeur est une valeur de la liste d'énumération
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 identifiants id
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 Cette valeur est le nom symbolique
xml: La valeur est une valeur XML prédéfinie

Les paramètres de valeur par défaut peuvent utiliser les valeurs suivantes :

Valeur Explication
Valeur Valeur par défaut de l'attribut
#REQUIRED La valeur de l'attribut est obligatoire
#IMPLIED L'attribut n'est pas obligatoire
#FIXED value La valeur de l'attribut est fixe

Définir une valeur par défaut pour l'attribut

DTD :

!ELEMENT square EMPTY>
!ATTLIST square width CDATA "0">

XML légal :

<square width="100" />

Dans l'exemple ci-dessus, "square" est défini comme un élément vide avec l'attribut "width" de type CDATA. Si la largeur n'est pas définie, sa valeur par défaut est 0.

#IMPLIED

Grammaire

!ATTLIST 元素名称 属性名称 属性类型 #IMPLIED>

Exemple

DTD :

!ATTLIST contact fax CDATA #IMPLIED>

XML légal :

<contact fax="555-667788" />

XML légal :

<contact />

Si vous ne souhaitez pas forcer l'auteur à inclure l'attribut et que vous n'avez pas d'option de valeur par défaut, utilisez le mot-clé #IMPLIED.

#REQUIRED

Grammaire

!ATTLIST 元素名称 属性名称 属性类型 #REQUIRED>

Exemple

DTD :

!ATTLIST person number CDATA #REQUIRED>

XML légal :

<person number="5677" />

XML illégal :

<person />

Si vous n'avez pas d'option de valeur par défaut mais souhaitez tout de même forcer l'auteur à soumettre l'attribut, utilisez le mot-clé #REQUIRED.

#FIXED

Grammaire

!ATTLIST 元素名称 属性名称 属性类型 #FIXED "value">

Exemple

DTD :

!ATTLIST sender company CDATA #FIXED "Microsoft">

XML légal :

<sender company="Microsoft" />

XML illégal :

<sender company="W3School" />

Si vous souhaitez que l'attribut ait une valeur fixe et ne permette pas à l'auteur de la modifier, utilisez le mot-clé #FIXED. Si l'auteur utilise une valeur différente, l'analyseur XML renverra une erreur.

Liste des valeurs des attributs

Grammaire :

!ATTLIST 元素名称 属性名称 (en1|en2|..) 默认值>

Exemple DTD :

!ATTLIST payment type (check|cash) "cash">

Exemple XML :

<payment type="check" />

ou

<payment type="cash" />

Si vous souhaitez que la valeur de l'attribut soit l'une des valeurs légitimes fixes d'une série, utilisez les valeurs d'attributs énumérées.