Vous êtes sur la page 1sur 3

L3INFO - MI/XML - Travaux pratiques 2

1 Objectifs
L’objectif de ce TP est de vous familiariser avec les expressions XPath et d’approfondir vos
connaissances sur les DTDs.
Les documents mis en ligne sont les suivants :
1. Les fichiers XML automne-0.xml et automne-1.xml contenant tous deux le poème chanson
d’automne écri par Paul Verlaine. Ces deux fichiers ont été présentés en cours et ont été
utilisés lors du TD5.
2. La DTD licence.dtd contenant une description du cursus de licence.
3. Le document XML src.xml décrivant les documents ayant été distribués lors du premier
cours magistral portant sur XML.
4. Le fichier licence.css utile pour afficher dans un navigauteur des informations relatives
à la licence.
Vous pouvez télécharger ces fichiers à partir de l’adresse suivante : http://lifc.univ-fcomte.
fr/~sailhan/teaching.html. Notez que le TP1 est désormais aussi accessible à partir de cette
adresse.

2 Expressions XPath
En vous servant de xmllint, vous vous familiariserez avec les expressions XPath. Nous vous
rappelons que :
– la documentation de xmllint est accessible en tapant la commande man xmllint.
– une session interactive est démarrée en tapant la commande xmllint ––shell automne-0.xml.
Sur le fichier automne-0.xml, tester des expressions XPath comme par exemple :
– cd poemefr0/corps/strophe[1]/ligne[1],
– pwd,
– cat following-sibling::node()
– cat following-sibling::ligne
– cat following-sibling::ligne[position()=1]
– cat
– cd
– cat child::poemefr0/child::corps/child::strophe[position()=1]/child::ligne[position()=1]
– cat poemefr0/corps/strophe/descendant::text()
– cat poemefr0/corps/strophe[1]/ligne[1]
– cat /poemefr0/corps/strophe[1]/ligne[1]
Sur le fichier automne-1.xml tester des expressions XPath comme par exemple :
– cd poemefr1/corps/ligne[1],

1
– pwd,
– cat following-sibling::ligne[1][@strophe = "oui"]
– cat following-sibling::ligne[@strophe="oui"]
– cat following-sibling::ligne[@strophe= "oui"][position()=1]
– cat
– cd..
– pwd
– cd
Sur le fichier automne-1.xml afficher :
– le titre du poème à l’aide de la commande cat et en utilisant une expression XPath donnée
sous forme abrégée et non abrégée,
– le titre du poème si et seulement si le prénom de l’auteur est Paul
– le titre du poème si et seulement si le prénom de l’auteur est Paul et le nom est Verlaine

3 Écriture d’un document XML à partir d’une DTD


Le but de cet exercice est de décrire l’enseignement de licence. Plus précisément, la licence est
constituée d’un ensemble de modules (au moins un module). Un module est lui-même constitué
d’un ensemble de TPs, de TDs et de cours ; certains modules ayant ou non des TDs, TPs ou
cours. Une intervention lors d’un TP, d’un TD ou d’un cours magistral nécessite un intervenant
et une salle. Toutes ces informations sont présentées dans le fichier licence.dtd fourni.
Afin de représenter l’organisation de la licence L3, créez le fichier licence.xml relatif à la
DTD fournie. Étant donné que décrire tous les modules de L3 vous prendrait trop de temps, vous
restreindrez dans un premier temps, cette description aux enseignements suivants du module MI :
– tp numero 1
– salle 315C
– intervenant : Francoise Sailhan, bureau : 415C.
– td numero 4
– salle 102N
– intervenant : Francoise Sailhan, bureau : 415C.
– td numero 5
– salle 102N
– intervenant : Francoise Sailhan, bureau : 415C.
A la description des TP ayant eu lieu, vous ajouterez la description du TP numéro 2 qui a lieu
aujourd’hui. Vérifier ensuite la validité du document XML licence.xml par rapport à sa DTD
licence.dtd en vous servant de la commande validate de xmllint.
Comme vous pouvez le voir, l’un des principaux défauts de cette structure concerne les
intervenants. En effet, toutes leurs caractéristiques sont répétées à chaque intervention, ce qui
est particulièrement redondant et une source potentielle d’incohérences. Après avoir constaté
et analysé ce problème, vous définirez un nouveau document XML (fichier licence-1.xml) et
une nouvelle DTD (fichier licence-1.dtd), mieux structurée, fondée sur la notion d’attribut
identifiant (ID). Pour vous aider vous pouvez relire l’énoncé du TD4 et/ou suivre les étapes
suivantes :
1. Pour éliminer la redondance au niveau de la description de personnes, redéfinissez le début
de la nouvelle DTD licence.dtd, en décomposant le document en deux parties : l’une
pour les intervenants et l’autre pour la description de modules. Vous mettrez à jour en
conséquence votre document XML.

2
2. Compléter cette DTD en associant à chaque intervenant un attribut identifiant (de type
ID) puis mettez à jour votre document XML.
3. Modifiez votre DTD de façon à ce qu’une référence à l’identifiant de l’intervenant (attribut
de type IDREF) ait lieu au niveau des attributs de l’élément intervention lorsque vous
redéfinirez dans le document XML et la DTD l’élément intervention.
Par la suite, compléter le fichier XML de façon à décrire tous les enseignements ayant eu
lieu jusqu’alors dans le module MI (seulement en ce qui concerne les cours de XML). Puis
vous enrichirez le document XML et à la DTD de façon à ce que la liste des documents ayant
été distribués lors des cours magistraux, TDs et TPs apparaisse. Pour cela, vous pourrez vous
inspirer de ce qui a été fait dans le TD4. Comme base, vous pourrez aussi utiliser le document
XML src.xml qui décrit les documents distribués lors des cours et qui vous est fourni.

4 Affichage d’un document XML grâce à CSS


Veuillez télécharger le fichier licence.css fourni. Veuillez ensuite effectuer chacune des ac-
tions suivantes :
1. modifier le fichier licence.xml fourni (pas celui que vous avez modifié) de façon à ce qu’il
fasse référence au fichier CSS. Pour effectuer cette modification, vous pouvez vous inspirer
de l’exemple fourni à http://www.w3schools.com/xml/xml_display.asp.
2. visualiser sur votre navigateur le fichier licence.xml.
3. enrichisser votre fichier CSS de façon à ce que les informations relatives au TD soient aussi
affichées dans votre navigateur et qu’elles le soient en rouge.

Vous aimerez peut-être aussi