CSI 3540 - Laboratoire 9

* Objectifs

  - Introduction à XSL et XPath
  - Savoir utiliser traiter le DOM en Java côté serveur

* Exercises

1. XSL et XPath.  Vous devez concevoir une transformation XSL afin
   de produire un index de chansons.

   Étant donné en entrée, le fichier XML suivant: MusicLibrary.xml, 
   vous devez produire la sortie suivante: AllTracksIndex.html.

   Le format est le suivant :
   - L'index est une liste non ordonnée;
   - Chaque entrée de l'index est un élément LI qui contient
     un lien.  L'URL de ce lien est constituée du 1) nom de l'album,
     2) suivi de Track-, 3) suivi de la valeur de l'attribut ID de
     l'élément track, 4) suivi de .mp3.  Finalement, le contenu du
     lien est le nom de la chanson.

   Vous pouvez utiliser votre navigateur pour appliquer la
   transformation, ou encore Saxon

   $ java -jar saxon9he.jar -xsl:AllTracksIndex.xsl -s:MusicLibrary.xml -o:AllTracksIndex.html

   Pour utiliser le processeur du navigateur, ajoutez une directive
   XML xml-stylesheet au document XML.

2. XSL et XPath. PubMed regroupe 19 millions de citations du 
   domaine biomédical. Le résultat d'une recherche peut être sauvegardé 
   en format XML: pubmed_result.xml.

   Vous devez concevoir une transformation XSL afin de créer
   un index abrégé dont voici le format (pubmed_result.html):
   - Ne contient que les articles publiés électroniquement
     (l'attribut PubModel a pour valeur Electronic)
   - Pour chaque article, vous devez afficher le nom, prénom du premier
     auteur, le titre de l'article, ainsi que l'URL de la
     publication
   - Afin de construire l'URL, utilisez le préfixe http://dx.doi.org/
     suivi du contenu de la balise ArticleId dont l'attribut IdType
     a pour valeur doi.

   Vous pouvez utiliser votre navigateur pour appliquer la
   transformation, ou encore Saxon

   $ java -jar saxon9he.jar -xsl:pubmed_result.xsl -s:pubmed_result.xml -o:pubmed_result.html

   Pour utiliser le processeur du navigateur, ajoutez une directive
   XML xml-stylesheet au document XML.

3. Processeur XML DOM. Un site comme "The Cloack" (www.the-cloak.com)
   permet la navigation sur Internet sans divulguer son identité.

   Sans verser dans les excès de paranoïa, il y a plusieurs
   applications légitimes pour un tel service. Par exemple, les
   publications scientifiques sont soumises à la critique d'un panel
   anonyme d'experts.  Certaines publications portent sur un service
   Web ou présentent des données supplémentaires sur Internet. Le
   critique soucieux d'évaluer la publication dans ses moindres
   détails devra visiter le site Internet des auteurs du manuscrit.
   Afin de préserver l'anonymat de la personne, l'utilisation d'un
   service tel que "The Cloack" est recommandée.

   Vous devez concevoir un Servlet qui recevra en paramètre, encodé dans
   l'URL de la requête HTTP Get, l'URL d'une page à anonymiser.

   Le Servlet doit 1) obtenir la page en question, 2) transformer tous
   les éléments a de la page afin de masquer les URLs et 3)
   retourner la page au client.

   Par exemple, l'URL suivante :

   <a href="http://un.site.org/un/chemin">...</a>

   sera réécrite comme suit :

   <a href="http://localhost:8080/furtif?url=http://un.site.org/un/chemin">...</a>

   afin que lorsque l'usager suivra ce lien, il soit redirigé vers
   le Servlet qui transformera toutes les URLs de la nouvelle page
   obtenue, de sorte que l'usager poursuivre ses visites anonymes.
   
   Ici, http://localhost:8080/furtif est l'URL du Serlvet servant
   à rendre les pages anonymes.

   Voici donc un document valide pour réaliser quelques

   test.

    Je vous recommande fortement de développer une application
   Java ayant une méthode principale d'abord, que vous intègrerez
   ensuite dans un Servlet.

4. (Optionel) Projet 7.21 (a) du livre du cours.