TP noté n°1

XML — Licence Pro BDISE — 8 janvier 2015 — 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

Création d'une archive .tar.gz

tar -cvzf <archive>.tar.gz <dossier>/

Énoncé

  1. 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
    1. Socrate
      Il était très intelligent.
    2. Platon
      Une république dans une caverne, quelle idée!
    3. Zénon
      1. Les paradoxes
        Ce serait trop long à expliquer.
      2. Zénon contre Zéoui
        La philosophie par les calembours.
    Chapitre second: le cartésianisme
    Ce chapitre considère que l'on pense.
    1. Donc je suis
      Oui, mais où suis-je? À quoi cours-je? À quoi sers-je?
    2. Pragmatisme
      La philosophie s'effondre comme un château.
  2. On considère le fichier XML suivant.
    1. 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).
    2. 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.
    3. 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é

  1. L'œuvre philosophique structurée.
    1. La DTD pour la holding.
    2. La CSS pour la holding.
    3. La transformation XSLT vers HTML.