XML - XSL Valid XHTML 1.1Cette page est conforme à la norme CSS!Mise à jour 06-2001
SOMMAIRE

Présentation
Les exemples détaillés
Les outils et liens
Télécharger les exemples
PRESENTATIONRetour en haut de page

Comparaison HTML - XML

XML peut être considéré comme le successeur de HTML.
Il descend du langage SGML qui est la base conceptuelle de tous ces langages. Mais il est cependant bien d'autres choses.

L'utilisation la plus immédiate en est la structuration des données.

Dans une page html, les données à afficher sont encadrées par des balises (<font>, <P>, ...).Lorsqu'on lit un fichier html, on ne distingue pas aisément les informations de balisage des informations réelles; en tout cas, on ne peut guère facilement isoler ces dernières.

XML apporte une solution en séparant les données (feuille XML) de leur présentation (feuille XSL).

Fonctionnement

La feuille XML est structurée par des balises définies par l'utilisateur; chaque balise ouvrante doit avoir sa balise fermante. On peut créer la hiérarchie de balises que l'on souhaite. Cette hiérarchie peut être contrôlée par un schéma de validation, qui définit les règles d'imbrication des balises.
Le langage est également strict sur la syntaxe (les valeurs d'attributs doivent être entre guillemets, ...) qui répond au standard XHTML..

La feuille XSL utilise le langage XSLT (XSL transform) et le langage XPATH pour décrire les transformations à effectuer dans l'arbre hiérarchique constitué.
On transforme ainsi une liste structurée XML en feuille HTML en insérant aux endroits voulus des balises HTML. Mais au lieu de transformer en HTML, on peut aussi bien créer un nouveau document XML.
La force de XML vient de ce que l'on peut appliquer à la même feuille XML une feuille de transformation différente, pour préparer les données sous forme de RTF par exemple.

Une feuille XSL fait bien plus qu'une feuille de style classique CSS qui n'opère que sur le format des données. Elle peut transformer les données, les recalculer, les regrouper, etc...

Etat de l'art

XML est en évolution constante. De nouvelles normalisations font évoluer ce standard sur chacun des points constitutifs (XSLT, XPATH, SCHEMA, autres domaines).

Il existe trois manières principales de développer en XML.
Utiliser les capacités du navigateur
Aujourd'hui seul IE5 a des capacités de traitement XML + XSL, car il comporte un interpréteur (parser) intégré.
Ce mode de travail convient bien à des problèmes simples, notamment lorsqu'on n'a pas besoin d'enchainer plusieurs transformations.

Travailler directement avec le modèle de document DOM
Cette solution est plus complexe mais permet de manipuler les feuilles XML à travers un objet DOM, accessible par différents langages (ASP, PHP, Java et autres ).
IE5 fournit un tel objet, mais d'autres outils également. Je traite ici uniquement de celui dIE5.
On peut dans ce cas de figure manipuler le document XML à travers une feuille XSL, mais également accéder en détail à n'importe quel objet de l'arbre, et remplacer ainsi le traitement par feuille XSL.
Le résultat fourni peut être en HTML, ce qui permet ainsi de l'afficher sur n'importe quel navigateur (compte tenu des différences entre navigateurs).

Ces deux méthodes fonctionnent à travers le navigateur. La suivante fonctionne "hors ligne" et permet de traiter par lots des transformations.

Travailler en ligne de commande avec un outils par lots
Dans ce cas, un programme en ligne de commande à lancer sous DOS transforme un fichier d'entrée (xml) par l'intermédiaire d'une feuille de travail (xsl) en fichier de sortie (html, xml, txt).
Le fichier résultant peut ensuite être traité de manière habituelle.

J'utilise dans cette configuration le pgm Sablotron décrit dans le chapitre Les outils et liens de cette page. Voir les liens pour plus d'information sur les possibilités de ce logiciel (il semble qu'il présente quelques restrictions par rapport au standard).

Bien que n'ayant pas exploré encore le traitement des schémas et la manipulation en détail du DOM, la satisfaction que l'on peut d'ores et déjà en tirer est importante, au vu de la structuration qu'elle implique et de la souplesse que l'on y gagne, comme vont le montrer les exemples suivants.

LES EXEMPLES DETAILLESRetour en haut de page
Les exemples utilisent les 3 techniques évoquées ci-dessus :
le répertoire utilise IE5 pour réaliser la transformation,
la gestion du portefeuille d'actions est réalisée en Sablotron (par lots), en ASP et en PHP (manipulation sommaire du DOM).

Gestion de répertoire téléphonique   Voir le résultat

Cette application affiche un répertoire téléphonique constitué d'un nom, n° de téléphone et un attribut nature le classant en professionnel, personnel ou urgences, en utilisant les fonctions suivantes :

  • Ajout de balises html et textes
  • Tri par ordre alphabétique
  • Mise en couleur selon la valeur d'un attribut
  • Comptage du nombre de postes

On voit dans cet exemple que la présentation est annexe aux données; il est possible de manipuler les données de deux manières différentes : dénombrer les entrées de répertoire grâce à leur structure ordonnée, les présenter correctement, toujours grâce à leur structure logique.

Il est bien sûr possible à partir de la même feuille xml d'exploiter différemment les données, que ce soit dans la présentation ou des fonctions plus élaborées.

Voir le résultat


Gestion d'un portefeuille d'actions   Voir le résultat

L'application présentée ici simule la gestion d'un portefeuille d'actions avec les fonctionnalités suivantes :

  • Liste des actions détenues
  • Comptage des actions par région
    Comptage du nombre d'actions par région et affichage par ordre alphabétique des régions de ces résultats
  • Liste avec totaux par région
    Affichage des actions par région, avec un total intermédiaire pour chaque région
  • Exportation en format texte
    Cette option ne produit pas de résultat visuel mais un fichier texte de longueur fixe que l'on peut exploiter avec Excel par exemple

La base est à chaque fois la même, et les différentes feuilles xsl permettent de réaliser les différentes fonctions.

Remarque : sauf la liste qui est simple, les autres fonctions nécessitent plusieurs transformations successives. Avec Sablotron, l'enchainement est réalisé par une procédure bat. Avec ASP et PHP, les résultats intermédiaires servent d'entrée à la transformation suivante.

Voir le résultat

LES OUTILS ET LIENSRetour en haut de page

MSXML

C'est le parser intégré à IE5, qui effectue la conversion via les feuilles xsl.
Actuellement en version 3

Sablotron

Ce programme est également un interpréteur, mais pour ligne de commande DOS. Il ne possède pas toutes les caractéristiques de MSXML mais permet des transformations au sein de procédures .bat

XMLNotepad

Cet éditeur permet d'éditer un fichier xml, en faisant apparaître sa structure hiérarchique.

Quelques sites sur le XML

http://xmlfr.org/listes/xml-tech   Forum consacré à XML
http://www.xmlfr.org/w3c/TR/xslt/   Documentation du langage de transformation XSLT
http://www.xmlfr.org/w3c/TR/xpath   Documentation du langage Xpath