:: Enseignements :: ESIPE :: E5INFO :: 2007-2008 :: eXtended Markup Language ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Ingrid Bergman et XSLT |
Dans ce TP, toujours autour d'Ingrid Bergman, nous proposons une initiation à XSLT.
Saxon
Les feuilles de style XSLT seront appliquées aux fichiers XML à l'aide de Saxon. Saxon est sous la forme d'une archive JAR qui se trouve dans /usr/share/java/saxon.jar.
Ecrivez le script bash saxon ci-dessous et placez-le dans le répertoire bin de votre répertoire utilisateur. N'oubliez pas de placer ce répertoire dans votre variable d'environnement PATH s'il n'y est pas déjà. N'oubliez pas de donner des permissions d'exécution (
chmod 700 saxon,
par exemple).
java -cp /usr/share/java/saxon.jar com.icl.saxon.StyleSheet $@
Exercice 1 - Réorganisation
On va réorganiser le document
bergman.xml du précédent TP à l'aide d'une feuille de style XSLT, de manière à produire un nouveau document XML,
bergman2.xml, qui contiendra les mêmes informations mais de manière mieux organisée. Le nouveau document aura pour élément racine
bergman qui lui-même contiendra un élément
filmographie qui comprendra un ensemble d'éléments
film.
Remplacer tout élément
role par un élément
film qui contient les attributs suivants :
-
filmref, tiré de role ;
-
img et pdf, tirés de resume ;
-
realisateur, tiré de resume ;
-
date, tiré de role ;
-
misc, tiré de role ;
-
personnage, tiré de role,
et les sous-éléments suivants (dans cet ordre) :
-
titre, avec comme contenu celui de role ;
-
resume, avec comme contenu celui de resume ;
- autant de alias, que nécessaires.
Chaque élément
alias conserve son contenu et ses attributs
date et
pays eventuels. Exemple :
<resumes>
...
<resume filmref="f29" img="29.jpg" pdf="29.pdf" realisateur="Jean Renoir">
Polnish countess Elena falls in love to a Frensh radical party's candidate, a
general, in pre world war I Paris, but another officer pines for her.
</resume>
...
</resumes>
<aliases>
...
<alias filmref="f29" date="1956">Elena and Her Men</alias>
<alias filmref="f29" date="1956" pays="Italy">Eliana e gli uomini</alias>
<alias filmref="f29" date="1956" pays="UK">Paris Does Strange Things</alias>
...
</aliases>
<roles>
...
<role filmref="f29" personnage="Elena Sokorowska" date="1956"> Elena et les hommes
...
</roles>
devient
<film filmref="f29" img="29.jpg" pdf="29.pdf" realisateur="Jean Renoir" date="1956"
personnage="Elena Sokorowska">
<titre>Elena et les hommes</titre>
<resume>
Polnish countess Elena falls in love to a French radical party's candidate, a
general, in pre world war I Paris, but another officer pines for her.
</resume>
<alias date="1956">Elena and Her Men</alias>
<alias date="1956" pays="Italy">Eliana e gli uomini</alias>
<alias date="1956" pays="UK">Paris Does Strange Things</alias>
</film>
L' élément
perso doit être recopié tel quel.
Sauvegardez le résultat de la transformation XSLT précédente dans un fichier
bergman2.xml, à l'aide de la commande :
$ saxon -o bergman2.xml bergman.xml <mafeuilledestyle.xsl>
Exercice 2 - Produire du code XHTML
On va écrire une nouvelle feuille de style XSLT (bergman3.xsl) pour convertir ce nouveau document XML en XHTML.
Filmographie
Chaque film sera présenté comme une paire de cellules d'un tableau, celle de gauche contenant l'image associée au film et celle de droite contenant les diverses informations. Ces informations seront presentées de la manière suivante : le titre du film en caractères gras de grande taille, suivi de la date entre parenthèses ; en dessous, les mots "Réalisé par" suivis du nom du
réalisateur ; en dessous, les mots "Personnage interpreté :" suivis du nom du personnage interprété. Suit le résumé, et, à la fin, les alias éventuels, en italiques, suivis de la date et du pays éventuel entre parenthèses.
Les infos personnelles
Mettre un titre avant chaque unité (biographie, mariages, infos, citations). Les entrées de mariage, info, citation, forment des listes (énumerative pour les mariages, non-énumerative sinon). Dans le cas des mariages, on affichera également les dates de début et de fin, dans le cas des citations, leurs auteurs.
Génération de la table des matières
Pour faciliter la lecture de cette page HTML, on produira une table des matières de la forme suivante :
Filmographie
premier film (date)
...
dernier film (date)
Informations personnelles
Biographie
Mariages
Divers
Citations
où chaque entrée est un lien hypertexte vers la rubrique appropriée. Comme mot-clé commun entre le lien et sa cible, on utilisera soit les valeurs des attributs filmref, soit des mots-clés générés automatiquement par XSLT.
© Université de Marne-la-Vallée