TP noté n°1
XML — Licence Pro BDISE — 15 janvier 2014 — Durée: 2h
Préambule
- Le sujet comporte plusieurs questions indépendantes, auquel on peut répondre dans un ordre quelconque.
- Il est volontairement long; ne vous privez pas de choisir les questions auxquelles vous répondrez prioritairement.
- Pour chaque question, nommer le fichier concerné avec le nom de la question et l'extension adaptée:
Question1.html
, Question2.xml
, Question3.1.dtd
...
- À l'issue du TP, rassembler tous ces fichiers dans une archive (.tar.gz, ou .zip) et la soumettre via Eprel.
- Les seuls documents autorisés sont les notes de cours.
- Le non respect de ces consignes pourra entraîner le retrait de points.
- Il ne faut pas copier-coller le XML affiché par le navigateur mais toujours l'enregistrer. Utiliser
wget
est aussi possible.
Énoncé
- Construire une page
XHTML
valide qui ait pour titre principal votre nom et qui liste trois bonnes raisons de faire du XML (en cas de manque d'inspiration: "légerté", "interopérabilité", "clarté de la structure d'arbre").
- On dispose d'une DTD pour organiser une collection (XML) de drapeaux. Écrire un fichier XML valide vis-à-vis de cette DTD qui contienne:
- Le drapeau de la France.
- Le drapeau de l'Écosse: bleu foncé (0065BD) avec une croix diagonale blanche.
- Le drapeau de l'Andorre: bleu, jaune (FFCE00), rouge (verticalement) avec un blason (situé à l'URL
BlasonAndorre.png
) au centre.
- Le drapeau de Malte: blanc et rouge (verticalement) avec un blason (situé à l'URL
BlasonMalte.png
) en haut à gauche (70% à gauche du centre de la partie blanche, 80% en haut).
- On considère le fichier XML suivant.
- Construire une DTD qui accepte le fichier . On dispose également de quelques informations supplémentaires qui pourraient ne pas être visible dans le XML:
- Une liste de clans peut être vide.
- Comme leurs nom l'indique,
clanId
et id
sont des identifiants; il n'est obligatoire que pour le clan.
- Le nom d'un clan est lui aussi obligatoire.
- Chaque clan a au moins un membre.
- Par défaut la formule de
politesse
est "ô toi".
- On veut lire plus agréablement le document XML à l'aide d'une CSS. Un exemple de résultat est fourni.
- Afin de pouvoir tester votre CSS, décommenter dans le XML la ligne qui lie la CSS (renommer la CSS en fonction du nom de votre fichier).
- Dans la CSS, on veut mettre une couleur de fond orange (#FF9900), garder le texte sur 800 pixels, et le centrer sur la page web en spécifiant ses marges comme
auto
.
- On inscrit en titre en gros "Les barbares".
- Chaque clan sera affiché dans un tableau; les bords du tableau seront affichés (dans n'importe quel style visible, cf exemple).
- Dans chaque clan, le chef prendra une ligne, les couleurs une autre, les cris une troisième, et chaque membre aura sa ligne.
- Le nom du chef de clan sera centré et en gras.
- Les couleurs du clan seront centrées en italique.
- Les cris seront présentés comme une listes à puces; chaque puce sera carrée. Entre deux cris, on insérera la mention "ou encore" (donc à tous sauf le premier cri). On remarque sur l'exemple que les puces ne sortent pas du cadre du tableau...
- On mettra en valeur les différents mots clés de l'héraldique (cf exemple).
- On mettra en valeur les membres du clan qui ont l'honneur d'avoir un
id
(cf exemple).
- La CSS devra être valide.
- On veut maintenant construire une page HTML à partir de
Barbares.xml
. Un exemple de résultat est donné.
- On se base sur le fichier XSLT à trou, fourni.
- Faire en sorte que votre nom aparaisse dans une métadonnée de clef "auteur".
- Bonus: insérer un commentaire dans le HTML qui décrit d'où vient le HTML ("Généré à partir de Barbares.xml par une transformation XSLT définie par <votre nom>.").
- Pour chaque clan il y aura un
span
de classe "clan" et dont l'identifiant (id
) reprend le clanId
du clan. On place également dans un h2
le nom du clan. On s'occupe ensuite du contenu du clan.
- Pour le chef, on crée un paragraphe de classe "chef" dans lequel on va énoncer son nom. Si la formule de
politesse
n'est pas précisée, on utilise la formule "ô toi". Attention aux espaces et aux guillemets...
- De même, les couleurs sont englobées dans un paragraphe de classe "couleurs". Notez dans ce cas qu'une partie du travail de traitement sur les couleurs est déjà fait (pas besoin de modifier ces templates!) et qu'il ne faut prévoir que ce qui est autour du blasonnement proprement dit.
- On s'occupe ensuite des cris de guerre. S'il n'y en a pas, on ne met rien. S'il y en a un seul, on le présente comme le seul cri de guerre (le tout dans un paragraphe). S'il y en a plus, on les présente dans une liste à puces (notez que la phrase d'introduction est elle dans un pragraphe). Dansle cas d'un clan à plusieurs cris, si une
occasion
est précisée, l'indiquer.
- On décide de ne pas afficher les noms des membres des clans.
Corrigé
- Cette page est du XHTML valide avec une liste ;-)
- Une liste de drapeaux.
-
- La DTD pour les barbares.
- La CSS pour les barbares.
- La transformation XSLT vers HTML.