TP noté n°1
XML — Licence Pro BDISE — 8 janvier 2015 — 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.
- Commencer par créer un dossier
TPsolo1votreLogin
dans lequel vous effectuerez tout le TP.
- Pour chaque question, nommer le fichier concerné avec le nom de la question et l'extension adaptée:
Question1.xml
, Question2.1.dtd
...
- À l'issue du TP, supprimer les fichiers générés (par exemple la sortie HTML de l'application d'une feuille XSLT sur un document XML) ainsi que les fichiers fournis dans l'énoncé.
Surtout faites bien attention de ne pas supprimer un fichier que vous avez écrit! (Bien les nommer permet d'éviter cela facilement...)
- Faire une archive (
.tar.gz
) à votre nom à partir du dossier contenant vos réponses et la soumettre via Eprel. En cas d'oubli de votre identifiant EPREL, voici la liste (mot de passe par défaut: date de naissance jjmmaaa
).
- Les seuls documents autorisés sont les notes de cours et vos productions de TD/TP. Il est également autorisé d'utiliser le site W3Schools comme aide mémoire.
- 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.
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
Création d'une archive .tar.gz
tar -cvzf <archive>.tar.gz <dossier>/
Énoncé
- On dispose d'une DTD pour stocker des documents structurés.
Écrire un fichier XML valide vis-à-vis de cette DTD qui représente "l'œuvre" suivante:
La philosophie de l'antiquité à Descartes, par Platon et Descartes
- Chapitre premier: l'antiquité
-
Ce chapitre traite l'antiquité de fond en comble
- Socrate
Il était très intelligent.
- Platon
Une république dans une caverne, quelle idée!
- Zénon
- Les paradoxes
Ce serait trop long à expliquer.
- Zénon contre Zéoui
La philosophie par les calembours.
- Chapitre second: le cartésianisme
-
Ce chapitre considère que l'on pense.
- Donc je suis
Oui, mais où suis-je? À quoi cours-je? À quoi sers-je?
- Pragmatisme
La philosophie s'effondre comme un château.
- 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:
- Il y a toujours dans le conseil au moins un membre (hormis le président).
- Le
code
d'une entreprise est un identifiant (il est obligatoire).
- 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.
- Dans la CSS, on veut mettre une couleur de fond marron (#AD8F6B), garder le texte sur 1024 pixels, et le centrer sur la page web en spécifiant ses marges comme
auto
.
- On commence par un bloc pour le conseil d'administration (ce terme sera d'ailleurs affiché en police 42).
- Le président du CA est mis en exergue par une joli orangé (#EA5F0E) sur fond blanc (taille des fontes: 32 pour le nom du président et 23 pour la parenthèse "(président)").
- Ensuite viennent chaque membre du CA, comme élément d'une liste à puce. On remarque que non seulement les puces sont dans le cadre attribué aux membres, mais également qu'ils y sont un peu décalés vers l'intérieur, (de 1ex).
- Les membres du CA qui sont aussi chef d'une entreprise sont indiqués en italique.
- Chaque entreprise dispose ensuite d'un bloc entouré du même orange qu'auparavant (#EA5F0E).
- En blanc sur ce font orangé, est le nom du président (taille 29) suivi du terme "dirige..." en taille 23.
- On mettra en valeur (gras) les différents produits fabriqués par l'entreprise.
- La CSS devra être valide.
- On veut maintenant construire une page HTML à partir de
Holding.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".
- Tout est contenu dans un
div
. -
- Le titre de la holding apparaît dans un entête.
- Le conseil d'administration est dans un
div
dont l'id
est "conseil".
- Détaillé sous un entête de second rang, est le contenu du CA: le président et la liste des autres membres.
- Pour les membres du CA qui sont dirigeants d'une entreprise, mettre un lien vers la partie de la page décrivant ladite entreprise. On pourra utiliser le
code
de l'entreprise pour nommer les ancres.
- Pour chaque entreprise il y aura un
div
dont l'identifiant (id
) reprend le code
de l'entreprise. On place également dans un h2
le nom de l'entreprise. On s'occupe ensuite du contenu de celle-ci.
- On reproduit dans un paragraphe la description fournie dans le xml. Un second pararaphe précise qui est le dirigeant de l'entreprise.
- On met ensuite en avant via une liste à puces les produits fournis par l'entreprise (extraits de la description).
Corrigé
- L'œuvre philosophique structurée.
-
- La DTD pour la holding.
- La CSS pour la holding.
- La transformation XSLT vers HTML.