XML - Une introduction au eXtensible Markup Language

Franck Chang

XML constitue un sujet très large, avec de nombreuses ramifications qui seraient susceptibles de donner matière à des Notes Techniques sur une année entière. Cette Note Technique constitue une simple introduction au monde XML. Les exemples qui y sont présentés sont suffisamment simples pour vous donner une idée de la manière dont XML peut jouer un rôle dans vos applications. ♪

- Titre : XML - Une introduction au eXtensible Markup Language

- Auteur : Franck Chang

- Parution : 1 mai 2004

- Licence : Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.

Sommaire

- Introduction

- Qu’est-ce que XML ?

- La grammaire XML

- Instructions de traitement (Processing Instructions PI)

- Les déclarations

- Les balises ou Tags

- Éléments

- Attributs

- Les objectifs de XML

- Quand faire appel à XML ?

- Stockage de données

- Échange de données

- XML versus HTML

- XML bien formé et XML valide

- DTD et Schéma

- Les feuilles de style CSS

- XSLT - XSL Transformations

- Conclusion

Introduction

Extensible-Markup Language (XML) est une recommandation du W3C (World Wide Web Consortium).

XML est un format texte simple, très flexible, dérivé du SGML (Standard Generalized Markup Language). Conçu à l’origine pour la publication électronique à grande échelle, XML joue un rôle de plus en plus important dans l’échange de données hétérogènes sur le Web et dans le développement d’applications.

En fait, depuis que l’ordinateur existe, les programmeurs se sont confrontés à la question de l’échange d’information entre différents programmes. SGML est justement le fruit d’une tentative précédente de combinaison d’un format d’échange universel de données avec des capacités de stockage d’information enrichie.

Malheureusement, SGML est un langage si compliqué qu’il ne convient pas pour l’échange de données sur le Web. HTML, dans toute sa gloire, n’a pas été conçu pour cela. HTML a seulement été prévu pour présenter des documents dans un navigateur ; les balises dont il dispose ne fournissent aucune information sur le contenu. XML a été créé pour remplir ce manque.

Constituant un sous-ensemble du SGML, XML hérite du côté standard et de la flexibilité qui permettent à toutes sortes d’applications de partager des données sans avoir à se préoccuper des restrictions propriétaires de certains formats. XML a les mêmes objectifs que SGML (structurer n’importe quel type de données), mais en éliminant une bonne partie de la complexité de celui-ci.

Qu’est-ce que XML ?

Il est important de comprendre que XML n’est pas vraiment un langage, comme le HTML ; il s’agit plutôt d’un standard pour créer des langages qui remplissent les critères XML. En d’autres termes, XML décrit une syntaxe que vous utilisez pour créer vos propres langages.

Voici les principales caractéristiques du XML :

- XML signifie Langage de Balisage eXtensible ;

- XML est un langage de marqueurs qui utilise des balises, comme HTML ;

- XML a été conçu pour décrire de l’information ;

- XML est un langage qui se décrit lui-même ;

- les marqueurs XML ne sont pas prédéfinis. Vous devez créer votre propre langage en définissant vos propres balises ;

- XML utilise une DTD (Document Type Definition), définition de type de document ou un schéma XML pour décrire le document ;

- un document XML accompagné de sa DTD ou de son schéma XML est autodescriptif ;

- XML fournit toute latitude pour concevoir vos propres balises XML.

L’un des objectifs principaux de XML est de faciliter l’écriture de logiciel accédant à l’information, en décrivant la structure des données. Le Web est un média idéal pour beaucoup d’applications et de solutions professionnelles, parce qu’il permet aux utilisateurs de partager documents et flux de travail avec presque n’importe qui. XML a été largement adopté pour les applications Web en raison de son « cousinage » avec HTML et de sa capacité à servir de contenant pour de multiples types de données et de structure de données.

