Table des matières
TME XPath
Préparation
Ce TME utilise le SGBD XML BaseX.
- Créer un répertoire de travail pour ce tme.
- Télécharger et décompresser, dans votre répertoire de travail, le fichier xpath.zip accessible dans le moodle.
- Télécharger et décompresser, dans votre répertoire de travail, l'archive BaseX945.zip (sinon voir les autres archives dans download).
- Lancer l'interface graphique de BaseX (voir la description de l'interface graphique à cette adresse: https://docs.basex.org/wiki/Graphical_User_Interface):
Windows: cliquer sur l'icône **BaseX GUI** (ou lancer le script basexgui.bat) Unix: exécuter bin/basexgui depuis le répertoire racine de basex
Dans BaseX:
- Créer la base de données contenant tous les fichiers du dossier xpath décompressé précédemment: Database→New… cliquer sur Browse… :choisir le dossier xpath comme répertoire source pour cette base. Vérifier aussi que le champ Input Format vaut bien XML.
- Évaluer une expression XPath (son résultat sera affiché dans la fenêtre Result):
- Saisir vos requêtes XPath dans la fenêtre centrale. Sélectionner la requête a traiter faire Ctrl-Entrée pour l'exécuter (ou la flèche verte). Une autre possibilité est d'utiliser l' Input Bar changez dans le menu déroulant Find par XQuery, vous pouvez ensuite écrire l'expression XPath.
Exercice: Films
On veut extraire des données du fichier Film.xml (le fichier est déjà dans le dossier tmexpath), dont la DTD est donnée ci-dessous:
<!ELEMENT FILMS (FILM*)>
<!ELEMENT FILM (TITRE, GENRE, PAYS, MES,ROLES,RESUME) >
<!ATTLIST FILM Annee CDATA#REQUIRED>
<!ELEMENT TITRE (#PCDATA) >
<!ELEMENT GENRE (#PCDATA) >
<!ELEMENT PAYS (#PCDATA) >
<!ELEMENT MES EMPTY >
<!ATTLIST MES idref IDREF #REQUIRED>
<!ELEMENT ROLES (ROLE*) >
<!ELEMENT ROLE (PRENOM,NOM,INTITULE) >
<!ELEMENT PRENOM (#PCDATA) >
<!ELEMENT NOM (#PCDATA) >
<!ELEMENT INTITULE (#PCDATA) >
<!ELEMENT RESUME (#PCDATA) >
Ecrivez les requêtes XPath permettant de récupérer:
- Tous les titres de films.
- Les titres des films d'horreur.
- Le résumé d'Alien.
- Titre des films avec James Stewart.
- Titre des films avec James Stewart et Kim Novak.
- Quels films ont un résumé ?
- Quels films n'ont pas de résumé ?
- Quel est l'identifiant du metteur en scène du film Vertigo?
- Quel rôle joue Harvey Keitel dans le film Reservoir dogs ?
- Quel est le dernier film du document ?
- Quel est le titre du film qui précède immédiatement le film Shining (dans l'ordre du document).
Qui a mis en scène le film Eyes Wide Shut ?- Donnez les titres des films qui contiennent un 'V' (utiliser la fonction contains)
- Donner les noeuds qui ont exactement trois descendants (utiliser la fonction count).
- Donner les noeuds dont le nom contient la chaîne 'TU' (fonction name)
Exercice: Guide touristique
Reprendre les questions Xpath de l'exercice 1 du TD avec les deux fichiers xml fournis (restaurant.xml et restaurant.dtd). On adaptera les valeurs des champs afin d'obtenir un résultat non vide sur les fichiers fournis.
Exercice: Atlas
Reprendre les questions Xpath de l'exercice 2 du TD avec les deux fichiers xml fournis (atlas.xml et atlas.xml). On adaptera les valeurs des champs afin d'obtenir un résultat non vide sur les fichiers fournis.