Xml Dtd Entités XPath Xsl

Entités

Introduction
Caractères
Entités prédéfinies
Entités générales
Entités paramètres
Déclaration d'entités
Utilisation
Notations
Annexe : Références

I. Introduction

En XML, Une entité désigne une unité de stockage. Une entité possède un nom et un contenu. La DTD ainsi que le document lui-même (racine) forment des entités particulières.

On considère deux types de contenus d'entités :

On peut utiliser le mécanisme d'entité à tout endroit d'un document XML (voir restrictions en VII) :

II. Caractères

Comme en HTML, il est possible d'appeler un caractère particulier à partir de son code ASCII (voir aussi document INRIA).
Syntaxe : &#code_ascii;   La valeur du code ascii peut s'exprimer en décimal ou en hexa (en le précédant de x).
Exemples : A (A), @ (@)

III. Entités prédéfinies

Les entités suivantes sont utilisées pour le déguisement de caractères de balisage et n'ont pas besoin d'être déclarées :

IV. Entités générales

Les entités générales sont déclarées dans la DTD et appelées soit dans la DTD, soit dans le document XML.
Syntaxe d'appel : &nom_entité;   Le contenu de l'entité sera placé à l'endroit de l'appel avant analyse de la syntaxe.

V. Entités paramètres

Les entités paramètres sont déclarées dans la DTD et appelées exclusivement dans la DTD.
Syntaxe d'appel : %nom_entité;   Le contenu de l'entité sera placé à l'endroit de l'appel avant analyse de la DTD.

VI. Déclarations d'entités

Toutes les entités se déclarent dans la DTD. Lorsque des entités font référence à des URL, le document XML ne peut pas spécifier standalone="yes" dans sa déclaration XML.
Lorsqu'un même nom d'entité est déclaré deux fois dans le même registre (général ou paramètre), seule la première définition est retenue.

Entités générales
<!ENTITY nom_entité définition>
Définition interne
Exemple : <!ENTITY mx "<abc>abcdef</abc>">
Imbrication : <!ENTITY cd "&mx;">
Définition externe
Exemple : <!ENTITY xhtml SYSTEM "xhtml.dtd">
Publique : <!ENTITY xhtml PUBLIC "nom_public" "url_ressource">
L'URL doit correspondre à une ressource existante, qui sera lue (un simple nom de fichier par exemple).
Non-analysable (toujours externe)
<!ENTITY logo_porsche SYSTEM "http://www.porsche.com/bilder/entry/porschelogo.gif" NDATA gif>
Le terme présent après le mot-clef NDATA doit se référer à une NOTATION définie par ailleurs.

Entités paramètres
<!ENTITY % nom_entité définition> (blanc obligatoire après %)
Définition interne
Exemple : <!ENTITY % a "A">
Définition externe
Exemple : <!ENTITY % xhtml SYSTEM "xhtml.dtd">
Publique : <!ENTITY % xhtml PUBLIC "nom_public" "url_ressource">
Note sur l'identifiant PUBLIC (Extrait traduit d'un article paru sur xml.com)
XML 1.0 offre une séparation entre le nom et l'adressage des ressources. Les identificateurs SYSTEM définissent une ressource réelle, alors que les identificateurs PUBLIC donnent simplement un nom pour la ressource. L'identificateur système est une information complémentaire qui peut être utilisée par l'application pour localiser la ressource dans le cas notamment où l'URL ne répond pas.

Déclaration XML dans les fichiers importés
Un fichier importé par une entité peut contenir une déclaration XML dans son prologue. Celle-ci peut contenir la version XML et l'encodage des caractères. Cette déclaration ne fait pas partie des caractères importés.
Exemple : <?xml version='1.0' encoding='us-ascii'?>

VII. Tableau d'utilisation des entités

Source : Recommandation du W3C XML 1.0
Type d'entité Caractère
paramètre interne
générale
externe analysable
générale
non-analysable
Appel dans
le contenu
Non reconnu Inclus Inclus si validation Interdit Inclus
Appel dans une
valeur d'attribut
Non reconnu Inclus dans littéral Interdit Interdit Inclus
Valeur d'attribut Non reconnu Interdit Interdit Signalé Non reconnu
Appel dans une
valeur d'entité
Inclus dans littéral Non interprété Non interprété Interdit Inclus
Appel dans la DTD Inclus comme EP Interdit Interdit Interdit Interdit

VIII. Notations

Les balises NOTATION identifient le format de données non-XML, et désignent les applications qui doivent être utilisées pour interpréter ces données. La notation associe un nom et une ressource, cette dernière n'étant pas lue.
Un nom de notation ne doit être défini qu'une seule fois dans un document.

Syntaxe : <!NOTATION nom identifiant>   L'identifiant est une ressource PUBLIC ou SYSTEM.

Exemples :
<!NOTATION gif PUBLIC "image gif" "gif viewer">
<!NOTATION jpg SYSTEM "image.jpg">

Utilisation
<!ATTLIST balise attribut NOTATION (gif | jpg) #IMPLIED>
<!ENTITY image SYSTEM "image.gif" NDATA gif>

Annexe : Références

Liens internes
Liens externes