Dans un environnement applicatif intégré, les applications métiers communiquent entre elles de manière transparente. XML permet à toutes ces applications de parler le même langage. Le temps et la productivité passés auparavant à traduire des formats de données et traiter les incompatibilités entre eux, peuvent maintenant être employés à la résolution de problèmes métiers. Une bonne utilisation de XML dans les applications n’oblige pas les utilisateurs à apprendre une nouvelle technologie. Ils peuvent utiliser XML dans les applications dont ils se servent quotidiennement.

Beaucoup de navigateurs récents supportent XML. Par exemple, Internet Explorer, version 5 et ultérieure, inclut une feuille de style par défaut et un parseur XML. Une feuille de style XML applique des fonctions de formatage à un document XML tandis qu’un parseur est capable d’analyser un document XML et d’en extraire l’information.

La grammaire XML

Instructions de traitement (Processing Instructions PI)

Les instructions de traitement sont des commandes qui s’adressent directement au programme traitant le code en lui fournissant des instructions sur le traitement à effectuer. Toutes les instructions commencent par une balise ouvrante suivie d’un point d’interrogation et se terminent par un point d’interrogation suivi d’une balise fermante. Le nom de l’application cible de l’instruction de traitement suit immédiatement la balise ouvrante, sans espace.

<?xml instructions ?>

Toute instruction de traitement commençant par « <?xml » ou contenant « xml » dans le nom de l’application est supposée être une instruction de traitement XML. Considérez « xml » comme un mot-clé réservé à l’usage des applications W3C.

Tout document XML doit disposer d’un prologue qui établit que le document est un document XML.

Par exemple :

<?xml version="1.0" encoding="ISO8859-1" standalone="yes"?>

Le prologue XML doit être la première chose figurant dans un document XML. Rien ne doit être placé avant, pas même une ligne blanche. La déclaration doit commencer au premier caractère de la première ligne. Le seul attribut requis dans le prologue est la déclaration de version qui indique la version de XML utilisée. S’il y a plus d’un seul attribut, ils doivent figurer dans un ordre précis.

Le second attribut est la déclaration de l’encodage. Il établit quel schéma d’encodage est utilisé pour le document.

Le troisième attribut définit si le document peut exister de manière autonome. Ceci indique si une DTD (Document Type Definition) est requise ou non pour l’analyse du document. La valeur par défaut est « yes ». « Yes » signifie que le document est autonome. « No » implique qu’une DTD est requise pour l’analyse.

Les déclarations

Les déclarations fournissent des informations spécifiant comment le document doit être traité. Par exemple, elles peuvent spécifier que chaque instance d’une certaine chaîne de caractères soit remplacée par une autre chaîne, ou indiquer ce qui est doit être considéré comme du contenu valide pour le document.

Chaque déclaration commence par une balise ouvrante et un point d’exclamation et se termine par une balise fermante. Immédiatement après la balise ouvrante suit le nom de l’élément que vous déclarez. Il ne doit pas y avoir d’espace avant celui-ci.

<!DOCTYPE Instructions>

Ces deux types de commandes, les instructions de traitement et les déclarations, proviennent directement du SGML, et sont des commandes système, pas des balises. Dans un document correctement écrit en XML, elles spécifient comment analyser le document. Elles ne constituent pas elles-mêmes du contenu à présenter lorsque le document est affiché.

Les balises ou Tags

Le balisage est un langage de commandes incluses dans le document ayant pour objectif de séparer et définir le contenu du document. Par exemple, il est possible de définir le nom d’une personne de la manière suivante :

Toutes les balises en XML possèdent une balise ouvrante et fermante. La balise fermante est identique à la balise ouvrante sauf qu’elle est précédée d’une barre oblique. Par exemple, la balise fermante pour <premier> serait </premier>. Approfondissons la structure de ces balises.

Éléments

Toute l’information depuis le début de la balise ouvrante jusqu’à la fin de la balise fermante se nomme l’élément. Le texte entre la balise ouvrante et la balise fermante s’appelle le contenu de l’élément ou la valeur de l’élément.

