9.Les entités internes et externes

9.3.Entité externe

Alors que les entités internes nous ont permis de faire référence à des chaînes de caractères définies au sein de la DTD (ou du document XML), les entités externes vont nous permettre de faire référence à des fichiers externes.
La déclaration d'une entité externe se fait de la façon suivante <!ENTITY nomentite SYSTEM nomfichier> et vous pouvez y faire référence (comme pour une référence interne) par &nomentite;.
Le fichier suivant
<?xml version="1.0"?>
<!DOCTYPE nomracine [
   <!ENTITY autresection SYSTEM "entiteexterne_inc.xml">
]>
<nomracine>
   <section name="section1">
       Une première partie du document XML
   </section>
   &autresection;
</nomracine>
qui fait référence à
<?xml version="1.0"?>
<section name="autresection">
   Une autre section du document, déclarée dans un fichier isolé.
</section>
est alors équivalent à
<?xml version="1.0"?>
<nomracine>
    <section name="section1">
        Une première partie du document XML
    </section>
    <section name="autresection">
        Une autre section du document, déclarée dans un fichier isolé.
    </section>
</nomracine>
rem
  • L'entité externe doit (dans ce cas) être un document XML bien formé (ce qui signifie en particulier qu'il ne doit contenir qu'une seule balise racine) on parle alors d'entité "parseable".
  • L'entité externe ne peut contenir ou faire référence à une DTD