TP noté n°2

XML — Licence Pro BDISE — 17 mars 2016 — Durée: 2h

Préambule

Rappels des commandes de compilation

Validité vis-à-vis d'une DTD

xmllint --dtdvalid <doctype>.dtd <arbre>.xml

XSLT

xsltproc -o <page>.html <transformation>.xsl <arbre>.xml

XQuery

saxon-xquery -o <fichierProduit>.xml >requeteXQuery>.xq

Énoncé

Le but de ce TP est de mettre en forme des listes de candidats aux élections régionales de décembre 2015 à partir d'un document XML respectant cette DTD. À cause de sa taille, nous travaillerons sur un extrait des données ne contenant que certaines régions.

  1. En ouvrant le document, on se rend compte tout d'abord que les candidats sont rangés par ordre alphabétiques et non par section électorale (ici le département). De plus, on souhaiterait connaître l'ensemble des nuances choisies par le ministère de l'intérieur.
    Écrire la requête XQuery qui transforme le document CandidatsReg2015.xml en un document comme celui-ci (voir la DTD fournie).
    • Le document commence par une liste des nuances. Bonus: associer un numéro à chacune d'elle.
    • On a ensuite une liste de départements (dep) contenant les candidats.
    • Notez qu'on a récupéré le nom de chaque département et non seulement sont code. Pour cela, on pourra s'aider du fait que si l'on sélectionne les noms de tous les départements d'un même code, on aura plusieurs fois le même nom (on n'en veut un seul).
    • Sans qu'il n'y ait de séparation, les candidats sont tout de même classés par liste, en utilisant le numéro de panneau électoral (attribut panneau). Au sein d'une liste, l'éventuel tête de liste (tdl="OUI") est en premier; sinon on les laisse par ordre alphabétique.
    • On remarque qu'on ne modifie pas les éléments candidat.
  2. On va maintenant mettre sous la forme d'une page HTML le document qui devrait être produit à la question précédente. On va également utiliser SVG pour créer des boules de couleur différentes selon les nuances politiques. On se base sur le fichier Question2.xsl fourni, car il contient quelques templates utiles. On peut se baser sur le HTML obtenu et observer son code source, mais on peut également s'aider des indications suivantes:
    • Pour faire propre on mettra tout le contenu de la page dans un div d'identifiant main. On met un titre de niveau 1 pour notre page.
    • De même, chaque département est dans un div. Il n'a pas d'identifiant mais est de la classe departement. On affiche dans un titre de niveau 2 son nom et numéro.
    • Ce div dispose d'un attribut class qui comporte la classe candidat mais également trois classes permettant de connaître sa nuance politique, le département, et la région de candidature (cf la source du HTML obtenu).
    • Pareillement, chaque candidat est dans un div avec son nom complet précédé d'une boule de la couleur attribuée à sa nuance politique apparaît dans un titre de niveau 3.
    • Une tête de liste régionale est mentionnée en plus dans un titre de niveau 4.
    • Viennent ensuite des informations sur le candidat ou la candidate (notez qu'on peut savoir s'il s'agit d'un candidat ou d'une candidate) comme sa liste et la région concernée.
    • Enfin, vient une liste de description avec des informations complémentaire comme sa date de naissance (ddn), sa profession, et s'il est sortant.
    • À la fin de la page est une légende pour savoir à quelle couleur est attribuée quelle nuance politique. On en profite pour faire quelques statistiques:
      • Le nombre de départements où au moins un candidat est de cette nuance.
      • Le nombre total de candidats de cette nuance.
      • Le nombre de listes au niveau régional déposées par cette nuance. Ceci s'obtient en comptant le nombre de têtes de liste (tdl="OUI") de cette nuance.