:: Enseignements :: Master :: M2 :: 2007-2008 :: XML-XSLT ::
[LOGO]

Révisions - Examen du 4 novembre 2005


Ce TP peut servir de base de révisions pour l'examen final. Tous les documents furent autorisés.

Cahier des charges

On donne 4 fichiers : On demande d’écrire 5 programmes XSLT et de les exécuter.

Exercice 1 - Insérer une instruction de traitement

Faire un programme XSLT qui s'applique à plant_catalog.xml et produit plant_catalog_css.xml. Le programme XSLT doit insérer l'instruction de traitement
<?xml-stylesheet type= "text/css" href="plant_catalog.css" ?>
qui appelle la feuille de style CSS.

Exercice 2 - Ajouter une information extraite d’un document extérieur

Faire un programme XSLT qui s'applique à plant_catalog.xml et produit plant_catalog_family.xml. Le programme XSLT 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>Sanguinaria canadensis</BOTANICAL>
             <ZONE>4</ZONE>
             <LIGHT>Mostly Shady</LIGHT>
             <PRICE>$2.44</PRICE>
             <AVAILABILITY>031599</AVAILABILITY>
             <FAMILY>Papaveraceae</FAMILY>
       </PLANT>
Les familles sont indiquées dans le document plant_families.xml.

Exercice 3 - Classer des éléments en fonction d’une propriété

Faire un programme XSLT qui s'applique à plant_catalog.xml et produit plant_catalog_by_light.xml. Le programme XSLT doit classer les éléments PLANT en fonction du contenu de l'élément LIGHT, et les regrouper comme dans l'exemple ci-dessous :
   <CATALOG>
      <LIGHT>
         <EXPOSURE>Mostly Shady</EXPOSURE>
         <PLANT>
            <COMMON>Bloodroot</COMMON>
            <BOTANICAL>Sanguinaria canadensis</BOTANICAL>
            <ZONE>4</ZONE>
            <PRICE>$2.44</PRICE>
            <AVAILABILITY>031599</AVAILABILITY>
         </PLANT>
         <PLANT>
            <COMMON>Columbine</COMMON>
            <BOTANICAL>Aquilegia canadensis</BOTANICAL>
            <ZONE>3</ZONE>
            <PRICE>$9.37</PRICE>
            <AVAILABILITY>030699</AVAILABILITY>
         </PLANT>
         (...)
      </LIGHT>
      <LIGHT>
         <EXPOSURE>Mostly Sunny</EXPOSURE>
         <PLANT>
            <COMMON>Marsh Marigold</COMMON>
            <BOTANICAL>Caltha palustris</BOTANICAL>
            <ZONE>4</ZONE>
            <PRICE>$6.81</PRICE>
            <AVAILABILITY>051799</AVAILABILITY>
         </PLANT>
      </LIGHT>
      (...)
   </CATALOG>

Exercice 4 - Intégration

Faire un programme XSLT qui s'applique à plant_catalog.xml et produit plant_catalog2.xml. Le programme XSLT doit faire les 3 opérations des 3 exercices précédents, et également :
  • classer les éléments LIGHT par ordre alphabétique du contenu des éléments EXPOSURE ;
  • classer les éléments PLANT par ordre alphabétique du contenu des éléments COMMON.
Vérifier que le fichier résultat se visualise bien avec la feuille de style.

Exercice 5 - Calcul arithmétique

Faire un programme XSLT qui s'applique à plant_order.xml et produit un fichier texte price.txt. Le programme XSLT doit calculer le montant total de la commande et l'écrire dans le fichier price.txt.