TP 5: XQuery

W3C: World Wide Web ConsortiumXML: eXtended Markup Language

1. Installation d'eXist

Afin d’installer l’outil, nous utiliserons la distribution eXist-db-setup-4.0.0.jar disponible depuis la page des téléchargements (https://bintray.com/existdb/releases/exist/4.0.0/view).

Une fois le fichier téléchargé, lancer l'installation à l'aide de la commande:
java -jar eXist-setup-1.4.0-rev10440.jar​
Durant le processus d'installation:
  • Etape 1: Cliquer sur le bouton "Next"
  • Etape 2: Choisir un répertoire d'installation puis cliquer sur le bouton "Next"
  • Etape 3: Choisir un répertoire pour les données d'eXist (vous pouvez conserver la valeur par défaut) puis cliquer sur le bouton "Next"
  • Etape 4: Choisir un mot de passe administrateur (penser à le noter), laisser les autres paramètres par défaut puis cliquer sur le bouton "Next"
  • Etape 5: Laisser les packages sélectionnés par défaut et cliquer sur le bouton "Next"
  • Etape 6: Attendre la fin des opérations d'installation et cliquer sur "Next"
  • Etape 7: Attendre la fin de l'initialisation et cliquer sur le bouton "Next"
  • Etape 8: Laisser les choix de création de raccourcis par défaut et cliquer sur le bouton "Next"
  • Etape 9: Cliquer sur le bouton "Quit"
Une fois l'installation terminée, le démarrage d'eXist est réalisé en lançant sous linux la commande 
bin/startup.sh​
ou sous windows la commande
bin\startup.bat​
Ces commandes doivent être entrées depuis le répertoire dans lequel eXist a été installé.

Une fois eXist démarré, le serveur est accessible à l'adresse http://localhost:8080/exist/apps/dashboard/index.html

2. Interface Web de eXist

L'interface web du serveur permet de gérer des collections de documents XML et de traiter des requêtes XQuery. La première étape avant d'utiliser le serveur et de s'identifier en utilisant le bouton "Login" en haut à gauche de la page. Les identifiants de connexion sont "admin" pour l'utilisateur et le mot de passe spécifié lors de l'installation.

2.1. Création d'une collection de documents XML

Afin de créer une collection de documents XML, télécharger les fichiers films.xml et artistes.xml.

Depuis l'interface d'eXist (http://localhost:8080/exist/apps/dashboard/index.html) et une fois identifié, cliquer sur le bouton "Collections" Une nouvelle fenêtre s'ouvre. Depuis celle-ci:
  • Cliquer sur le bouton "Create collection"
  • Donner le nom "Cinéma" à la collection puis cliquer sur le bouton "Ok"
  • De retour dans la liste des collections, fermer la fenêtre
De retour dans l'interface principale, cliquer sur le bouton "eXide - XQuery IDE"
  • Dans la nouvelle interface, ouvrir le menu "File" puis choisir l'item "Manage"
  • Dans la fenêtre qui vient de s'ouvrir, double cliquer sur la collection "Cinema". Attention à ne pas cliquer dans la colonne "Name" sinon la collection ne s'active pas
  • Une fois la collection sélectionnée, cliquer sur le bouton "Upload files" (petit nuage noir avec une flèche blanche)
  • Dans la nouvelle fenêtre , cliquer à nouveau sur le bouton "Upload files"
  • Depuis l'explorateur de fichier, choisir les fichiers films.xml et artistes.xml téléchargés précédemment
  • De retour dans la fenêtre d'upload, cliquer sur le bouton "Done"
  • Les fichiers chargés doivent apparaitre dans la collection.
  • Fermer la fenêtre "DB Manager"
  • Fermer l'onglet eXide

3. Requêtes XQuery

Les requêtes XQuery peuvent être rédigées et évaluées depuis l'interface eXide, disponible en cliquant sur le bouton "eXide - XQuery IDE" depuis l'interface principale d'eXist (http://localhost:8080/exist/apps/dashboard/index.html).

Afin de tester une première requête XQuery, depuis l'interface eXide, copier le code suivant dans l'onglet "new-document-1"
xquery version "3.1";
doc("/db/Cinema/artistes.xml")/ARTISTES​
Cliquer ensuite sur le bouton "Eval"

Le résultat de la requête affiche le contenu de l'élément ARTISTES du document artistes.xml présent dans la collection "Cinema".

Afin de vous aider, vous trouverez de précieuses informations sur les sites suivant:
Utiliser eXist afin de rédiger et tester les requêtes suivantes:
  1. nom et prénom des acteurs du film "Blade Runner".
    L’élément résultat contiendra un élément acteur pour chacune de ces informations présentées sous forme d’éléments ;
  2. liste des titres de film et leurs années de sortie (en attribut) ;
  3. titres de films triés selon leurs dates de sorties par ordre décroissant et par ordre alphabétique selon le titre pour ceux sortis la même année ;
  4. titres des films d’action, nom du premier rôle et nom du metteur en scène ;
  5. titre des films et noms de leurs réalisateurs si les réalisateurs sont aussi acteurs ;
  6. nombre de films sortis avant 1990 et sortis après 1990 ;
  7. tous les films et les informations associés mais sans les résumés ;
  8. tous les films et les informations associés mais sans les résumés et sans les rôles ;
  9. titre des films où ont jouée ensemble Harrison Ford et Rutger Hauer ;
  10. titres des films triés par genre (précisé en attribut d’un élement TypeFilm) ;
    • Attention : Certains films n’ont pas de genre connu. Dans ce cas, ne pas afficher de type.
  11. les rôles joués par John Travolta dans ses films dont vous préciserez le titre et l’année ;
  12. le metteur en scène du film Alien. Vous créerez un élément réalisateur qui contiendra les nom et prénom du réalisateur ;
  13. la liste des réalisateurs impliqués dans au moins 1 film (sans doublon) ;
  14. la liste des acteurs, triée par ordre alphabétique (nom et prénom), avec la liste des films dans lesquels il a joué ;
  15. titres des films dans lesquels a joué le même couple d’acteurs (construire une séquence de couples d’acteurs, pour chaque couple construire la séquence de films auxquels ils ont participé, ne conserver que les couples qui ont participer à au moins deux films).