:: Enseignements :: Master :: M2 :: 2008-2009 :: XSLT et schémas XML ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Restructuration - 1 |
Le but de ce TD est d'écrire des scripts XSLT modulaires permettant de restructurer des fichiers XML.
Exercice 1 - Programme mystérieux
Appliquer le script XSLT
mystere.xsl sur le catalogue de plantes
plant_catalog.xml.
Qu'observe-t-on?
Expliquer.
Modifier le code pour n'afficher que les éléments
BOTANICAL.
Dans un deuxième temps, adapter votre code pour qu'il puisse traiter
le document
plant_catalog_jr.xml.
Exercice 2 - Ajouter une information extraite d'un document extérieur
Faire un script XSLT qui s’applique à
plant_catalog_jr.xml et produit
plant_catalog_family.xml.
Le script doit ajouter dans chaque élément
PLANT un élément
FAMILY qui donne le nom de la famille à laquelle appartient la plante.
Exemple :
<PLANT>
<COMMON>Bloodroot</COMMON>
<BOTANICAL>
<GENUS>Sanguinaria</GENUS>
<SPECIES>canadensis</SPECIES>
</BOTANICAL>
<ZONE>4</ZONE>
<LIGHT>Mostly Shady</LIGHT>
<PRICE unit="euro">2.44</PRICE>
<AVAILABILITY>031599</AVAILABILITY>
<FAMILY>Papaveraceae</FAMILY>
</PLANT>
Les familles sont indiquées dans le document
plant_families.xml.
Vous utiliserez une constante globale pour stocker le noeud
CLASSIFICATION de ce document.
Exercice 3 - Instructions conditionnelles
Ecrire un script XSLT qui affichera la liste des noms anglais de plantes du catalogue
plant_catalog_jr.xml.
En face de chacun de ces noms, on donnera, entre parenthèses, la mention "(expensive)" si son prix est supérieur à 3 euros, et la mention "(cheap)" sinon.
Exercice 4 - Définir une fonction Xpath
Ecrire un script XSLT qui recopie l'arborescence du catalogue
plant_catalog_jr.xml,
mais avec les prix en dollars.
Il vous est demandé d'utiliser une fonction nommée u:euro2dollar qui prend comme paramètre une valeur en euros et la convertit en dollars.
Cette fonction sera implémentée dans un autre script utilities.xsl.
On supposera qu'un euro vaut approximativement 1.4 dollars.
Exercice 5 - Produire du code XHTML
On va écrire un nouveau script XSLT pour convertir
bergman.xml en XHTML.
Le document XHTML comprendra deux sections :
Sommaire et
Films.
Les titres de ces sections seront dans des balises <h1>.
La section Sommaire contiendra la liste des noms originaux des films d'ingrid Bergman.
L'année sera indiquée entre parenthèses.
Le titre sera en italique.
Vous utiliserez les balises standard des listes non numérotées en XHTML : <ul> et <li>.
La section
Films comprendra l'ensemble des fiches détaillées sur les différents films.
Une fiche détaillée contiendra :
- le titre (dans une balise <h2>) ;
- au-dessous, le texte "Sorti en" suivi de l'année de sortie du film ;
- au-dessous, le texte "Réalisé par" suivi du nom du réalisateur ;
- au-dessous, le texte "Personnage interprété :" suivi du nom du personnage interprété ;
- puis, le texte "Résumé :" suivi d'un retour à ligne et du résumé, si ce dernier existe.
A chaque film du sommaire, on associera un lien hypertexte vers la rubrique appropriée.
Comme identifiant commun entre le lien et sa cible, on utilisera soit les valeurs des attributs filmref, soit des ientifiants engendrés automatiquement par XSLT.
- Dans une première version, vous utiliserez des appels de règles par noeuds avec mode.
- Dans une deuxième version, vous simulerez les appels de règles par noeuds avec
mode en transmettant un paramètre à la règle (même syntaxe que pour les
appels par nom).
© Université de Marne-la-Vallée