Publication de XML : XSL
XPath, XLink, XForms
1. Introduction
2. XPATH
3. XSLT
4. XSLFO
5. XLink et RDF
6. XForms
7. Conclusion
02/01/23 1
1. Introduction à XSL
Un document XML publiable :
– Le document XML lui-même
– la DTD ou le schéma pour décrire les balises
– CSS ou XSL pour adapter le format aux besoins
XSL = eXtended Style Langage
XSL est par exemple utilisé pour convertir les données
en HTML pour l’affichage
XSL est un véritable langage de programmation par
règles
2
XSL
Publications avec XSL
Plusieurs formats de publication d’un même jeu de données
Format ( PDF)
XML Browser Netscape/IE
Document (XHTML, DHTML, HTML)
XSL
Processor
Format (XML)
pour Word,
Excel
XSL
Stylesheet
Format (XML)
application
Il permet la présentation sur des terminaux variés [Link]
format
(WML)
3
XSL
Architectures
HTML
XML
ASP Affichage
S ou
Programme E JSP
XML R Processeur HTML
V XSL
Fichier E Affichage
U
XML XML
R
Processeur
Base de données XSL •Affichage
•Traitement
4
XSL
Principe de fonctionnement
Document XML Document XML Formatage Impression
Transformation Processeur
Processeur XSL-FO
XSLT
Publication
HTML/WML
en ligne
Feuille
de style XML Applications
XSL
5
XSL
Les outils XSL
Au départ, il y avait quelques processeurs XSLT
conformes à la spécification:
– Apache Group ([Link]): Xalan 1.0.1 (ex-LotusXSL
d’IBM)
– Oracle XDK ([Link]): XML Parser 2.0.2
– James Clark ([Link]): XT (quasiment conforme)
Tous les navigateurs WEB récents embarquent un
processeurs XSLT
6
XSL
XSLT
Permet de transformer un document
– régulier ou irrégulier
– de XML à XML
– XHTML est un cas particulier
Un document est un arbre comportant :
– Une racine
– Des éléments
– Du texte
– Des attributs
– Des espaces de noms
– Des instructions de traitement
– Des commentaires
Un autre arbre de même nature est produit en sortie
7
XSLT
Les feuilles de style
Une feuille de style XSL
– est un document XML de racine <xsl:stylesheet>
– contient une liste de règles de transformation <xsl:template>
Chaque règle (<xsl:template>) est définie par:
– Une condition spécifiant le sous-arbre du document d’entrée auquel elle
s’applique
– Une production spécifiant le résultat de l’application de la règle
Utilisation d'un nom de domaine spécifique
– Toutes les instructions XSL sont des éléments du namespace
"[Link]
– Le préfixe généralement utilisé est xsl
8
XSLT
Exemple de document
<?xml version="1.0" ?>
<Guide>
<Restaurant Categorie="**">
<Nom>Le Romantique</Nom>
<Adresse>
<Ville>Cabourg</Ville>
<Dept>Calvados</Dept>
</Adresse>
</Restaurant>
<Restaurant Categorie="***">
<Nom>Les TroisGros</Nom>
<Adresse>
<Ville>Roanne</Ville>
<Dept>Loire</Dept>
</Adresse>
</Restaurant>
</Guide>
9
XSLT
Exemple de feuille de style XSL
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="[Link]
<xsl:template match="/">
<html><head><B>ESSAI XSL</B></head> <body>
<xsl:apply-templates/></body></html>
</xsl:template>
<xsl:template match="Guide">
<H1>BONJOUR LE GROUPE XML</H1>
<H2>SUIVEZ LE GUIDE</H2>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="Restaurant">
<P> <I>Restaurant :</I>
<xsl:value-of select="Nom"/></P>
</xsl:template>
</xsl:stylesheet>
10
XSLT
Les règles de production
Définition des règles par <xsl:template …>
Attributs
– match: condition de sélection des nœuds sur lesquels la règle s'applique
(Xpath)
– name: nom de la règle, pour invocation explicite (en conjonction avec <call-
template>)
– mode: permet d'appliquer à un même élément des règles différentes en
fonction du contexte
– priority: priorité, utilisé en cas de conflit entre deux règles ayant la même
condition
Exemples
– <xsl: template match="/">
– <xsl: template match="auteur">
11
XSLT
Exercice : document XML
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="[Link]" type="text/xsl"?>
<CATALOGUE>
<ARTICLE>
<REFERENCE>JT3006</REFERENCE>
<PRIX UNIT= "Euro" TAX="TTC">1874</PRIX>
</ARTICLE>
<ARTICLE>
…
</ARTICLE>
</CATALOGUE>
12
XSLT
Arbre correspondant
Racine
<?xml-stylesheet ...
Catalogue
Article Article
Prix Reference
Prix= " Euro" 1874 JT3006
Les attributs apparaissent comme
Tax="TTC" des fils de l’élément auquel ils
s’appliquent
13
XSLT
Exemple de feuille de style
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http:// [Link]
<xsl:template match="CATALOGUE">
<html>
<xsl:apply-templates/>
</html>
</xsl:template>
<xsl:template match="ARTICLE">
<P>
<xsl:apply-templates/>
</P>
</xsl:template>
</xsl:stylesheet>
14
XSLT
Que fait l'exemple?
La première règle:
– Remplace l'élément racine <CATALOGUE> par l'élément <html>
– L ’element <xsl:apply-templates/> indique qu ’il faut appliquer le
traitement à tous les enfants directs de la racine
La seconde règle:
– Remplace chaque élément <ARTICLE> par un élément <P>
– Le contenu de <P> est le texte (sans les balises) contenu dans les
descendants de l'élément <ARTICLE> (règle par défaut)
15
XSLT
Résumé des commandes
<xsl:template>, définir une règle et son contexte
<xsl:apply-templates/>, appliquer les transformations
<xsl:for-each>, définir un traitement itératif
<xsl:pi>, générer une processing instruction
<xsl:element>, générer un élément
<xsl:attribute>, générer un attribut
<xsl:if>, définir un traitement conditionnel
16
XSLT
Mise en oeuvre
Trois types de mise en œuvre possible:
– Transformation statique
– Transformation dynamique sur le serveur Web
– Transformation dynamique sur le client
Le choix de l'approche dépend:
– De l'utilisation des documents produits (impression papier,
publication Web)
– Du type de données XML manipulées (statique ou dynamique)
– Des capacités du serveur Web utilisé
– Des capacités du client Web utilisé
17
Architectures
ASP HTML
XML S ou
Programme JSP Affichage
E XML
R Processeur
XML XSL
V •Traitement
XML E •Affichage
Fichier U Processeur HTML
R XSL
PS WML
XML HTML PDF
Base de données
Affichage
Processeur
XSL
18
Transformation statique
Les documents XML sont transformés à l'avance:
– Impression papier
– Stockage HTML sur un site Web standard
Avantages:
– Pas de problèmes de performance
– Serveur et client Web standards
Inconvénients
– Impossibilité de gérer des données XML dynamiques
– Cohérence entre source et résultat
19
Transformation sur le serveur
Les documents XML sont transformés à la demande
par le serveur:
– Publication Web en HTML
– Échanges inter-application
Avantages:
– Permet de gérer des données XML dynamiques
– Client Web standard (HTML)
Inconvénients:
– Nécessite un serveur compatible XSL
– Problèmes de performances sur le serveur
20
Transformation sur le client
Le document XML et la feuille XSL sont transmises
par le serveur avant transformation:
– Publication Web
Avantages:
– Permet de gérer des données dynamiques
– Serveur Web standard
– Pas de problèmes de performances sur le serveur
Inconvénients:
– Nécessite un client Web compatible XSL
– Les données XML ne sont pas filtrées avant envoi
21
Association document-feuille XSL
Transformation statique:
– Le document XML et la feuille XSL sont deux paramètres du
programme de transformation
Transformation dynamique:
– L'association est gérée par une instruction de traitement dans le
fichier XML
– <?xml-stylesheet href="[Link]" type="text/xsl"?>
22
Les éditeurs
XML XSLT Rendu
23
XSLT
Bilan XSLT
XSLT est un langage très puissant de transformation
d'un arbre XML en un autre
XSL permet en particulier de publier des données
XML sur le Web par transformation en un document
HTML standard
XSL est utilisé :
– Pour publier des contenus XML
– Pour transformer des données (EAI, B2B)
24
XSLT
6. Conclusion
XSL pour transformer et présenter
– puissant mais complexe
– problème de performance des processeurs ?
Recommandation XSL version 1.0
– [Link]
Recommandation Xlink
– [Link]
25
Références