Cours XML

Déclaration d'attribut

Le rôle de la déclaration d'attributs est de donner pour un élément cible :

<!ATTLIST element_cible nom_attribut type_attribut valeur_par_défaut>

Valeur par défaut

La valeur par défaut est la valeur prise par l'attribut si aucune valeur n'est précisée dans l'élément. Cette valeur doit être du même type que celui donné à l'attribut. S'il n'y a pas matière à définir une valeur par défaut on peut remplacer par un mot-clé :

Par exemple, dans la DTD XHML1.0 on a pour l'élément pre l'attribut xml:space qui est fixé à preserve pour signifier que les espaces blancs à l'intérieur de pre sont significatifs et ne doivent pas être modifiés par le processeur XML : <!ATTLIST pre %attrs; xml:space (preserve) #FIXED 'preserve' >

Dans cette même DTD, l'attribut method de l'élément form qui ne peut prendre comme valeur que get ou post prend par défaut la valeur get, d'autre part, le type mime d'encodage prend par défaut la valeur application/x-www-form-urlencoded : <!ATTLIST form %attrs; action %URI; #REQUIRED method (get|post) "get" enctype %ContentType; "application/x-www-form-urlencoded" onsubmit %Script; #IMPLIED onreset %Script; #IMPLIED accept %ContentTypes; #IMPLIED accept-charset %Charsets; #IMPLIED >

Types de données

chaînes de caractères CDATA

<!ATTLIST element_cible nom_attribut CDATA valeur_par_défaut>

Pour XHTML1.0 les attributs http-equiv, name, content, scheme de l'élément meta sont des chaînes de caractères : <!ATTLIST meta %i18n; http-equiv CDATA #IMPLIED name CDATA #IMPLIED content CDATA #REQUIRED scheme CDATA #IMPLIED >

Énumérations

<!ATTLIST element_cible nom_attribut (val1 | val2 | ... | valN) "valdefaut">

L'attribut prend une valeur dans la liste des valeurs possibles définies dans la déclaration d'attribut (chaque valeur doit être un atome nominal ou NMTOKEN valide).

<!ATTLIST livre type (policier | fiction | aventure) "policier">

Identificateurs

<!ATTLIST element_cible nom_attribut ID> <!ATTLIST element_cible nom_attribut IDREF> <!ATTLIST element_cible nom_attribut IDREFS>

Un attribut de type ID représente un identificateur unique d'élément, i.e. un attribut dont la valeur distingue l'élément de tous les autres dans le document XML courant (ex. l'attribut id en HTML). Notons que cet attribut prend généralement le nom id.

Les types IDREF et IDREFS sont des références/liste de références séparées par des espaces, à un identifiant unique précédemment déclaré (par exemple, l'attribut header de l'élément td en XHML est de type IDREFS pour indiquer à quelles cellules de l'en-tête du tableau se rapporte la cellule courante).

Entités

Les types ENTITY et ENTITIES représentent un nom / une liste de noms d'entités séparées par des blancs, non-XML précédemment déclarées dans la DTD.

C'est utilisé par exemple pour établir un lien avec une image : <!ATTLIST image source ENTITY #REQUIRED> <!ENTITY vacances SYSTEM "plage.gif NDATA GIF89a">

qui sera utilisé dans le document XML : <image source="vacances"/>

Tokens

Les types NMTOKEN/NMTOKENS représentent des noms XML/listes de noms XML séparés par des espaces. Ces noms peuvent être composés de lettres, chiffres, soulignés, points, deux-points et tirets (par exemple l'attribut name de l'élément map est de type NMTOKEN en XHTML1.0).

Notations

NOTATION signifie que l'attribut attend une notation qui apparaît dans la DTD dans une déclaration NOTATION

Si une liste de valeurs est préfixée par le mot NOTATION les notations listées comme des valeurs possibles doivent toutes avoir déjà été déclarées :
<!ATTLIST image type NOTATION(GIF | JPEG | PNG) "GIF">

retour cours XML - © Magali Contensin