site de Fabien Torre


Cours d'introduction à XML

Le minimum à savoir sur XML : intérêts, notion de document bien formé, technologies liées, etc.

Généralités

XML n'est pas un langage à proprement parler comme peut l'être HTML : XML est une famille de langages ayant en commun le respect de certaines règles. Nous allons voir que là où HTML est simple, bien défini et non contraignant à la fois, XML est extensible et rigoureux.

En pratique, un fichier XML est un simple fichier texte, contenant des balises. La particularité de XML est qu'aucune balise n'est prédéfinie : c'est au concepteur de définir les balises qui ont du sens pour lui.

Ces éléments permettent d'ores et déjà de dégager les intérêts de XML :

  • Les documents sont faciles à compléter ou à modifier, il suffit d'un simple éditeur de texte parce qu'il s'agit de fichiers texte avec un format connu et simple ;
  • l'aspect textuel autorise également des recherches de base, soit à travers l'éditeur de texte, soit à l'aide des commandes de base du système d'exploitation (grep sous Linux) ;
  • comme il s'agit d'un format ouvert, des outils génériques sont disponibles et directement utilisable, du parser (lecture et chargement du fichier en mémoire) à la transformation automatique avec XSLT ;
  • l'utilisateur peut différencier le fond de la forme, ne travailler que sur la structure logique du document sans se soucier de sa présentation ; cela car XML est clairement avant tout une solution de stockage et pas de publication.

Sur l'aspect stockage et recherche, le langage XML semble s'opposer aux bases de données. On l'a vu XML permet la saisie et les modifications sans autre logiciel qu'un traitement de texte. Même une modification du schéma est facile à gérer en XML, au moins sur un unique document XML. De plus, XML ne nécessite pas dans un premier temps l'apprentissage d'un langage comme SQL. Cependant, l'efficacité des recherches reste l'avantage des bases de données.

XML est donc un standard ouvert et universel. On le trouve aujourd'hui dans les domaines les plus variés :

  • édition (description d'ouvrage avec DocBook),
  • graphisme (format SVG),
  • mathématiques (formules avec MathML),
  • chimie (CML permet la description de molécules en 3D),
  • musique (partition musicale avec MusicML),
  • etc.

Un document XML en pratique

On a dit qu'un document XML était essentiellement du texte. Au milieu de ce texte, on va pouvoir trouver des éléments (ou balises), des attributs associés aux éléments et enfin des entités.

Les règles que doit suivre un document XML sont les suivantes (si toutes ces contraintes sont respectées, le document XML est dit bien formé) :

  • la première ligne doit être de la forme <?xml version="1.0" encoding="iso-8859-1" ?> ; les deux attributs spécifient la version de XML utilisée (1.0 ou 1.1) et le codage des caractères (utf-8 par défaut) ;
  • les balises sont repérées par les caractères < et >, on écrira par exemple <balise>contenu</balise> ; la balise ouvrante peut contenir des attributs ;
  • toujours donner une valeur aux attributs, en suivant la syntaxe <balise attr="val"> (les guillemets sont obligatoires, les attributs ne sont pas répétés dans la balise fermante) ;
  • les entités sont systématiquement de la forme &nom; ;
  • fermer toutes les balises ouvertes ; une balise sans contenu pourra être ouverte et immédiatement fermée en faisant suivre son nom d'un slash, par exemple avec la balise br (passage à la ligne en HTML) : <br /> ;
  • veiller à l'ordre de fermeture des balises : la première ouverte est toujours la dernière fermée ;
  • respecter la casse : on peut utiliser majuscules et minuscules dans les noms de balises mais une fois qu'un nom d'élément a été fixé, il faut s'y tenir, la balise <cv> ne pourra être fermée ni par </Cv> ni par </CV> ;
  • ne pas utiliser de caractères réservés à XML dans le texte du document : <, > et & ; ces caractères pourront être respectivement obtenues à l'aide des entités &lt;, &gt; et &amp; ;
  • les noms de balises et d'attributs doivent être des noms XML :
    • le premier caractère est une lettre quelconque ou un _ (underscore ou tiret bas) ;
    • les caractères suivants peuvent être des lettres, des chiffres, des tirets bas (_), des traits d'union (-) ou des points (.) ;
    • il n'y a pas de limitation sur la longueur d'un nom XML.

à noter que cette dernière règle interdit à un nom de balise de commencer par un chiffre. Cependant, la liberté pour choisir un nom d'élément reste grande car on peut y faire figurer n'importe quelle lettre... or, le codage privilégié dans les documents et applications XML est l'UTF-8 qui contient les alphabets latin, arabe, japonais, etc. Plus spécifiquement, on n'hésitera pas à utiliser des lettres accentuées dans les noms d'éléments.

Finalement, voici un exemple de document XML bien formé :

<?xml version="1.0" encoding="iso-8859-1" ?>
<!-- commentaire : voici mon curriculum vitae -->
<cv>
<!-- commentaire : état civil -->
<identité naissance="1980">
<nom>Moustique</nom>
<prénom>Jules</prénom>
<prénom>Édouard</prénom>
<nationalité>grolandaise</nationalité>
</identité>
<!-- commentaire : mes diplômes maintenant -->
<diplome année="2005" intitulé="Master ID" mention="TB" />
<diplome année="2003" intitulé="Licence " mention="AB" />
</cv>

Technologies liées

La simplicité et l'ouverture de XML fait qu'un document XML peut facilement être modifier par un être humain, sans outil spécifique.

La rigueur de XML (sensibilité à la casse, guillemets obligatoires pour encadrer les valeurs des attributs, fermeture systématique des balises, etc.) autorise des traitements automatiques, qui pourront être partagés par tous les langages XML.

  • contraindre un langage XML : DTD, Schémas, Relax NG ;
  • mise en page avec CSS

    <?xml-stylesheet href="livres.css" type="text/css">
    en particulier utilisation de la propriété display (block ou inline) ;
  • interrogration, requêtes sur un document XML avec XPath ou XQuery ;
  • transformation de documents avec XSLT ;
  • mise en page avec XSL-FO (Formatting Objects) et un programme comme FOP).

Fabien Torre Valid HTML5! Valid CSS!
Accueil > Enseignement > Cours > Documents numériques > XML > Introduction
(contenu mis à jour )
site de Fabien Torre, université de Lille

Description

Survoler un lien de navigation pour lire sa description ici...