Ci-dessous un exemple d’élément :

<nom_element >valeur élément</nom_element>

Autre exemple :

<first titre="M." suffixe="Jr.">Bob</first>
<middle>Patrick</middle>
<last>Jones</last>

La première chaîne de cette balise donne le nom de l’élément « first », décrivant dans cet exemple de structure d’un nom américain le prénom de la personne.
La combinaison d’une balise XML et de son contenu donne un élément. La barre oblique indique la fin d’une balise. Si cette barre précède la chaîne first, cela indique que la balise refermée est la balise first.

Les éléments ne comportant ni contenu ni enfants sont dits vides. Ces éléments vides peuvent se représenter sous la forme simplifiée d’une balise ouvrante qui se termine par une barre oblique. Cela permet d’indiquer au parseur qu’il n’y aura pas de balise fermante. Dans la structure précédente si la personne n’a pas de « middle name », le deuxième élément de la structure, la balise middle peut se représenter de la manière suivante :

<middle/>

Attributs

L’attribut est un autre type d’information que vous rencontrerez fréquemment à l’intérieur d’une balise XML. Les attributs sont des valeurs spéciales qui peuvent être affectées à un élément. Les attributs procurent un moyen de spécifier de l’information complémentaire sur l’élément balisé. Ils se présentent sous la forme de paires nom-valeur.

Exemple :

<first titre="M." suffixe="Jr.">Bob</first>

Les règles d’utilisation des attributs en XML sont les suivantes :

- les attributs sont inclus dans la balise ouvrante de l’élément sous la forme d’une liste de paires nom/valeur séparées par des espaces ;

- l’ordre dans lequel les attributs apparaissent dans la balise n’est pas important ; cependant un attribut doit apparaître seulement une fois dans le même élément ;

- dans une paire, le nom et la valeur sont séparés par un signe égal ;

- toutes les valeurs doivent être entre guillemets. Il peut s’agir de guillemets simples ou doubles. À un guillemet ouvrant doit correspondre un guillemet fermant.

Les objectifs de XML

- Il doit être facile d’écrire des programmes qui traitent les documents XML.

- XML a été conçu pour que des documents de structure complexe puissent être utilisés au travers d’Internet.

- Les utilisateurs doivent pouvoir visualiser des documents XML aussi facilement et rapidement que des documents HTML.

- XML doit supporter une large gamme d’applications : création de contenu, navigation, analyse de contenu, etc.

- Un document XML doit être lisible par tous et conserver une relative clarté.

- Un document XML doit être facile à créer.

- La conception de XML doit être formelle et concise.

- XML doit permettre de véhiculer n’importe quel type d’information sous une forme structurée, adaptée à ns : notion de documents Web universels.

Quand faire appel à XML ?

XML est indépendant de la plateforme et du langage. Cela signifie que le type d’ordinateur utilisé n’a pas d’importance, par exemple 4D sur un système MacOS doit pouvoir communiquer avec une machine sous Linux exécutant une application Java. Dans toute circonstance où un programme a besoin de communiquer avec un autre programme, XML se pose en bon candidat pour le format d’échange de données.

XML s’emploie comme protocole de RPC (Remote Procedure Calls : Appel de Procédure Distante), lorsqu’un objet sur un ordinateur appelle un autre objet sur un ordinateur distant. La beauté de la chose consiste en ce que la seule connaissance requise par l’objet appelant le RPC est le format des données à envoyer et recevoir. Cette technologie couplée avec HTTP est ce que nous connaissons sous le nom de SOAP (Simple Object Access Protocol), voir la Note technique 4D-200401-01-FR « Introduction au Web Service ».

Nous allons présenter maintenant deux utilisations courantes de XML et des exemples pour chacune.

Stockage de données

