XML:Déclarations d'entités
Un article de WikiTuto.
Sommaire |
Introduction
Les déclarations d'entités permettent de disposer de l'équivalent de raccourcis clavier et de caractères a priori non accessibles dans le jeu de caractères sélectionné.
Les entités paramétriques
Elles servent à définir des symboles qui seront utilisés ailleurs dans la DTD. Ce sont en quelque sorte des raccourcis d'écriture : partout où une entité est mentionnée, elle peut être remplacée par la chaîne de caractères qui lui est associée. Ce mécanisme s'apparente à un mécanisme de "macro".
Les entités paramétriques ne peuvent pas être utilisées en-dehors d'une DTD.
Exemple tiré de la spécification du langage HTML :
<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
L'exemple précédent a pour effet d'indiquer au système que toute occurence de %heading; doit être remplacée par H1|H2|H3|H4|H5|H6.
Ce mécanisme peut également servir à utiliser un nom relativement compréhensible à la place d'une séquence de caractères peu évocatrice. La définition d'une entité peut également faire référence à d'autres entités ; la substitution est alors effectuée de proche en proche.
Les entités de caractères
Elle servent à donner un nom facilement lisible à des caractères qui ne sont pas représentables dans l'alphabet utilisé, ou qui ne sont pas disponibles au clavier.
Exemples tirés de la DTD du langage HTML 4.01 :
<!ENTITY nbsp " "> <!ENTITY eacute "é">
Les entités de caractères définies dans une DTD peuvent être utilisées dans un document XML référençant cette DTD à l'aide de la notation &NomEntité;.
Les entités internes
Ce sont des symboles pouvant être définis dans une DTD et utilisés dans un document XML comme raccourcis d'écriture. La définition complète du symbole est entièrement incluse dans la DTD. Exemple :
<!ENTITY ADN "Acide désoxyribonucléique">
Dans le fichier XML, l'appel à &ADN; sera aumatiquement remplacé, lors de l'affichage ou du traitement, par la chaîne de caractères "Acide désoxyribonucléique".
Les entités externes
Il s'agit...
- ... soit de symboles pouvant être définis dans un autre fichier, mais pouvant être utilisés dans un document XML ou la DTD elle-même. Par exemple :
<!ENTITY Inclusion SYSTEM "toto.xml"> <!ENTITY % Inclusion SYSTEM "toto.inc">
Dans le fichier XML, le contenu du fichier toto.xml sera inséré à l'appel de l'entité &Inclusion;, et dans la DTD, le contenu du fichier toto.inc sera inséré à l'appel de l'entité &Inclusion;
- ... soit de symboles pouvant être définis dans une autre DTD et utilisés dans la DTD courante :
<!ENTITY % HTMLSpecial PUBLIC "-//W3C//ENTITIES Special for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
Le contenu de cette DTD (qui peut être de type SPECIAL ou PUBLIC) est importé dans la DTD courante par l'appel de %HTMLSpecial;.
Exercice 1. Déclarations d'entités
Sources
Voir aussi
- Introduction
- Types de DTD
- Déclarations d'éléments
- Déclarations d'attributs
- Déclarations d'entités



