M2 SIMI - Diffusion d'information multimedia - XPath/XSL
Auteur(s):
Sébastien CHOPLIN
dans ce qui suit, les URL suivantes sont équivalentes:
Exercice 1: XPath
A l'aide du logiciel Morphon disponible sur http://www.morphon.com/, nous allons nous familiariser avec XPath en utilisant un document
xml contenant une liste de CDs.
Enregistrez sur votre
machine le document XML mes_cds.xml ainsi que la dtd
utilisée par ce document: cdtheque.dtd.
Vous trouverez tous les renseignements précis sur XPath sur
http://www.w3.org/.
- Ce document est-il well-formed, valide ?
- Visualisez mes_cds.xml dans Morphon.
- A l'aide d'une expression XPath,
donnez le nombre de cds (fonction count)
- A l'aide d'une expression XPath,
sélectionnez le premier CD (en utilisant les prédicats).
- A l'aide d'une expression XPath,
sélectionnez seulement les artistes (pas les CDs).
- A l'aide d'une expression XPath,
sélectionnez les CDs dont l'artiste est Serge Reggiani.
- A l'aide d'une expression XPath,
sélectionnez la liste des CDs dont le style est "jazz" (il serait intéressant
de ne pas tenir compte de la casse, fonction translate).
- Peut-on donner une expression XPath, qui donne le nombre de styles différents ?
Exercice 2: XSL - Transformation
Vous trouverez xsltproc (un processeur XSL) sur http://xmlsoft.org/ dans http://xmlsoft.org/sources/win32/libxslt-1.1.12+.win32.zip
(ou ici libxslt-1.1.12+.zip).
Tapez xsltproc sans argument pour avoir l'aide de cette
commande:
Z:\le-repertoire-ou-j'ai-mis-xsltproc\> xsltproc
Usage: xsltproc [options] stylesheet file [file ...]
Options:
--version or -V: show the version of libxml and libxslt used
--verbose or -v: show logs of what's happening
--output file or -o file: save to a given file
--timing: display the time used
......
Toute information utile sur xslt se trouve sur http://www.w3.org/TR/xslt
-
Appliquer la feuille de style XSL cdtheque2txt.xsl à mes_cd.xml.
-
En vous insipirant de cette feuille de style, créez un feuille de style
affichant la position du cd dans l'arbre (élément xsl::value-of Et
fonction position()) au début de chaque ligne.
-
Créez une feuille de style affichant affichant la
liste des cds triés par artiste (élément xsl:sort).
- Créez une template permettant d'afficher les CDs de
l'artiste passé en paramètre(élément xsl::param).
-
Créez une feuille de style permettant d'afficher la liste des CDs triés par artiste en XHTML
dans un tableau où le fond des lignes est incolore pour le ligne de numéro pair et gris
pour les lignes de numéro impair (élément xsl::if pour les tests, ne pas oublier d'adapter la feuille de style pour le XHTML). On affichera également la date de création et l'auteur de la cdthèque.
Exercice 3: XSL-FO
Voici un exemple minimaliste de fichier au format FO:
<?xml version="1.0" encoding="ISO-8859-1"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4">
<fo:region-body
region-name="xsl-region-body"
margin="0.7in" padding="6pt" />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
<fo:flow flow-name="xsl-region-body">
<fo:block>Hello World</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
Ressources:
Vous trouverez un processeur XSLFO sur http://xml.apache.org/fop/ (pour convertir un fichie au format XSLFO en PDF ou autres).
- En utilisant une feuille de style XSL, construisez un fichier au format XSLFO permettant
d'editer un document PDF contenant la liste des CDs tries par artiste dans un tableau
avec en entete le nom de l'auteur et la date et en pied de page votre nom.