43 recommandations, 5 propositions en attente de publication, 11 drafts à valider, 79 documents de travail… Depuis le 10 février 1998, XML ne cesse de gagner du terrain dans sa conquête du système d’information. Analyse concrète de la situation.
On ne présente plus XML (eX-tensible Markup Language), digne héritier simplifié du célèbre SGML, langage de gestion de documents normalisé ISO depuis 1986. À partir d’une spécification de quelques dizaines de pages, XML se définit comme un langage textuel et balisé. En ce sens, il ressemble à HTML, mais se révèle bien plus structurant et ouvert que ce dernier (XHTML propose d’ailleurs une élégante reformulation de HTML 4 en XML). Il permet notamment de décrire des contenus structurés à l’aide de conventions et de règles strictes et d’une étonnante simplicité. La norme générale (XML 1.0), dont le premier draft est paru en juin 1996, spécifie les règles de construction d’un document XML syntaxiquement correct (bien formé) et les conditions de conformité du document (validité) par rapport à un modèle, une structure type (DTD ou schéma XSD). Ces règles sont immuables et communes à l’ensemble des déclinaisons du langage.
Description de données, de traitements, d’interfaces, etc.
Ces déclinaisons sont nombreuses et forment une véritable famille de technologies. L’utilisation de XML s’étend en effet à une multitude de contextes techniques et fonctionnels (métiers) pour lesquels des extensions spécifiques (essentiellement des jeux de balises prédéfinies) ont été entérinées par le W3C, l’organisme chargé de la normalisation du langage et de ses dérivés. Tout d’abord, XLink décrit comment ajouter des liens hypertextes à un document XML. Puis, XPointer et XFragments permettent de définir et de gérer des pointeurs entre fragments de documents. Le langage de définition de feuilles de style CSS, applicable à HTML, l’est aussi aux documents XML. Une version étendue et exclusivement XML est proposée avec XSL, lui-même dérivé de XSLT, puissant langage permettant de spécifier des règles de transformation, d’ajout ou de suppression de balises et d’attributs. Afin de faciliter l’utilisation du langage dans des domaines très variés, et pour éviter les risques de collision sémantique entre balises XML, la norme permet de créer des Namespaces. Il s’agit de collections de noms réservés (balises et attributs) associés à un identifiant unique. Grâce à cette technique, un document XML peut contenir des directives intéressant une application déterminée, qui reconnaît et interprète les balises préfixées du Namespace idoine. Mais ce même document peut contenir également des balises préfixées par d’autres Name-spaces, associés à d’autres applications. Dès lors, puisque XML permet d’encapsuler, à l’instar du modèle objet, des structures de données et des traitements applicatifs quelconques, rien ne s’oppose plus à sa généralisation au sein des diverses couches du système d’information.
Des fonctions de manipulation normalisées par le modèle DOM
Pour assister les développeurs dans le traitement de flux XML, le modèle DOM (Document Object Model) normalise un ensemble de fonctions de manipulation des documents XML depuis un langage de programmation : analyse de structures XML (parser), contrôle syntaxique, validation d’un document en regard d’une DTD ou d’un schéma, extraction de fragments, etc. SAX (Simple API for XML) propose également une API spécifique et simplifiée pour le langage Java. XPath permet, quant à lui, de naviguer au sein d’un flux XML représenté sous forme d’une structure arborescente où les n?”uds sont des balises. Pour la manipulation transactionnelle de données XML (au sein d’un SGBD), plusieurs propositions visant à définir un langage de requête portant sur le contenu des documents ont vu le jour : XQL, QXML, etc. Récemment, XMLQuery (proposition de recommandation du 7 juin 2001) tente à la fois de regrouper au sein d’une norme consistante les principales déclinaisons de dialectes de langages de requêtes et aussi d’étendre ces dialectes à la gestion de données, dont la structure peut être d’une complexité arbitraire.Par ailleurs, les SGBDR acceptent progressivement des types de données XML et une nouvelle génération de produits, nativement XML, a déjà vu le jour. Mentionnons également quelques dialectes spécialisés s’appuyant sur XML : MathML (destiné spécifiquement à la description d’objets mathématiques), SMIL (Synchronized Multimedia Integration Language, pour la mise en ?”uvre de présentations multimédias) ou SVG (Scalable Vector Graphics, langage graphique au format vectoriel).