XML peut être utilisé comme espace de stockage de données pour les applications. Des fichiers XML enregistrés sur le serveur peuvent servir de fichiers de propriétés, ou de stockage de données.

Un exemple se rencontre avec 4D WebSTAR V. La plupart des propriétés et des fichiers de préférences sont stockés dans des fichiers XML. Voici le fichier admin.users.xml qui conserve l’information sur les utilisateurs susceptibles de se connecter au serveur :

<?xml version="1.0"?>
<AdminServer>
<UserTable>
<User>
<Login>Jane</Login>
<Password>rWlfU651afuYH8lVmOJ+Zw==</Password>
<Type>User</Type>
</User>
<User>
<Login>Bob</Login>
<Password>WYMON84mHTGtDaDV0nDQ4Q==</Password>
<Type>User</Type>
</User>
<User>
<Login>frank</Login>
<Password>JiU8UHQfqpwuK4Nnc8af5g==</Password>
<Type>Administrator</Type>
</User>
</UserTable>
</AdminServer>

XML peut également stocker de l’information provenant de la base de données, y compris les tables et les enregistrements liés. Comme les données sont organisées sous forme hiérarchique, les relations sont faciles à distinguer. Les relations peuvent se représenter aussi bien en employant des attributs que des structures d’éléments parents/enfants.

Échange de données

XML procure l’énorme avantage de permettre à vos partenaires métiers d’interagir avec votre application ou votre site Web au travers de protocoles standardisés. De cette façon, les entreprises B2B (Business ToBusiness) et B2C (Business to Consumer) peuvent utiliser XML (et l’utilisent de plus en plus) pour structurer leurs échanges de données. La standardisation de la communication entre systèmes repose ainsi sur des échanges de messages structurés en XML.

Le protocole SOAP en constitue un parfait exemple. Les données au format XML sont envoyées et reçues entre deux systèmes hétérogènes et ne se connaissant pas. Par exemple, au travers de SOAP, Amazon.com offre maintenant aux développeurs la possibilité d’intégrer les fonctionnalités et le contenu d’Amazon.com directement dans leurs applications ou sites Web. Aujourd’hui, Amazon.com a déjà des milliers de revendeurs qui proposent leurs produits sur le site Web d’Amazon. À l’inverse, Amazon.com a également beaucoup de revendeurs qui vendent des produits d’Amazon sur leur propre site Web.

