Notre premier document XML

Un document XML peut débuter par une déclaration XML. Cette déclaration définit la version de XML utilisée, l'encodage et précise si le document contient des références externes.

Exemple :

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

Structure du document XML

Syntaxe du prologue

<?xml attributs ?>
<?XML ATTRIBUTS ?>

Attributs XML

InstructionDescription
version="numéro-de-version"Version XML utilisée pour le document.
Exemple : version="1.0"
encoding="type-d'encodage"Jeu de caractères employés.
Exemple : encoding="iso-8859-1"
standalone="yes|no"
  • yes : le document est autonome
  • no : le document se réfère à d'autres fichiers

Contents Haut

Elément racine

Il existe un seul et unique élément racine dans un document XML, par conséquent aucune partie de cet élément n'apparaît dans le contenu d'un autre élément.

Exemple :

<livre genre="BD">
<titre>Voyage en Italie</titre>
<auteur>Cosey</auteur>
</livre>

Dans cet exemple, <livre> nous signale le début de l'élément racine.
Pour des raisons de lisibilité, nous présenterons les éléments en arborescence. L'élément racine peut contenir un ou plusieurs éléments, qui peuvent eux-même contenir d'autres éléments.

Contents Haut

Eléments XML

Comme pour les balises HTML, les éléments sont délimités de la manière suivante:

<nom>contenu</nom>

Exemple :

<titre>Voyage en Italie</titre>

Dans le cas ou un élément doit être présent (du point de vue syntaxique), mais ne possède pas de valeur, la manière suivante sera utilisée :

<nom></nom>

Contents Haut

Attributs XML

Il est possible de déterminer un ou plusieurs attributs pour un élément. Un attribut sera signalé dans la balise ouvrante, par son nom suivi du signe égal (=), puis de sa valeur entre apostrophes.

<nomélément nomattribut="valeur de l'attribut">

Exemple :

<livre genre="BD">

Dans cet exemple, genre est un attribut.

Contents Haut

Commentaires XML

Les commentaires se présentent de la même manière que les commentaires HTML :

<!-- Ceci est un commentaire -->

Contents Haut

XML texte

Sous l'appellation texte, nous pouvons retrouver toute chaîne de caractères hors balisage.

Dans notre exemple, BD et Voyage en Italie sont reprises comme texte.

<livre genre="BD">
<titre>Voyage en Italie</titre>

Contents Haut

XML CDATA

Si sous déclarons une chaîne de caractères comme étant de type CDATA, l'analyseur n'interprètera pas le contenu. Les caractères spéciaux comme <, >, [, etc. sont donc traités comme des caractères et non comme des délimiteurs.

Exemple :

<![CDATA[je peux mettre n'importe quoi ici, même des caractères comme < ou >.]]>

Remarques

  • Nous ne pouvons employer des références d'entités (&lt;, &amp;, etc.) à l'intérieur d'une section CDATA, en raison d'une incapacité de transcription puisque seule la chaîne de caractères ]]> est reconnue comme balisage.
  • Les sections CDATA ne peuvent pas s'imbriquer.

Contents Haut

Instructions de traitement XML

Nous pouvons préciser quelle est l'application à utiliser pour traiter certaines données, ou spécifier les paramètres nécessaires au traitement de ces informations.

<?cible liste_attributs?>

  • Cible : application à laquelle s'applique l'instruction.
  • Liste d'attributs : données nécessaires au traitement des informations.

Remarque

Certaines informations de traitement débutent par <?xml dont l'usage est réservé (standard XML).

Exemple :

<?xml-stylesheet type="text/xsl" href="style.xsl"?>

Contents Haut

Remarques

XML est sensible à la casse (case-sensitive) :
Nous devons impérativement prendre en compte la différence entre minuscule et majuscule.

Incorrect :

<auteur>Cosey</Auteur>

Correct :  

<auteur>Cosey</auteur>

Tout élément ouvert doit être fermé :
En effet, contrairement au HTML qui est plus laxiste, en XML, tout élément ouvert doit être fermé :


Incorrect :

<livre><auteur>Cosey</auteur></livre>

Correct :

<livre><auteur>Cosey</auteur></livre>


Hiérarchie :
Le document XML doit respecter les contraintes de formes, c'est à dire la hiérarchie des éléments XML. Une balise d'un élément peut être imbriquée dans une autre, mais la balise contenante ne peut être fermée avant la balise contenue.

Incorrect :

<livre genre="Fantasy">
<titre>Le seigneur des anneaux</titre>
<auteur>Tolkien</auteur>
<livre genre="BD">
<titre>Voyage en Italie</titre>
<auteur>Cosey</auteur>
</livre>
</livre>

Correct :

<livre genre="Fantasy">
<titre>Le seigneur des anneaux</titre>
<auteur>Tolkien</auteur>
</livre>
<livre genre="BD">
<titre>Voyage en Italie</titre>
<auteur>Cosey</auteur>
</livre>

Définition du document

Voici donc un exemple de document XML :

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- test1.xml //-->
  3. <livres>
  4. <livre genre="Fantasy">
  5. <titre>Le seigneur des anneaux</titre>
  6. <auteur>Tolkien</auteur>
  7. </livre>
  8. <livre genre="BD">
  9. <titre>Voyage en Italie</titre>
  10. <auteur>Cosey</auteur>
  11. </livre>
  12. <livre genre="Info">
  13. <titre>Les réseaux</titre>
  14. <auteur>Pujolle</auteur>
  15. </livre>
  16. </livres>

Ce qui est affiché de cette manière par votre navigateur :

Le même document avec une DTD interne :

  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2. <!-- test2.xml //-->
  3. <!DOCTYPE livres [
  4. <!ELEMENT livres (livre+)>
  5. <!ELEMENT livre (titre,auteur)>
  6. <!ATTLIST livre genre CDATA #REQUIRED>
  7. <!ELEMENT titre (#PCDATA)>
  8. <!ELEMENT auteur (#PCDATA)>
  9. ]>
  10. <livres>
  11. <livre genre="Fantasy">
  12. <titre>Le seigneur des anneaux</titre>
  13. <auteur>Tolkien</auteur>
  14. </livre>
  15. <livre genre="BD">
  16. <titre>Voyage en Italie</titre>
  17. <auteur>Cosey</auteur>
  18. </livre>
  19. <livre genre="Info">
  20. <titre>Les réseaux</titre>
  21. <auteur>Pujolle</auteur>
  22. </livre>
  23. </livres>

English translation

You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.

If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.

Thank you in advance.

Document created the 07/11/2003, last modified the 02/08/2019
Source of the printed document:https://www.gaudry.be/en/xml-declaration.html

The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.