Support des connaissances TP1 Validation XML – DTD - XPATH M2 – IO MER Pierre.sournac@gmail.com
Ce TP sera réalisé à partir de l’outil NOTEPAD++ et du PLUGIN XML TOOLS Un package portable (utilisable sans installation) est disponible ici Prise en main
Prise en main Vérifier la syntaxe XML : Valider un DOCUMENT : document bien formé Valider un DOCUMENT : Conformité à une DTD Retrouver un chemin de nœud XPATH Utiliser des requêtes XPATH Réaliser des transformations XSL
EXERCICE 1 : ANNUAIRE À partir de l’analyse du fichier Annuaire.xml : Le document est-il bien formé ? S’il ne l’est pas, listez et corrigez les erreurs. Le DTD du fichier Annuaire.xml est déclaré dans son entête. Modifier le fichier annuaire.dtd pour qu’il valide Annuaire.xml On souhaite pouvoir gérer en plus, les numéros de téléphone et les emails pro. Modifier le DTD en conséquence. Modifier le DTD pour l’attribut JOB n’autorise que les valeurs : prof – etudiant – secretaire
Un peu de XPATH <1 CDlist> <2 CD> <3 ISBN>4972-5121-X</ISBN> <4 composer>Johannes Brahms</composer> <5 performance> <6 composition>Piano Concerto No. 2</composition> <7 soloist>Emil Gilels</soloist> <8 orchestra>Berlin Philharmonic</orchestra> <9 conductor>Eugen Jochum</conductor> </performance> <10 performance> <11 composition>Fantasias Op. 116</composition> <12 soloist>Emil Gilels</soloist> <13 performance> <14 composition>Fantasias Op. 110</composition> <15 orchestra>Berlin Philharmonic</orchestra> <16 publisher>Deutsche Grammophon</publisher> <17 length>PT1H13M37S</length> </CD> </CDlist> 1): toutes les compositions 2): toutes les compositions ayant au moins un "soloist" 3): toutes les performances avec un seul "orchestra" mais pas de "soloist" 4): tous les soloists ayant joué avec le Berlin Philharmonic sur un CD publié par Deutsche Grammophon 5): tous les CDs comportant des performances du Berlin Philharmonic
EXERCICE 2 : reservationRoom Participants en 2013 à un meeting de la room Gallois Les titres des meetings réservés par JP Alquier Les dates (seulement les jours dans le mois) des meetings en lien avec XML (i.e. titre ou commentaire contenant XML) Les participants des meetings ayant eu lieu dans la même room qu’un meeting auquel Celine Maraninchi a participé Les rooms dans lesquelles ont eu lieu 3 meetings le même jour Les rooms dans lesquelles ont lieu toujours au moins trois meetings chaque jour où elles sont occupées Les meetings ayant lieu le jour où le meeting « Roadmap » se déroule. Les rooms dans lesquelles ont eu lieu 3 meetings le même jour Les rooms dans lesquelles ont lieu toujours au moins trois meetings chaque jour où elles sont occupées Les meetings ayant lieu le jour où le meeting « Roadmap » se déroule. //room[.//individual = 'Celine Maraninchi ']//participant/* ou bien //participant[ancestor::room/@name = //room[.//individual = 'Celine Maraninchi ']/@name]/*