Travail noté #
Question 1 : Transformations XSLT pour la génération de rapports #
Pour ce travail, vous utiliserez le document XML suivant contenant des données d’étudiants :
<?xml version="1.0" encoding="UTF-8"?>
<universite>
<etudiant id="E001">
<nom>Dupont</nom>
<prenom>Marie</prenom>
<programme>Informatique</programme>
<notes>
<note cours="INF6450" valeur="85" />
<note cours="INF6400" valeur="92" />
<note cours="INF6500" valeur="78" />
</notes>
</etudiant>
<etudiant id="E002">
<nom>Tremblay</nom>
<prenom>Jean</prenom>
<programme>Mathématiques</programme>
<notes>
<note cours="MAT6450" valeur="88" />
<note cours="MAT6400" valeur="76" />
<note cours="MAT6500" valeur="91" />
</notes>
</etudiant>
<etudiant id="E003">
<nom>Gagnon</nom>
<prenom>Sophie</prenom>
<programme>Informatique</programme>
<notes>
<note cours="INF6450" valeur="79" />
<note cours="INF6400" valeur="88" />
<note cours="INF6500" valeur="94" />
</notes>
</etudiant>
<etudiant id="E004">
<nom>Roy</nom>
<prenom>Michel</prenom>
<programme>Physique</programme>
<notes>
<note cours="PHY6450" valeur="82" />
<note cours="PHY6400" valeur="89" />
<note cours="PHY6500" valeur="85" />
</notes>
</etudiant>
</universite>
Créer une feuille XSLT qui transforme le XML en format JSON, avec une structure contenant la liste des étudiants et leurs informations, y compris un calcul de la moyenne pour chaque étudiant.
Vous devrez tester vos transformations avec un processeur XSLT (comme Saxon ou xsltproc) et fournir les résultats de sortie pour validation.
Ressources : Consultez la documentation officielle de XSLT : https://www.w3.org/TR/xslt-30/
Livrables : Feuilles XSLT (.xslt), fichier XML d’exemple, résultats des transformations, et un README en Markdown expliquant les transformations et comment les exécuter.
Question 2 : Requêtes XPath pour l’extraction de données #
Utilisez le même document XML des étudiants que dans la Question 1 pour pratiquer les expressions XPath.
Tâches à effectuer :
Écrivez des expressions XPath pour extraire les informations suivantes :
- Tous les noms d’étudiants en Informatique
- Les notes supérieures à 85 pour tous les cours
- L’étudiant avec la meilleure moyenne générale
- Les cours distincts offerts dans l’université
Expressions XPath avancées :
- Utilisez des prédicats complexes pour filtrer les données
- Combinez plusieurs conditions avec les opérateurs
andetor - Utilisez les fonctions XPath (count, sum, avg, etc.)
- Naviguez dans la hiérarchie XML avec des chemins absolus et relatifs
Validation des résultats :
- Testez vos expressions XPath avec un outil en ligne ou un processeur XML
- Fournissez les résultats attendus pour chaque expression
- Expliquez le fonctionnement de chaque expression XPath
Ressources :
- Spécification XPath : https://www.w3.org/TR/xpath-31/
- Tutoriel XPath : https://www.w3schools.com/xml/xpath_intro.asp
Livrables : Liste des expressions XPath, résultats des requêtes, et explication du fonctionnement.
Question 3 : Requêtes XQuery pour l’analyse de données #
Utilisez le document XML des étudiants pour créer des requêtes XQuery qui effectuent des analyses complexes.
Tâches à effectuer :
Requêtes XQuery de base :
- Lister tous les étudiants avec leurs moyennes calculées
- Grouper les étudiants par programme d’études
- Trier les étudiants par moyenne décroissante
Analyses statistiques :
- Calculer la moyenne générale par programme
- Identifier les cours avec les meilleures et pires performances
- Générer un rapport des statistiques par matière
Transformations XQuery :
- Créer du HTML à partir des données XML
- Générer du JSON structuré avec les analyses
- Construire des rapports XML complexes
Requêtes avancées :
- Utiliser FLWOR expressions pour des analyses complexes
- Implémenter des jointures et des agrégations
- Gérer les données manquantes et les erreurs
Exemple de requête XQuery attendue :
for $etudiant in //etudiant
let $moyenne := avg($etudiant/notes/note/@valeur)
order by $moyenne descending
return
<resultat>
<nom>{concat($etudiant/prenom, ' ', $etudiant/nom)}</nom>
<programme>{$etudiant/programme}</programme>
<moyenne>{$moyenne}</moyenne>
</resultat>
Ressources :
- Spécification XQuery : https://www.w3.org/TR/xquery-31/
- Tutoriel XQuery : https://www.w3schools.com/xml/xquery_intro.asp
Livrables : Requêtes XQuery (.xq), résultats des analyses, et documentation des fonctionnalités utilisées.
Rapport vidéo #
Vous pouvez remettre votre rapport sous forme de vidéo plutôt qu’en format écrit : une démonstration commentée à l’écran dans laquelle vous présentez votre code, son exécution et vos résultats. Le code source et les fichiers demandés doivent tout de même être remis. Les critères du barème s’appliquent de la même façon, que le rapport soit écrit ou filmé.
Barème de correction #
Ce travail est noté sur 15 points, soit les 15 % qu’il vaut dans la note finale.
| Critère | Points |
|---|---|
| Question 1 — transformation XSLT vers JSON | 4,5 |
| Question 2 — expressions XPath | 4,5 |
| Question 3 — requêtes XQuery | 4,5 |
| Documentation, explications et résultats fournis | 1,5 |
Les points de chaque critère sont accordés au prorata de ce qui fonctionne et de ce qui est démontré dans la remise. Un travail qui ne compile pas ou ne s’exécute pas ne peut obtenir plus de la moitié des points.