Avant dentrer dans le détail et dans la série dacronymes qui est typique de linformatique, je vais essayer de vulgariser le mieux possible ce que permet cette technologie par une analogie.
Prenons lindustrie de lédition par exemple, il y a différentes façons de publier des documents et notamment en utilisant limprimerie pour créer des documents papiers ou en utilisant des outils informatiques pour créer des documents électroniques. Si on désire publier en format papier, on représentera le contenu dinformation à publier dans une forme qui est le plus approprié pour un imprimeur ; et si on désire publier en format électronique, on représentera le contenu dinformation qui est le plus approprié pour ce médium. Même si le contenu dinformation est identique pour les deux médiums, on le représente différemment. Si on voulait fournir le même contenu dinformation pour un autre médium, on ladapterait probablement en conséquence. Ces représentations de contenu dinformation ne sont donc pas interchangeables dun médium à lautre, car elles ont été adaptées pour un besoin spécifique.
XML permet de résoudre ce genre de problème, à laide de son langage et de sa syntaxe, il offre la possibilité de décrire de linformation structurée indépendamment du médium de diffusion. Dans le jargon XML on appelle ça " write once, publish many ", cela va sans doute rappeler à plusieurs le fameux " write once, run anywhere " du langage Java.
Les origines de XML (et du HTML) remontent à 1960 avec les travaux de trois chercheurs dIBM qui devaient trouver une solution pour traiter des milliers de documents légaux créés sur différents systèmes dont chacun utilisait un format propriétaire.
Les trois chercheurs créèrent GML (Generalized Markup Language), un langage permettant de décrire un format de document. Le GML évolua et en 1968 un groupe de développeurs internationaux adoptèrent le SGML (Standard Generalized Markup Language) quISO approuva en 1986.
Le SGML offrait cependant beaucoup trop de liberté au goût de certains, cétait en quelque sorte un langage permettant de créer dautres langages. Berners-Lee, linventeur du Web, désirait une façon simple de présenter ses documents sur le Web et il créa le HTML (HyperText Markup Language), qui est donc un sous-ensemble très limité et non extensible du SGML.
La force du HTML est la présentation visuelle dinformations, il na aucune manière de structurer les données contenu dans linformation. Vers 1996, le World Wide Web Consortium (communément appelé le W3C), initia le développement dun langage de structuration des données : XML (eXtended Markup Language), qui se veut une version légère du SGML mieux adapté au Web. Le standard XML fût adopté officiellement en 1998.
Dabord XML ne doit pas être confondu avec le HTML et ce nen est pas une extension. En fait XML et HTML sont des sous-ensembles distincts du SGML, ils ont été définis à partir du SGML. Le HTML est utilisé pour la présentation visuelle dinformations alors que XML est un langage permettant de structurer des données et ne permet pas dindiquer comment sera présenté linformation. Ce nest pas un langage de programmation, comme le COBOL ou le C, il ne peut rien faire " seul ", il ne " sexécute " pas, il doit être utilisé avec des outils ou des applications qui sen servent. Le XML a été conçu et optimisé pour la transmission de données par le Web.
Le XML est donc un langage permettant dinclure des données structurées dans un fichier texte. Cest un ensemble de règles, directives, conventions, etc. permettant de produire des textes de données qui sont faciles à générer et à lire par des programmes informatiques. Ces textes ainsi produits sont non ambigus, ils sont extensibles et peuvent être adaptés à différentes langues et cultures (localisation). Tout comme le HTML, il utilise le principe détiquette (tag) pour délimiter les données. Par contre, contrairement au HTML, il est extensible car il ne possède pas un jeu fixe de balises (markup), cest le développeur qui créer ses propres balises en utilisant le langage XML.
Même si les fichiers XML sont des fichiers textes, ils ne sont pas destinés à être manipulés directement avec un simple éditeur de texte (même si cela est possible). Ils sont destinés à être manipulés avec des outils dédiés, car la syntaxe du XML est très rigide (contrairement à celle du HTML) et une simple étiquette (tag) ou attribut oublié rend le fichier inutilisable.
Le XML permet, par exemple, à des organisations de créer leur propre vocabulaire afin déchanger facilement et sans ambiguïté de linformation dans leur domaine respectif : chimie, finance, assurance, électronique, mathématique, etc. De plus en plus de vocabulaires XML sont développés pour solutionner différents problèmes daffaires. Le site www.xml.org répertorie plusieurs de ces vocabulaires. Le XML favorise ainsi la réutilisation.
À long terme, il pourrait également permettre de désengorger les communications Internet en éliminant les communications superflues, comment ? En donnant plus de travail à faire du côté du client par rapport au serveur Web. Pour mieux saisir cet aspect, imaginez que vous êtes sur un site permettant de réserver des billets davion et que vous demandez tous les vols de Montréal à Toronto pour une semaine en particulier. Vous recevrez probablement une partie dune longue liste de vols dans laquelle vous devrez naviguer en utilisant des boutons du style " suivant " et " précédent ". Chaque fois que vous appuyez sur un bouton pour voir une autre partie de la longue liste, vous envoyez une requête au serveur Web qui doit la traiter et vous retournez une autre partie de la liste de vols. Si par contre, cette longue liste de vols avait été envoyée au complet en XML, un petit programme Java qui tourne sur lordinateur client aurait très bien pu permettre la navigation dans cette liste et même permettre deffectuer des recherches dans la liste.
- <?xml version="1.0" standalone="yes"?>
- <conversation>
- <salutation>Allo la terre!</salutation>
- <réponse>Cessez de la faire tourner, je veux descendre!</réponse>
- </conversation>
Microsoft Internet Explorer 5 supporte XML (en partie), créez un fichier texte contenant lexemple précédent (en utilisant laccessoire Bloc-Notes de Windows 95, par exemple) et nommez-le test.xml, ensuite ouvrez ce fichier texte avec le navigateur et vous verrez comment Explorer 5 vous présente les données (vous pouvez aussi double cliquer sur le document si vous avez utilisé lextension .xml dans le nom de votre fichier).
XML est un langage sensible aux majuscule/minuscule, si dans notre exemple précédent nous avions : <greeting>Hello, world!</GREETING>, ce serait une erreur de syntaxe.
Il existe deux types de fichiers XML : Well formed et Valid. Le premier type désigne un fichier XML qui se conforme aux règles de base du langage XML, le second type désigne un fichier XML qui se conforme aux règles de base et qui a été validé avec un DTD ou un XML Schema (dans lesquels on inscrits les contraintes du vocabulaire).
Autour du standard XML gravitent plusieurs autres standards qui répondent à des besoins précis ou des tâches spécifiques :
Il est à noter que certains de ces standards nont pas encore atteint le statut de " recommandation " (approbation) du W3C.
XML est un standard tout nouveau (adopté en 1998 par le W3C) mais sappuie sur un standard solide (SGML) dont les origines remontent à 1960. Des nouveaux outils permettant dutiliser et gérer les fichiers XML continuent dapparaître à un rythme impressionnant et ce momentum est suivi par plusieurs industries qui ont créé et adopté des vocabulaires XML qui sont propres à leur domaine.
Le HTML nous a permis (et nous permettra encore) de présenter élégamment des informations sur le Web, cest dailleurs le langage de publication électronique qui a connu le plus de succès. Il est maintenant temps de sattarder à ce que signifie un élément de donnée plutôt quindiquer seulement comment afficher cet élément de données, et cest justement ce que XML permet de faire.