Recherche…


Remarques

Du point de vue du stockage, un document XML est constitué d'entités. L'une des entités est l'entité document, qui est le document XML principal lui-même.

Les entités peuvent être classées comme telles (triées par ordre décroissant d'utilisation):

  • entité document : c'est le fichier XML principal.
  • Entités générales internes : il s'agit de l'entité la plus courante en dehors de l'entité de document et de celle que connaissent le plus les utilisateurs XML. Souvent, le mot entité est utilisé pour eux. Ils permettent de spécifier des raccourcis pour des textes de remplacement plus longs dans le contenu du document. Ils sont déclarés dans la DTD.
  • le sous - ensemble DTD externe : un autre fichier dans lequel une partie de la DTD est externalisée.
  • Paramètre entités : raccourcis, à utiliser dans la DTD.
  • entités générales externes analysées : ce sont des fragments XML stockés dans d'autres fichiers.
  • entités non analysées : il peut s'agir de fichiers sur lesquels XML ne place aucune restriction, y compris des images, des sons, etc.

Dans de nombreux cas, un document XML est constitué uniquement de l'entité document.

Entités générales prédéfinies

XML pré-définit cinq entités générales pouvant être utilisées sans les déclarer:

& " ' < >

Ils sont associés aux noms amp , quot , apos , lt et gt .

<?xml version="1.0"?>
<entities>
  &amp; is an ampersand.
  &quot; is a quote.
  &apos; is an apostrophe.
  &lt; is a lower-than sign.
  &gt; is a greater-than sign. 
</entities>

Entités générales (internes) définies par l'utilisateur

Il est possible de définir ses propres entités générales. La déclaration se produit dans le sous-ensemble DTD, avec un nom et le texte de remplacement associé.

Il peut ensuite être utilisé dans le document en utilisant la syntaxe de référence de l'entité &...; , soit dans le texte, soit dans les valeurs d'attribut.

<?xml version="1.0"?>
<!DOCTYPE my-document [
  <!ENTITY my-entity "This is my entity">
]>
<my-document>
    The entity was declared as follows: &my-entity;
    <element attribute="Entity: &my-entity;"/>
</my-document>

Entités analysées externes

Les fragments XML, également connus sous le nom d' entités analysées externes , peuvent être stockés dans des fichiers séparés.

Les fragments XML, contrairement aux documents XML, sont moins restrictifs, car plusieurs éléments peuvent apparaître au niveau supérieur, ainsi que des nœuds de texte. Comme un document XML, une entité externe analysée peut commencer par une déclaration XML, mais cette déclaration n'est pas considérée comme faisant partie de son texte de remplacement.

Voici un exemple d'entité externe analysée:

<?xml version="1.0" encoding="UTF-8"?>
This is some text
<element/>
<element/>

Une entité analysée externe peut alors être déclarée dans un document XML, dans la DTD, et peut être utilisée avec une référence d'entité, qui a la même syntaxe que pour les entités internes générales:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
    &fragment;
</root>

Avec la référence d'entité résolue, ce document équivaut à:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
  This is some text
  <element/>
  <element/>
</root>

Chaque balise d'élément d'ouverture dans une entité analysée externe doit avoir une balise de fin correspondante: il n'est pas permis de répartir des éléments individuels sur plusieurs entités, ni d'étaler le balisage.

Un analyseur de validation est requis pour résoudre la référence de l'entité et inclure son texte de remplacement dans le document comme ci-dessus. Un analyseur non validant peut ignorer cela et indiquer à l'application consommatrice qu'il existe une référence non résolue à une entité analysée externe.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow