Accueil Boite à Outils Initiation au xhtml xhtml - 4 : Les entités

Publié le : 25 février 2004
Imprimer Imprimer cet article

Auteur :
Frédéric Senis

Frédéric Senis
xhtml - 4 : Les entités

Cet article va tenter d’éclaircir ce que sont les entités, terme que j’utilise depuis le début de cette série sans réellement expliquer ce que cela regroupe.

Tout comme dans le précédent article, vous allez découvrir que certes le web c’est simple, mais cela peut aussi être plus puissant au prix d’une certaine complexification.

Bon alors qu’est-ce que c’est ?

On défini plusieurs types d’entités :
- les entités générales prédéfinies
- les autres entités générales
- les entités paramétriques.

Nous laisserons les entités paramétriques de côté car on ne peut pas les retrouver dans une page Web mais uniquement dans les documents fondateurs (sachez juste qu’elles s’écrivent "%xxxxx ;", c’est à dire un signe pourcent suivi du nom de l’entité et terminé par un point-virgule).

Toute entité des deux autres types s’écrit &xxxxxx ; c’est à dire un "&" suivi du nom de l’entité et terminé par un point-virgule.

Une entité prédéfinie permet de représenter les éléments textuels ayant eux-même un rôle dans l’écriture du langage. Nous les avons déjà vu, il s’agit :
- du "<" qui s’écrit "&lt ;" (lt comme lesser-than, inférieur-à en français)
- du ">" qui s’écrit "&gt ;" (gt signifant greater-than, plus grand que en français)
- du "&" ("et commercial") qui s’écrit "&amp ;" (amp pour amperstand)
- et du """ (le double guillemet droit anglais qui sert en xhtml à délimiter la valeur d’un attribut) qui s’écrit "&quot ;" (guillemet se dit "quote" en anglais)
- l’espace insécable "&nbsp ;" fait aussi partie de cette liste même s’il ne s’agit pas à strictement parler d’un caractère réservé à la description du langage.

Dans le cadre de l’XHTML strict, ce sont les seules entités définies, le reste des caractères doit être encodé en unicode ou vous devrez définir vous même vos propres entités dans un fichier à part.

Si vous utilisez la version de transition (xhtml-transitional) vous pouvez continuer à utiliser les entités que vous connaissez déjà pour le HTML et qui permettent de saisir -entre autres- les caractères accentués.

Certes mais à quoi ca sert ?

Une entité est un texte que l’on utilise à la place d’un contenu dans le but de le rendre représentable dans le contexte courant. Pas clair ? normal, voyons quelques exemples ce sera mieux :

- &spades ; =>♠ (soit un as de pique, tout le monde n’a pas son ancien Commodore 64 et ses caractères semi-graphiques sous la main)
- &#79 ; => O (un O majuscule nomé par son code utf-8 en hexadecimal)
- &#x4f ; => O (un O majuscule nommé par son code utf-8 en hexadécimal)

En effet, il peut être difficile de repérer la touche ♠ sur un clavier.

De même, il peut être difficile de taper certains caractères étrangers sur votre clavier habituel (que diriez-vous d’un KEN minuscule provenant de l’alphabet arménien : կ) or il peut être nécessaire de les utiliser (calmons notre nombrilocentrisme).

Oui, mais il était question de puissance, elle est où ?

En fait, les navigateurs web actuels ne sont pas encore assez développés pour gérer tout l’intérêt potentiel des entités. Il faut juste savoir par exemple, qu’il est tout à fait possible en suivant la norme fondatrice du xhtml de créer une page qui contiendrait :

Bonjour, nous sommes le &date.actuelle ; et il est &heure.actuelle ;. Et je vous souhaite la bienvenue. Signé &auteur;

avec une définition externe des entités de façon à ce que chaque valeur soit intégrée à l’affichage de façon totalement transparente.

La seule limitation est qu’une entité ne peut pas s’utiliser elle-même pour sa définition.

Pas convaincu ?

Et si vous imaginiez un site en plusieures langues, le menu se définirait par :
- &accueil;
- &rubrique.internet ;
- &rubrique.sante ;
- &contact;

et il suffirait de sélectionner le document qui définirait la traduction de chaque terme en chaque langue afin de personnaliser l’affichage.

Encore ?

Je suis un fainéant et à la fois le roi du "petit commentaire de copyright en bas de page".

Au lieu de modifier chaque page pour mettre un nouveau propriétaire ou changer l’année, je pourrai utiliser une entité :

&copyright.piedpage ; définie comme

<!ENTITY copyright.piedpage "Cette page et son contenu sont la propriété exclusive et absolue de son auteur &auteur.page; - &copy; &annee.courante;">

Et ailleurs définir &auteur.page ; et annee.courante ; de la même façon. Au final on obtiendra une page au contenu fixe mais dont l’affichage s’adaptera automatiquement à des éléments mouvants :

Cette page et son contenu sont la propriété exclusive et absolue de son auteur Frédéric Senis - © 2004

Conclusion

Je crois que pour tous ceux qui créent des pages web, il n’y en a qu’une : vivement que les navigateurs s’y mettent !

La prochaine fois nous allons commencer à passer en revue et en détail les différentes balises autorisées en xhtml.




Cliquez ici pour réagir à cet article

Imprimer Imprimer cet article