Le langage XML

Définition

Le langage XML (pour eXtensible Markup Language) est un langage de balisage défini par le W3C et dérivé du SGML.

Le but premier de ce langage est de permettre le stockage et l'échange de données grâce à une syntaxe lisible à la fois par une machine pour un traitement automatisé, mais également par un être humain.

Comme son nom l'indique (langage de balisage extensible), le XML fonctionne avec un système de balises que l'on ouvre et ferme. Il est extensible dans le sens où il n'y a pas un nombre défini de balises pouvant être utilisées et le développeur peut créer à sa guise n'importe quelle balise. Ainsi, le langage XML peut servir de base pour créer d'autres langages de balisage : c'est le cas par exemple pour les langages XHTML ou RSS.

A ce jour (février 2012) il existe deux versions du langage XML : La version 1.0 du 10 février 1998 et la version 1.1 du 4 février 2003. Le W3C, qui écrit et promeut ces normes, recommande aux systèmes utilisant XML de reconnaître les deux versions. Cependant, la majorité des systèmes utilisent encore la version 1.0.




Format

Un fichier XML suit quelques règles très simple et les principes de fonctionnement du langage peuvent être compris très rapidement :

Concernant la syntaxe, XML fonctionne comme suit :

Ce qui nous donne finalement un fichier XML comme celui-ci :

On remarque donc que grâce à quelques règles simples et peu nombreuses, le format XML définie une structure précise qui permet de représenter les données sous forme d'arbre : il existe un noeud racine (sommet de l'arbre) qui possède un certain nombre d'enfants, qui eux-mêmes possèdent des enfants etc. C'est cette structure qui permet l'automatisation des traitements sur les fichiers XML.





Parsing

Les traitements automatisés des fichiers XML se font à l'aide de « parsers » XML. Un parser permet le découpage de fichiers en « tokens » et transmet l'information à l'application qui l'utilise. En d'autres mots, un programme traitant des fichiers XML utilisera un parser afin de récupérer les informations du document qui lui sont utiles. Ces parsers utilisent eux même des processeurs XML : il s'agit de programmes informatiques chargés de lire le document et de repérer où s'ouvre les balises, ce qu'elles contiennent etc...

Il existe principalement deux sortes de processeurs XML différents, aux fonctionnements radicalements différents :




Validation

Un fichier XML peut être « bien formé » : il respecte les règles syntaxiques de la norme XML vues plus haut. Il peut donc être lu par un processeur XML.

Mais un fichier XML peut être également « valide ». Cela signifie que le fichier respectes des règles définies dans un schéma de validation. Plusieurs langages permettent de définir un schéma de validation : DTD, XSD ou encore RelaxNG. Un développeur peut donc définir des règles précises à respecter : nombre d'éléments présents dans le fichier, présence de tel ou tel noeud fils pour tel noeud parent, valeur des attributs d'un élément etc. Le fichier XML ne sera valide que si il respecte l'ensemble des règles précisées dans le schéma de validation.

Ces schémas peuvent donc être utiles pour créer son propre langage dérivé du XML. On précise dans un fichier DTD par exemple les règles à respecter pour être conforme à la syntaxe de notre langage. Ainsi, il suffit de faire passer une validation à un fichier xml pour vérifier si celui-ci est syntaxiquement correct.




Conclusion

Pour conclure, ce rapide tour d'horizon sur le format XML nous montre que ce dernier possède de nombreux avantages qui expliquent sa popularité mais également quelques désavantages :

Avantages :

Utilisation :

Ces multiples avantages font du langage XML un excellent choix pour divers applications : les fichiers de configurations par exemple, car le format est éditable « à la main » par un humain et lisible directement par l'application. XML est aussi le format de prédilection pour des échanges d'informations entre système indépendants : inutile d'effectuer une quelconque conversion, le XML est portable et utilisable sur n'importe quel système possédant un processeur XML.

Néanmoins XML souffre également de quelques désavantages :

Il s'agit d'un format lourd : il est nécessaire de respecter la syntaxe XML (ouvrir/fermer les balises etc) ce qui implique parfois d'écrire des documents XML long pour finalement peu d'informations utiles. De même, XML n'est pas du tout optimisé pour la taille ou la performance.