Autre exemple dans le domaine de l’immobilier, openMLS (http://www.openmls.org/) propose une liste de locations disponibles. C’est un candidat idéal pour XML. Une structure de stockage en XML présente beaucoup d’avantages dans ce métier. En utilisant ce format, les agences immobilières peuvent échanger de l’information, chercher et afficher des données de cette base.

Dans le métier d’agence de voyages, il est impératif de disposer de données instantanées concernant le vol, les réservations d’hôtel et la location de véhicule. Une communication efficace avec ces trois sources de données est cruciale. XML peut devenir un outil puissant, facilitant le transfert d’informations entre les différents protagonistes.

XML versus HTML

HTML est un langage très répandu, également dérivé du SGML. HTML utilise beaucoup de concepts du SGML pour fournir un langage de balisage universel afin d’afficher et de relier l’information pour une navigation hypertexte. XML n’est pas un remplaçant de HTML. HTML a été conçu pour afficher et formater les données et se concentre sur la manière dont celles-ci doivent apparaître à l’utilisateur. HTML est conçu pour une application spécifique : le navigateur. Son objectif est de véhiculer de l’information pour les personnes. XML a été conçu pour le stockage et la description des données. XML n’est pas spécifique à une application. Son objectif est de s’adapter à votre besoin. Il est courant de dire « ce que HTML fait pour l’affichage, XML est conçu pour le faire pour l’échange de données ».

En HTML, à la fois la sémantique et l’ensemble des balises sont figées. En XML, aucun des deux ne l’est. Avec XML, nous disposons de la flexibilité (d’où le terme extensible dans le nom) pour représenter nos données comme il convient aux besoins de nos applications. HTML, à l’inverse, n’est pas extensible, vous ne pouvez rien ajouter au langage. Vous devez utiliser les balises qui font partie de la spécification HTML.

La beauté de XML provient de sa capacité à créer un document structurant n’importe quelle information. Il est complètement flexible sur la manière dont nous structurons nos données. Supposons que nous désirions nous appuyer sur une structure particulière pour l’information que nous souhaitons représenter. Non seulement l’information sur les données est représentée, mais également la hiérarchie des éléments. La hiérarchie procure de l’information implicite sur la relation d’un élément avec un autre élément.

Voici un exemple de fichier HTML très simple :

<html>
<head><title>Name</title></head>
<body>
<p>Bob Patrick Jones</p>
</body>
</html>

Voici une interprétation des mêmes données en XML :

<name>
<first>Bob</first>
<middle>Patrick</middle>
<last>Jones</last>
</name>

Les deux fichiers contiennent la même information. Cependant, seul XML est capable de transporter cette information vers une autre application. En XML, l’information est précise, nous savons ce que représentent <first>, <middle> et <last>. Les données sont également structurées, <name> contient <first>, <middle> et <last>, exactement dans cet ordre.

Parce que HTML est conçu pour une application spécifique et dispose d’un jeu fini de balises (<table>, <br>, <h1>, etc.) nous pouvons supposer que n’importe quel navigateur pourra interpréter correctement un document HTML. En effet, il n’aura qu’à connaître et comprendre un jeu fini de balises. En XML, un parseur pourra extraire de l’information de ce document simplement parce qu’il s’agit d’un document XML. Personne ne pourra garantir qu’une application puisse comprendre ce que l’information signifie. Ce n’est pas parce que le parseur nous dit qu’il y a un extrait de données appelé <first> et que l’information qu’il contient est « John », que cela implique qu’un quelconque logiciel dans le monde saura ce qu’est un <first> ou à quoi ça sert. Cela veut juste dire que l’information est disponible pour l’application, à elle de savoir comment la traiter.

XML bien formé et XML valide

Un document XML bien formé respecte les règles syntaxiques décrites dans les spécifications XML 1.0. Un document bien formé respecte les critères minimaux pour que les processeurs XML puissent lire le document. Tous les documents réellement XML sont bien formés (autrement ce ne seraient pas des documents XML).

Pour être considéré comme bien formé, un document XML doit adhérer aux règles suivantes :

- à chaque balise ouvrante doit correspondre une balise fermante, à moins qu’il ne s’agisse d’une balise autofermante pour un élément vide. Par exemple, l’élément <name> contient trois autres éléments. Le deuxième élément est <middle>, la balise ouvrante est <middle>, la balise fermante </middle>. Si la personne n’a pas de middle name, alors nous utilisons une balise autofermante <middle/> ;

- à l’inverse du HTML, l’imbrication des balises n’est pas permise. Ceci ne serait pas considéré comme un document valide : <p>ceci <b><em>est</em></b> un texte</em></p>. Voici une version bien formée : <p>ceci <b><em>est</em></b><em> un texte</em></p> ;

- il ne peut exister qu’un et un seul élément racine dans un document XML. Tous les autres éléments sont soit ses enfants directs, soit ses descendants. Il doit exister un élément racine même s’il ne possède aucun contenu ;

- les noms d’éléments doivent respecter des conventions XML. Les noms doivent commencer par des caractères ou un soulignement (_), pas par un chiffre ou un signe de ponctuation ;

- après le premier caractère, les chiffres sont admis ;

- les noms ne peuvent pas contenir d’espace ;

- le caractère « : » est réservé (pour les espaces de noms) ;

- aucun nom ne peut commencer par « xml » ;

- XML est sensible à la casse. En HTML,<table> et <TABLE> sont identiques. En XML, ils sont différents ;

- XML maintient les « espaces » (on entend par là les caractères de mise en forme : espace, tabulation, retour chariot,…whitespaces en anglais) dans le texte. Au contraire de HTML, aucun filtrage n’est effectué.
(NDT Cela dépend en fait du parseur, un paramétrage de celui-ci permet parfois d’activer un filtrage des « espaces »).

Un document XML valide n’est pas la même chose qu’un document XML bien formé. Un document peut être bien formé sans être valide. Pour qu’un document bien formé soit valide, il doit respecter une DTD (Document Type Definition). Les commandes Analyser source XML et Analyser variable XML permettent au parseur de 4D de tenter de valider la structure XML du document par rapport à une DTD référencée par le document ou par un passage de paramètre :

Analyser source XML (document{; validation{; dtd}})

Tout document SGML requiert une DTD afin de pouvoir être interprété. En ce qui concerne le HTML, la DTD est contenue dans le navigateur. Un document XML peut également nécessiter une DTD, mais celle-ci, non obligatoire, peut varier d’un document à l’autre.

DTD et Schéma

Représentez-vous une DTD comme un modèle, une série de règles encadrant la création de votre document XML. La DTD définit quelles balises peuvent apparaître dans le document et de quelle façon ; ceci afin que les lecteurs du document XML puissent savoir à quoi correspondent l’ensemble des balises. Le rôle de la DTD est de décrire la structure d’un document XML. Une DTD peut se déclarer à l’intérieur d’un document ou de manière externe.

Note : lorsque le parseur lit le document XML, il lit d’abord la DTD, et vérifie ensuite le fichier pour s’assurer de sa conformité avec les règles énoncées dans la DTD.

De manière générale, un schéma est un ensemble d’information qui décrit la structure d’un autre ensemble d’information. Il s’agit d’un ensemble de règles ou d’une grammaire décrivant un type de structure de données. Un schéma XML identifie les contraintes sur le contenu d’un document XML, et décrit le vocabulaire (règles ou grammaire) que les documents XML le référençant doivent respecter pour être considérés comme valides. XML procure un moyen indépendant des applications pour partager des données. Des groupes indépendants peuvent s’entendre pour utiliser un schéma commun afin d’échanger des données. Votre application peut utiliser un schéma ou une DTD pour vérifier que ce que vous recevez du monde extérieur est valide. Vous pouvez également utiliser une DTD ou un schéma pour vérifier vos propres données.

Les feuilles de style CSS

Puisque HTML utilise des balises prédéfinies, le sens de ces balises est complètement connu : l’élément <br> définit un retour à la ligne et l’élément <h1> définit un entête ; le navigateur sait parfaitement comment les interpréter. Ajouter des styles aux éléments HTML à l’aide de CSS (Cascaded Style Sheets) est simple. Indiquer au navigateur d’afficher chaque élément dans une certaine police ou couleur est facile à faire et facile à comprendre pour le navigateur.

Pour ajouter une feuille de style à votre document XML, il vous suffit de référencer la feuille de style. Voici un exemple d’un fichier XML comprenant une référence à une feuille de style contenue dans le même répertoire :

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="helloworld.css" ?>
<root>
<title>My First XML Document</title>
<para>Hello to the wild and wooly world of electronic document encoding.</para>
<note>(Okay, so maybe it's not that wild, but it can get pretty wooly.)</note>
<!-- No simple "Hello World" here -->
<para>This page written by: <ital>(Jamras Komoncharoensiri)</ital></para>
<para>Copyright 2003 and beyond </para>
</root>

Voici le contenu de la feuille de style helloworld.css référencée par l’instruction de traitement en deuxième ligne du document XML :

title {
display: block;
text-align: center;
font-size: 3.0em;
font-weight: bold;
}

para {
display: block;
text-align: center;
font-size: 1.5em;
}

note {
display: block;
text-align: center;
font-size: 1.0em;
color: #660000;
background-color: #cccccc;
}

ital {
display: inline;
font-style: italic;
}

Tout comme en HTML, le navigateur applique la feuille de style CSS spécifiée par le document.

XSLT - XSL Transformations

Vous pouvez vous représenter XSL comme un langage qui permet de transformer du XML en XHTML par exemple, un langage qui peut filtrer et trier les données XML, un langage qui peut définir des parties dans le document XML, un langage qui peut formater les données XML en fonction de la valeur de ces données, un langage qui peut traduire les données XML pour différents périphériques : écran, papier ou voix. L’idée de base derrière XSL est de prendre un document XML et de le transformer en un document d’un autre type. Que ce type soit du XML ou non dépend de vos besoins, mais la structure du document produit peut être complètement différente de la structure du document d’origine.

XSLT est la partie la plus importante de XML. Elle s’emploie pour transformer un document XML en un autre document XML, ou un autre type de document comme XHTML (une évolution de HTML compatible avec les règles syntaxiques XML). XSLT peut également ajouter de nouveaux éléments ou retirer des éléments existants. Il peut réarranger ou trier les éléments et tester et prendre des décisions afin d’afficher ou non les éléments… XSLT est vraiment puissant.

Il est important de noter qu’une feuille de style XSL est elle-même un document XSL. La syntaxe qui permet de déclarer que le document est une feuille de style XSL utilise comme élément racine <xsl :stylesheet> ou <xsl :transform>.

Voici un exemple de déclaration en accord avec la recommandation XSL du W3C :

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

ou :

<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Prenons comme exemple le document « name.xml » introduit dans la section sur les balises. Nous voulons le transformer en fichier XHTML.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="names.xsl"?>
<people>
<name title="Mr." suffix="Jr.">
<first>Bob</first>
<middle>Patrick</middle>
<last>Jones</last>
</name>
<name title="Ms">
<first>Jane</first>
<middle / >
<last>Doe</last>
</name>
<name title="Mr">
<first>George</first>
<middle>Herbert Walker</middle>
<last>Bush</last>
</name>
</people>

La deuxième ligne de ce document XML ci-dessus contient un lien vers notre feuille de style « names.xsl » dont voici le contenu :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">

<html>
<body>
<center>
<h2>Names</h2>
<table border="1">
<tr bgcolor="#DC143C">
<th align="left">First</th>
<th align="left">Middle</th>
<th align="left">Last</th>
</tr>
<xsl:for-each select="people/name">
<tr>
<td><xsl:value-of select="first"/></td>
<td><xsl:value-of select="middle"/></td>
<td><xsl:value-of select="last"/></td>
</tr>
</xsl:for-each>
</table>
</center>
</body>
</html>

</xsl:template>
</xsl:stylesheet>

Voici le résultat de la transformation affichée dans un navigateur :

Conclusion

XML constitue un sujet très large, avec de nombreuses ramifications qui seraient susceptibles de donner matière à des Notes Techniques sur une année entière. Cette Note Technique constitue une simple introduction au monde XML. Les exemples qui y sont présentés sont suffisamment simples pour vous donner une idée de la manière dont XML peut jouer un rôle dans vos applications.

Après ce démarrage dans l’étude de XML, il peut être utile de consulter l’un des nombreux ouvrages disponibles sur XML. Faites simplement attention de vous procurer un livre récent, ce domaine étant en perpétuelle évolution. Vous trouverez d’excellents ouvrages de référence chez O’Reilly :

http://www.oreilly.com

Quelques glossaires en français se trouvent sur le NET, une recherche Google rapide vous permettra de les trouver :

http://www.educnet.education.fr/dossier/xml/glossaire.htm

http://wwwlisc.clermont.cemagref.fr/

http://www.la-grange.net/w3c/fr-trans1/#glossaire

En voici un autre en anglais :

http://www.improve-technologies.com