Évaluation de l'unité XML
Devoir à rendre : exercices de travaux pratiques
Date limite : AVANT le lundi 14 novembre 2011 (par groupe de deux étudiants).
Sujet : vous devez me rendre (par mail) une archive ZIP dont le nom est composé à partir de vos noms de famille. Cette archive doit contenir :
- un fichier XML décrivant la structure du Master (unités, semestres, intervemants, parcours),
- une DTD pour ce fichier XML,
- un schéma pour ce fichier XML,
- une feuille de style XSL, permettant de produire le site Web du Master (ensemble de documents XHTML valides, un pour chaque intervenants, parcours, unités). Les problèmes de mise en page et de construction d'un menu doivent être réglés par une feuille de style CSS.
- une requête XQuery (voir plus bas),
- Un Makefile permettant de
- vérifier la validité du document XML à l'aide de la DTD (make dtd),
- vérifier la validité du document XML à l'aide du Schéma (make xsd),
- de générer le site WEB (make web) dans un répertoire qui doit se nommer www,
- d'exécuter la requête XQuery (make xq) dans un répertoire qui doit se nommer xqres,
- de vérifier la validité des pages XHTML générées avec l'aide de tidy (make tidy),
- de tout faire dans cet ordre (make all).
Récupérer des données
Cette partie est optionnelle (mais conseillée). Elle est juste prévue pour enrichir votre document XML décrivant le Master Informatique.
Commencez par récupérer le fichier XML décrivant les unités, les parcours et les intervenants du Master Informatique (fichier /home/massat/public/master/donnees.xml). A la fin du deuxième TP, vous avez du concevoir une DTD et un document XML décrivant le Master. Vous pouvez maintenant, à l'aide d'une feuille de style XSL, enrichir votre description en récupérant les informations qui se trouvent dans le document XML récupéré. Attention, ce document n'a pas de structure particulière. Vous devez donc le transformer pour respecter votre DTD.
Voila un petit exemple de feuille de style XSL permettant de reconstruire une unité à partir des informations du fichiers XML donné.
<?xml version="1.0" encoding="iso-8859-1" ?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<unites>
<xsl:for-each select="//objet[@type = 'ue']">
<unite>
<id><xsl:value-of select="@id"/></id>
<nom><xsl:value-of select="info[@name='nom']"/></nom>
<credits><xsl:value-of select="info[@name='credits']"/></credits>
<resume><xsl:value-of select="info[@name='resume']"/></resume>
</unite>
</xsl:for-each>
</unites>
</xsl:template>
</xsl:stylesheet>
Utiliser XQuery
Commencez par suivre le cours sur XQuery disponible sur le site W3Schools. Pour tester les exemples, utilisez le processeur XQuery Saxon (version Home Edition).
Travail à faire : rédiger une requête XQuery permettant de produire une page XHTML qui liste les enseignants avec, pour chacun, les enseignements qu'il assure et les parcours dans lesquels il intervient. Prenez soin de trier tous les résultats.
Attention : prenez soin de me rendre un Makefile autonome qui intègre les ressources (notamment Saxon) nécessaires à son fonctionnement.
Barème
Voila un barème approximatif :
- 2 points pour la présentation (Makefile, Documentation),
- 2 points pour la feuille CSS,
- 3 points pour la DTD,
- 5,5 points pour la feuille XSLT,
- 4,5 points pour le schéma,
- 3 points pour la requête XQuery,