1.XML

1.1.C'est quoi XML ?

La norme XML (eXtensible Markup Language) décrit simplement comment construire un fichier texte permettant de stocker des informations en respectant une structure donnée. On parle alors de document XML.

1.2.XML ? Pour quoi faire?

Définir ainsi une structure globale de document a permis de créer des outils de rédaction ou de transformation de ces fichiers. Outils qui peuvent alors être utilisables quelque soit le domaine d'application.
La généralisation du XML permet, entre autres:
  • D'échanger des informations entre diverses applications (ex: SOAP).
  • De générer, à partir d'une seule source XML, des documents (HTML par exemple) ayant différents aspects selon l'utilisateur final (grâce aux transformations XSL).
  • etc.
Contrairement au HTML, le XML n'est pas (d'une manière générale) un format de présentation (comprendre d'affichage). Si on le souhaite un même fichier XML pourra servir à alimenter une base de données, donner des informations à un système de traitement, créer des documents sonores et si vous le voulez vraiment créer des pages HTML (dont le XHTML qui est une norme basée sur XML).

1.3.Un document XML? Ca ressemble à quoi?

Un document XML commence par un prologue puis est suivi d'un ensemble de balises.
Le prologue contient une première ligne qui commence par <?xml afin de préciser qu'il s'agit en effet d'un document XML. Cette ligne que l'on terminera par ?> permet également de préciser la version de XML utilisée (il n'y a guère que la 1.0 qui est utilisée) ainsi que l'encodage[C'est quoi?] utilisé (par défaut UTF-8). Le prologue peut également contenir d'autres informations comme le DOCTYPE mais nous y reviendrons.
Les balises sont délimitées par les caratères "inférieur" '<' et "supérieur" '>' (à la manière de ce que vous pouvez connaître avec l'HTML). Ces balises peuvent éventuellement contenir des attributs et/ou englober du texte libre.

1.4.Quel est le principe d'XML ?

En HTML, toutes les balises sont définies, elles sont recensées et on s'en sert comme bon nous semble (ex: <b>,<i>...). En XML il n'existe aucune balise prédéfinie, c'est à nous de les définir ainsi que les attributs. Généralement la norme XML ne suffit pas à elle même, elle doit être complétée par une norme propre à la fonction du document XML (i.e. du contexte dans lequel il sera utilisé):
Est-ce un document destiné à:
  • Stocker des actualités
  • Définir un annuaire
  • etc.
Tout ceci se fait sans avoir besoin de connaître, à l'avance, la façon dont les données vont être traitées. L'important c'est que les informations y soient et qu'elles soient accessibles aisément (i.e. isolées dans des balises ou attributs clairement identifiés).
<?xml version="1.0"?>
<annuaire>
    <personne>
        <nom>HAWKING</nom>
        <prenom>Stephen</prenom>
    </personne>
    <personne>
        <nom>REEVES</nom>
        <prenom>Hubert</prenom>
    </personne>
    <personne>
        <nom>EINSTEN</nom>
        <prenom>Albert</prenom>
    </personne>
</annuaire>

1.5.Les règles de construction d'un fichier XML

Puisqu'il s'agit d'une norme, il y a des règles à respecter lorsque l'on construit un document XML:
  • Le document doit (comme nous l'avons vu) commencer par une ligne déclarative <?xml
  • Le document doit être bien-formé
  • Le document doit être valide (si des règles de validation ont été définies)
Au delà de ces contraintes, le document peut (sans ce que ce soit une obligation):
  • inclure des directives (ex: préciser où trouver des règles de validation)
Nous allons voir dans les chapitres suivants comment cela se traduit.