Accueil > Les documents XML


Le prologue

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

Le prologue des documents XML joue trois rôles importants:

  1. Préciser qu'il s'agit d'un document XML

  2. Identifier le jeu de caractères utilisé

  3. Identifier la grammaire (DTD) utilisée

Les trois éléments sont facultatifs, mais il est en général préférable d'include la déclaration XML qui contient les deux premiers éléments d'information.

Si aucun jeu de caractères n'est spécifié, une application XML doit supposer qu'il s'agit du jeu de caractères Unicode, encodé en UTF-8 ou en UTF-16.

Si aucune DTD n'est identifiée, le document est considéré bien formé. Si une DTD est spécifiée, le document est alors valide (s'il respecte les règles dictées dans la DTD bien sûr).

Syntaxe

La syntaxe des différents éléments est la suivante.

L'identification XML

L'identification du document XML est nécessairement au début du document et a la forme suivante:

<?xml version="1.0"?>

L'encodage

L'encodage, s'il est spécifié, se retrouve dans l'instruction de traitement qui identifie le document XML:

<?xml version="1.0" encoding="ISO-8859-1"?>

Dans cet exemple, il s'agit d'un document XML dont le jeu de caractères est l'ISO-Latin 1 (norme ISO 8859-1), et donc pas l'Unicode. Dans l'exemple précédent, le jeu de caractères était l'Unicode, avec encodage UTF-8 ou UTF-16, soit la valeur par défaut.

La DTD

La DTD peut être référencée de la façon suivante:

<!DOCTYPE racine PUBLIC "identificateur public" "uri de la DTD">

Ici, "racine" identifie l'élément qui contient tous les autres dans le document, la mention PUBLIC et la chaîne de caractères qui suit, optionnelles, précise un identificateur public pour cette DTD, et enfin la chaîne de caractères qui la suit, obligatoire, précise la localisation de la DTD à l'aide d'une URI.

Très souvent, un appel à une DTD sera de la forme suivante:

<!DOCTYPE racine SYSTEM "racine.dtd">

ce qui signifie que la DTD est dans un fichier nommé "racine.dtd" et qui se situe dans le même répertoire que le document.

Soulignons également qu'il est possible d'inclure la DTD à l'intérieur du document lui-même, de la façon suivante:

<!DOCTYPE racine [
  <!ELEMENT racine EMPTY>
]>

Dans cet exemple, la DTD (fort simple) est incluse dans le document. il s'agit d'une pratique assez rare, mais cette technique est aussi utilisée pour déclarer des entités.

Le schéma

Les schémas ne sont pas références dans l'en-tête du document, mais plutôt en attribut d'un élément, comme dans cet exemple :

<BookCatalogue
     xmlns="http://www.publishing.org"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.publishing.org BookCatalogue.xsd">
  <Book>...</Book>
  <Book>...</Book>
</BookCatalogue>

Dans cet exemple, on identifie l'espace de nom du schéma et sa localisation.