XML - eXtensible Markup Language

Format universel de documents textuels et graphiques

Qu'est ce que XML et pourquoi l'utiliser?

XML est un format fondé sur des balises comme HTML, mais il décrit le contenu plutôt que la présentation du contenu.
Les balises peuvent avoir aussi des attributs, et cela fait penser aux langages de programmation à objets. En fait XML peut être utilisé pour "sérializer" (stocker) des classes de langages de programmation.

Le langage de balisage XML et ses descendants

XML tend à se généraliser comme format de document, c'est dorénavant le format de fichiers de Office et LibreOffice.
Comme son nom l'indique, XML est extensible et il sert de base à de nombreux langages descriptifs comme on le verra plus loin.
La première recommandation par le W3C, XML 1.0 date du 16 août 2006 mais son histoire remonte à 1996 comme l'indique l'historique du W3C.

Avantages de XML

Tout type de données peut être décrit par XML pourvu que l'on fournisse une grammaire de la structure (donc des balises).
Sa structure arborescente et extensible permet de décrire n'importe quoi. Il est ainsi facile à parser par les logiciels tout en étant lisible par les humains.
Son universalité permet de l'utiliser dans tout contexte, sur tout système.
Puisque les balises décrivent les données brutes, il est facile d'y faire des recherches.

Définir la grammaire

Avant d'écrire un document XML, il est préférable d'écrire une DTD (Document Type Declaration). La DTD déclare une grammaire de balises et le document XML est une instance de cette grammaire comme un objet est une instance de classe, ou comme un programme pour un langage.
Le DTD peut être inclus dans le document XML , ou lié par une URL (adresse web).
Sans ce DTD, le document XML peut être utilisé, mais non validé, donc on ignore s'il comporte des erreurs quand aux valeurs contenues. On peut néammoins vérifier qu'il soit bien formé (balises complètes) avec le parseur.
On valide les balises d'un document XML avec un DCD ou un schema.

  1. DCD  (Document Content Description for XML) est un langage qui aide à construire un schéma en remplaçant les fonctions de DTD pour décrire les contraintes sur les balises et le contenu des documents. En outre il peut aussi décrire des types de données et les relations de bases de données.
    DCD incorpore un sous-ensemble de XML-Data, et est un vocabulaire RDF.
  2. Un schema, comme une dtd, décrit la grammaire des balises pour valider le document.
    Alors que le DTD à sa propre syntaxe, le schéma a la même syntaxe que XML, un autre avantage est qu'il permet s'ajouter aux types prédéfinis, de nouveau types de données.

Format valide pour un document XML

Un document XML à la forme suivante:

<?xml version="1.0" encoding="utf-8" ?>
<xml>
   <balise attribut="valeur" attribut="valeur.."
       ... contenu éventuel
   </balise>
</xml>  

Le fichier commence par un descripteur. Celui-ci est facultatif, mais cela dépend des outils, ils peuvent requérir ces informations de version et d'encodage.

Une balise racine englobe toutes les autres. On l'a appelée ici <xml>, mais ce n'est qu'un exemple. Tout autre nom est possible.
La balise racine peut englober d'autres balises qui chacune peut soit englober d'autres balises, soit contenir un texte. Chacune peut avoir des attributs sous la forme nom = "valeur".

Si une balise n'a pas de contenu, on peut l'écrire sous forme courte sans reprendre la nom en fermeture:

<balise attribut="valeur" /> 

Beaucoup d'autres formalismes peuvent s'ajouter à cette structure de base, mais celle-ci est suffisante pour la plupart des documents.

Comment utiliser XML

Pour utiliser un document XML, vous avez besoin d'un parseur qui reconnait la syntaxe et charge le document en mémoire.
Il existe deux sortes de parseurs.
- Dans le premier cas, le document est transformé en une arborescence en mémoire, dont le contenu est accessible selon les méthodes du DOM (Document Object Model).
- Il est également possible d'associer des fonctions à des balises avec les parseurs événementiels de type "sax".
Les parseurs les plus connus sont indiqués en ressources.

 XML, comme HTML a ses feuilles de style, nommées XSL (XML StyleSheet), qui fournissent des règles pour transformer un document XML dans un autre format XML ou non XML (XHTML par exemple).

Des outils ont été standardisés (par le W3C) pour accéder au contenu des documents XML:

Applications au-delà du stockage des données

La puissance de XML va au-dela du simple stockage de données, il sert aussi de langage d'interface d'application:

On peut rendre le XML exécutable par insertion de balises qui sont reconnues comme des instructions par un parser spécialisé.

Extensions pour XML et langages dérivés

XSL  (eXtensible Stylesheet Language)
 Un xsl est un ensemble de règles de transformation, permettant de prendre en compte la structure et des éléments et attributs choisis dans un document.
Un ensemble de règles qui transforme un document XML en HTML est le meilleur exemple, mais on peut transformer XML en toute chose.
La différence entre XSL et XSLT est que xsl est universel tandis que xslt convertit un document XML uniquement en un autre document XML.

SVG (Scalable Vector Graphics)
 Une librairie qui décrit des objets graphiques, qui peut être interfacée dynamiquement avec JavaScript pour faire des animations. Un document svg peut être affiché comme une page web avec les versions les plus récentes des navigateurs (Firefox 1.5 par exemple), avec une extension autrement.

SMIL (Synchronized Multimedia Integration Language)
Langage descriptif multimédia combinant des données de formes diverses, permettant des présentations et des animations.

XQuery. (XML Query)
 Spécification pour utiliser des documents XML comme des bases de données.

XHTML (XML HTML 4.0)
Réécriture de HTML selon les règles XML, avec un DTD associé.

XForms (XML Forms)
Définition de formulaires.

RDF (Ressource Definition Format)
Standard de description de données hétérogène, incluant des images. Cela ajoute une description structurelle grobale à la description des éléments.

RSS
C'est un ensemble de formats de syndication, RSS 1.0 étant écrit en RDF, et RSS 2.0 en XML ainsi qu'Atom.

Schéma
Format standard pour valider les documents XML.

Outils et références

Parseurs XML

Autres outils

Plus d' infos sur XML

© 2006-2018 Xul.fr