Accueil > Les documents XML


Les entités

Dernière modification : 2002/09/10 16:09:45     Contact : Martin Sévigny

Les entités sont des substituts pour des séquences d'information. Ces entités doivent être définies dans l'en-tête du document XML, ou dans la DTD, et peuvent être référencées à une ou plusieurs reprises dans le document.

Il existe plusieurs types d'entités, nous verrons les plus simples ici.

Entité XML définie dans le document

Une telle entité sert en général d'abbréviation pour des informations répétitives ou qui peuvent être modifiées en bloc:

<?xml version="1.0"?>
<!DOCTYPE démo [
  <!ELEMENT démo (#PCDATA|important)>
  <!ELEMENT important (#PCDATA)>
  <!ENTITY cie "Les aliments de Bordeaux SA">
  <!ENTITY imp "<important>Attention!</important>">
]>
<démo>
  &cie;
  &imp;
</démo>

Ce document déclare les entités cie et imp, et les utilise. Pour ce faire, on utilise une balise formée du caractère "&", suivi du nom de l'entité, suivi du caractère ";".

Le document précédent est équivalent au suivant:

<?xml version="1.0"?>
<!DOCTYPE démo [
  <!ELEMENT démo (#PCDATA|important)>
  <!ELEMENT important (#PCDATA)>
  <!ENTITY cie "Les aliments de Bordeaux SA">
  <!ENTITY imp "<important>Attention!</important>">
]>
<démo>
  Les aliments de Bordeaux SA
  <important>Attention!</important>
</démo>

Un parseur XML fournira à une application exactement la même information dans les deux cas.

Entité XML définie à l'externe

Les entités définies à l'extérieur des documents sont utilisées de la même façon mais sont déclarées ainsi :

<?xml version="1.0"?>
<!DOCTYPE doc [
  <!ENTITY chap1 SYSTEM "../chapitres/chap1.xml">
  <!ENTITY chap2 SYSTEM "../chapitres/chap2.xml">
]>
<doc>
  &chap1;
  &chap2;
</doc>

Dans cet exemple, on suppose que les fichiers "chap1.xml" et "chap2.xml" contiennent les chapitres marqués en XML.

Entité non XML

Les entités non XML peremettent de déclarer des documents (ou plus généralement de l'information) qui n'est pas en format XML, par exemple des composantes multimédia (images, son, vidéo, etc.). Ils nécessitent l'utilisation des notations, ce que nous ne verrons pas ici.

Il est important de noter que les entités non XML ne sont pas nécessaires pour inclure des composantes multimédias dans les documents XML.

Entités prédéfinies

Il existe 5 entités prédéfinies en XML, les voici avec leur signification:

lt:      caractère '<'
gt:      caractère '>'
amp:     caractère 'é'
quot:    caractère '"' (guillement double)
apos:    caractère "'" (quillement simple ou apostrophe)

On comprend que ces entités ont été définies afin de permettre l'utilisation de ces caractères sans qu'ils puissent être confondus avec les caractères spéciaux utilisés par les documents XML pour le balisage.