XML -- TP 3 : XPath


Méthodologie

Pour tester le résultat d'une expression XPath, nous utiliserons deux techniques dans ce TP :

Exercice 1: XPath

Fichier: cd.xml, cd.dtd

On considère des documents XML correspondant à la description d'une collection de CD audio. Le fichier cd.xml donne un exemple de document contenant une seule entrée (un seul CD). Une collection est un document valide vis-à-vis de la DTD cd.dtd :

<!ELEMENT CDlist      ((CD)+)>
<!ELEMENT CD          (composer, (performance)+, publisher, (length)?)>
<!ELEMENT performance (composition, (soloist)?, (orchestra, conductor)?)>
<!ELEMENT composer    (#PCDATA)>
<!ELEMENT publisher   (#PCDATA)>
<!ELEMENT length      (#PCDATA)>
<!ELEMENT composition (#PCDATA)>
<!ELEMENT soloist     (#PCDATA)>
<!ELEMENT orchestra   (#PCDATA)>
<!ELEMENT conductor   (#PCDATA)>
     
Commencez par valider le document xml par rapport à sa DTD à l'aide d'Exchanger XML Lite.
Trouvez ensuite les expressions XPath qui retournent les informations suivantes (on suppose que le contexte initial est l'élément racine de nom CDlist). Vous les testerez avec Exchanger XML Lite, puis vous écrirez une feuille de style xsl permettant d'afficher l'ensemble des réponses.

Exercice 2: XPath (encore)

Fichiers: - booker.xml

Le fichier booker.xml contient une liste de livres (les gagnants du fameux booker prize) avec leur auteur et l'année de l'obtention du prix. Trouvez les expressions XPath qui retournent les informations suivantes et présentez vos réponses dans une feuille de style XSL :

Exercice 3: XPath et DTD

On s'intéresse à une application de calendrier qui utilise des données sous le format suivant: un calendrier est une séquence d'événements. Chaque événement a une date et une description. Un événement peut ou bien avoir une heure et une durée, ou bien n'avoir aucune de ces deux dernières informations. Un événement peut aussi avoir une répétition, qui est une valeur au choix parmi 'semaine', 'mois' et 'année'. La répétition peut être bornée dans le temps (jusqu'à une date fixée, ou après un certain nombre d'occurrences), ou bien être indéfinie. La répétition par défaut d'un événement est 'semaine', continuant indéfiniment.