Passer au contenu

XML : le langage d’échange universel ?

eXtensible Markup Language : langage extensible de balisage. Langage textuel, structuré par des balises (tags), indéfiniment extensible, spécifié par le W3C et héritier de SGML. Il sert de base à de nombreux langages appelés dialectes.

Véritable espéranto du système d’information de demain, XML est un métalangage décrivant la structure d’un document à l’aide de balises, indépendamment de sa présentation et de son contenu. Officiellement né le 10 février 1998, XML est cantonné dans un premier temps à la gestion documentaire et à l’échange de données sur le web. Mais son influence s’étend rapidement à l’ensemble du système d’information.

Utilisation : une déclinaison en plusieurs dialectes

Structurant et ouvert à la fois, XML s’est imposé comme langage universel, à la fois généraliste et spécialisé, présent au c?”ur de l’architecture informatique : clients exploitant de manière native des structures XML, serveurs d’applications, systèmes d’échange de données entre applications (EAI), services web, et naturellement systèmes de stockage et de manipulation de données. Car à la différence du langage HTML, XML est extensible et ses domaines potentiels d’utilisation illimités. Les nombreuses déclinaisons XML ont donc chacune leurs extensions liées à un contexte technique ou fonctionnel. Afin d’éviter les collisions sémantiques entre différents domaines, la norme générale (XML 1.0) s’appuie sur le concept d’espaces de noms. Ces namespaces sont des collections de mots réservés (balises et attributs) associés à un identifiant unique (une URI). Toutes les extensions horizontales (dialectes) de XML définissent un ou plusieurs espaces de noms, éventuellement complétés par des schémas XSD. Le W3C, organisme en charge du XML, propose de fait des recommandations associées à chaque contexte d’utilisation. XLink, par exemple, décrit la manière d’ajouter des liens hypertextes à un document XML. XPointer et XFragments gèrent des pointeurs entre fragments de documents dans le but de construire des structures arbitrairement complexes. Afin d’assister les développeurs dans le traitement de flux XML, le modèle DOM spécifie des fonctions de manipulation des documents XML depuis un langage de programmation : analyse de structures, contrôles syntaxiques, validation d’un document en regard d’une DTD (Document Type Definition) ou d’un schéma (XSD), etc. Le modèle SAX, lui, propose également une API de manipulation de flux XML, spécifiquement adaptée au langage Java. Mentionnons enfin quelques dialectes en vrac : MathML (description d’objets mathématiques), SMIL (mise en ?”uvre de présentations multimédias), ou encore SVG (langage graphique au format vectoriel).

Principe de fonctionnement : le périmètre de la spécification

Toutes les déclinaisons de XML obéissent néanmoins à des règles immuables. Ainsi, un document XML est systématiquement une structure arborescente, construite à partir d’une racine unique. Les n?”uds de l’arbre sont identifiés par des balises (tags) pouvant porter des attributs (facultatifs). Le nombre de n?”uds par niveau est illimité. La norme générale propose deux niveaux de puissance des documents, à mettre en ?”uvre dans les analyseurs de code (parsers). Un document peut tout d’abord être bien formé (well formed) s’il répond aux principes de construction syntaxique du langage. Un document bien formé sera déclaré valide s’il respecte de plus les conditions de conformité décrites dans un modèle de document appelé DTD. Les DTD dressent la liste des balises et des attributs valides au sein des documents ainsi que leurs logiques d’imbrication. Toutefois, les DTD ne sont pas écrites en XML et ne permettent pas de typer fortement les données contenues dans les documents. Les schémas XML (XSD) comblent ces lacunes. Le couple XML/XSD définit dès lors un langage universel et fortement typé de représentation des données, parfaitement compatible avec les modèles relationnels et objet.

Acteurs : pris en compte par tous les SGBD

Tous les environnements de développement intègrent désormais des outils de production d’applications exploitant XML : éditeurs de code, analyseurs de code, générateurs de DTD et de schémas à partir de structures de données ou de classes (Java, C++ ou C#), utilisation de XML pour décrire des métadonnées (WebDAV, RDF…). Du côté des éditeurs de SGBD, XML est également devenu incontournable. La majorité des produits du marché (DB2, Oracle, SQL Server…) sont aujourd’hui capables de générer des résultats de requêtes en XML. Pour la manipulation des documents XML au sein des bases de données, plusieurs propositions de langages de requêtes ont vu le jour : XQL, QXML et plus récemment, XMLQuery (recommandation du 7 juin 2001), proposition plus aboutie qui établit un pont entre le SQL et les langages de requêtes des SGBD objet. Pour le stockage de documents, certains SGBDR disposent d’un type de données spécifique (natif dans le cas d’Oracle) et offrent des fonctions de manipulation de données s’appuyant sur des implémentations plus ou moins complètes de XMLQuery. Quelques éditeurs spécialisés proposent des bases de données exclusivement XML (Tamino de Software AG) adaptées au développement d’applications front office complexes.

Avenir : services web, le nouveau défi

Désormais intégré au paysage informatique, XML ne souffre guère de concurrence. Pour l’utilisateur, le problème consiste surtout à suivre les évolutions de XML. Et elles sont nombreuses car XML, aujourd’hui, ce sont 44 recommandations, 6 propositions en attente de publication, 82 documents de travail… Les derniers développements autour de XML ? Les architectures distribuées à base de services web. Le langage XML-WSDL, par exemple, décrit la nature et les fonctions proposées par les composants applicatifs qui communiquent les uns avec les autres par des échanges de messages, eux-mêmes décrits à l’aide de schémas XML. Ces échanges sont véhiculés sur le réseau grâce au protocole Soap qui s’appuie également sur XML. UDDI définit un service d’annuaire facilitant la localisation distante d’un service web et les requêtes d’accès aux annuaires UDDI sont formulées en XML. WSUI permet de définir en XML l’interface utilisateur éventuellement associée à chaque service. Plusieurs propositions de description des logiques d’échanges contractuels entre services web s’affrontent encore : WSCL, XLANG, WSDL… Toutes sont des dialectes XML.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Laurent Maury