On entend par " données structurées " des éléments tels que des
feuilles de calcul, des carnets d'adresses, des paramètres de configuration,
des transactions financières, des dessins techniques, etc. XML est un
ensemble de règles, de lignes directrices, de conventions (quel que soit le
nom que vous voulez leur donner) pour la conception de formats texte
permettant de structurer des données. XML facilite la réalisation de fichiers
qui ne soient pas ambigus, et qui évitent les pièges courants, tels que la
non-extensibilité, l'absence de prise en charge de
l'internationalisation/localisation et la dépendance par rapport à certaines
plates-formes. XML est conforme à Unicode.
Comme
HTML, XML utilise des balises (des mots encadrés par '<' et
'>') et des attributs (de la forme
nom="valeur"
).
Mais alors que HTML définit la signification de chaque balise et de chaque
attribut (et souvent la manière dont le texte qu'ils encadrent apparaîtra
dans un navigateur), XML utilise les balises seulement pour délimiter les
éléments de données et laisse l'entière interprétation des données à
l'application qui les lit. En d'autres termes, si vous voyez "<p>" dans
un fichier XML, ne supposez pas qu'il s'agit d'un paragraphe. Selon le
contexte, cela peut être un prix, un paramètre, une personne, un p...
(d'ailleurs, qui a dit qu'il devait s'agir d'un mot commençant par
"p" ?).
Les
programmes qui produisent de telles données les stockent souvent sur disque,
dans un format binaire ou un format texte. Ce dernier format vous permet, si
nécessaire, de consulter les données sans le programme qui les a produites.
Les fichiers XML sont des fichiers texte, mais ils sont encore moins destinés
à être lus par des individus que les fichiers HTML. Ce sont des fichiers
texte, car ils permettent à des experts (tels que les programmeurs) de
déboguer plus facilement des applications, et en cas d'urgence,
d'utiliser un simple éditeur de texte pour corriger un fichier XML endommagé.
Mais les règles des fichiers XML sont beaucoup plus strictes que celles des
fichiers HTML. Une balise oubliée ou un attribut sans guillemets rendent le
fichier inutilisable, alors qu'avec HTML, de telles pratiques sont souvent
explicitement permises, ou au moins tolérées. Les spécifications officielles
de XML indiquent que les applications ne sont pas autorisées à
essayer de deviner ce qu'a voulu faire le créateur d'un fichier XML
endommagé ; si le fichier est endommagé, une application doit s'arrêter
immédiatement et émettre une erreur.
Comme XML est un format texte et qu'il utilise des balises pour délimiter les
données, les fichiers XML sont presque toujours d'une taille plus importante
que les formats binaires équivalents. Il s'agit là d'une décision prise en
toute conscience par les développeurs de XML. Les avantages d'un format texte
sont évidents (voir le point 3 ci-dessus), et ses inconvénients peuvent
être généralement compensés à un autre niveau. L'espace disque n'est plus
aussi coûteux qu'auparavant, et les programmes tels que zip et gzip compressent très
bien et très rapidement les fichiers. De plus, les protocoles de
communication tels que les protocoles de modem et HTTP/1.1 (le protocole de base
du Web) peuvent compresser des données à la volée, ce qui économise de la
bande passante aussi efficacement qu'un format binaire.
Il
existe XML 1.0, la
spécification qui définit ce que sont les "balises" et les "attributs", mais
autour de cette spécification, un nombre de plus en plus important de modules
facultatifs fournissant des ensembles de balises et d'attributs ou des lignes
directrices pour des tâches particulières ont été définis. C'est, par
exemple, le cas de Xlink, qui décrit
une méthode standard pour ajouter des liens hypertextes à un fichier XML.
XPointer et XFragments sont
des syntaxes pour pointer sur des parties d'un document XML. Un XPointer
ressemble à un URL, mais au lieu de pointer sur des documents du Web, il
pointe sur des éléments de données au sein d'un fichier XML. CSS, le langage des feuilles de style,
s'applique à XML de la même façon qu'à HTML. XSL est le langage
évolué pour la définition de feuilles de style. Il est basé sur XSLT, un langage de transformation utilisé
pour réorganiser, ajouter ou supprimer des balises et des attributs. Le
DOM est un ensemble d'appels de
fonctions standard pour manipuler des fichiers XML (et HTML) à partir d'un
langage de programmation. Les Schémas XML
1 et 2 aident les
développeurs à définir précisément leurs propres formats basés sur XML.
Plusieurs autres modules et outils sont disponibles ou en cours de
développement. Consultez régulièrement la page des rapports
techniques du W3C.
Le
développement de XML a commencé en 1996, et XML est une norme du W3C depuis
février 1998, ce qui peut laisser supposer qu'il s'agit d'une technologie
plutôt immature. En fait, il ne s'agit pas d'une technologie très nouvelle.
Avant XML, il existait SGML, développé au début des années 80, devenu
norme ISO depuis 1986 et largement utilisé dans des projets de documentation
de taille importante. Et il existait bien sûr HTML, dont le développement a
commencé en 1990. Les concepteurs de XML ont simplement pris les meilleures
parties de SGML, profité de l'expérience de HTML, et produit une technologie
qui n'est pas moins puissante que SGML, mais infiniment plus régulière et
plus simple à utiliser. Certaines évolutions, cependant, peuvent être
assimilées à des révolutions... Il faut également savoir que SGML est
principalement utilisé pour des documentations techniques et beaucoup moins
pour d'autres types de données, alors que c'est exactement l'inverse avec
XML.
Une
application importante d'XML est le langage XHTML comme successeur de HTML.
On retrouve dans XHTML beaucoup d'éléments du langage HTML. La syntaxe a été
légèrement modifiée afin de se conformer aux règles d'XML. Plus généralement,
un document fondé sur XML hérite sa syntaxe d'XML modulo quelques exceptions
: par exemple, XHTML autorise la balise "<p>" mais pas "<r>". XML
ajoute aussi un sens à cette syntaxe : par exemple, XHTML dit que "<p>"
signifie "paragraphe" et non "prix" ou "personne" ou etc.
XML
permet de définir un nouveau format de document en associant et en
réutilisant d'autres formats. Cependant, deux formats développés
indépendamment peuvent avoir des éléments ou attributs de même nom. Il faut
alors être très attentif à ne pas confondre les noms : "<p>"
signifie-t-il "paragraphe" ou "personne" ? Pour éviter toute confusion lors
de l'association de noms identiques, XML fournit un mécanisme d'espaces de nom. XSL et RDF
sont de bons exemples de technologies fondées sur XML qui utilisent les
espaces de nom. XML Schema a été
conçu pour répercuter cette fonctionnalité modulaire pour la définition des
structures XML, puisqu'il est facile de combiner deux schémas pour en
produire un troisième qui sera associé au document fusionné.
RDF, la norme du W3C pour les métadonnées, est un texte au
format XML qui autorise la description de ressources et les applications
métadonnées, tels que recueils de musiques, albums photos, et bibliographies.
Par exemple, RDF pourrait vous laisser identifier des personnes dans un album
photo sur le Web en utilisant des informations puisées dans une liste de
contacts ; puis, votre messagerie pourrait automatiquement envoyer un message
prévenant les personnes que leurs photos sont sur le Web. Tout comme les
éléments HTML intégrés, comme les menus et formulaires, RDF intègre les
applications et les agents en un Web Sémantique. De la même manière que les
humains ont besoin de se mettre d'accord sur les mots qu'ils utilisent en
communicant entre eux, les machines ont aussi besoin de mécanismes pour
communiquer efficacement. Les descriptions formelles de terminologies dans un
domaine particulier (la grande distribution ou l'industrie, par exemple) sont
appelées ontologies, et sont une partie nécessaire du Web Sémantique. RDF,
ontologies, et la représentation des connaissances sont tous des sujets
décrits dans l'activité Web Sémantique.
En
choisissant XML pour un projet, vous bénéficiez d'un ensemble important et
sans cesse croissant d'outils (et il est possible que l'un d'eux remplisse
déjà la fonction dont vous avez besoin !) et d'ingénieurs expérimentés
dans cette technologie. Opter pour XML, c'est un peu comme choisir SQL pour
des bases de données : vous devez encore construire votre propre base de
données et vos propres programmes ou procédures qui la manipulent, mais un
grand nombre d'outils et d'individus peuvent vous y aider. Et comme XML est
libre de droits, vous pouvez vous en servir pour construire votre propre
logiciel sans avoir à payer quoi que ce soit à qui que ce soit. Sa prise en
charge est importante, et ne cesse de croître, ce qui signifie également que
vous n'êtes pas lié à un seul fournisseur. XML n'est pas toujours la
meilleure solution, mais il vaut toujours la peine d'être pris en
considération.
Copyright © 1994-2003 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.