base de données xml native - Ivan Madjarov

publicité
BASE DE DONNÉES
XML NATIVE
Ivan Madjarov
NXDB - eXist - XQuery
IvMad, 2011-2013
1. eXist
eXist-db Open Source Native
XML Database
Ce cours s’inspire, reprend, modifie et enrichi des supports disponibles sur Internet
2
NXDB - eXist - XQuery
IvMad, 2011-2013
3
Introduction au BDXN
• BDXN est un SGBD conçu
pour XML:
XML
Requête
XML
• Stocke les documents en entiers
sans les décomposer en
élément, ni transformation ou
mapping
• Utilise des techniques
d'indexation d'arbres
spécifiques.
• Un modèle B+Tree
• Utilisation d'un thésaurus au
chargement
• ensemble de termes reliés
• liste des mots importants
• synonymes et préférés
NXDB - eXist - XQuery
Recherche
XML
Stockage
XML
Noyau SGBD
Concurrence, Fiabilité
Forêts
d'arbres
Index
3
IvMad, 2011-2013
Introduction au eXist BDXN
• Le SGBD-XML eXist est un système open-source sous licence GNU.
• eXist est utilisable sur toutes les plates-formes:
• Windows, Linux ou MacOS
• eXist exploite de nombreux standard tels que:
• XQuery, XSLT, XPath, XUpdate, etc.
• eXist est facile à installer.
• eXist supporte l'accès concurrent.
• eXist optimise l'accès par une indexation automatique des données.
• eXist propose une documentation riche à l'adresse suivante:
http://www.exist-db.org/exist/documentation.xml
• eXist se déploie comme une application Web sous le contrôle d'un
moteur de Servlets : Tomcat, Jetty ou autre.
4
NXDB - eXist - XQuery
IvMad, 2011-2013
5
IvMad, 2011-2013
6
La connexion eXist
NXDB - eXist - XQuery
Compatibilité
• eXist-db support plusieurs technologies Web et ainsi peut être vue
comme une plateforme de développement et de déploiement
d'applications Web :
• Langages de requêtes :
• XQuery 1.0
• XPath 2.0
• Transformation et publication :
• XSLT 1.0 (avec Apache Xalan) ou XSLT 2.0 (avec Saxon)
• HTTP interfaces:
• REST, WebDAV, SOAP, XMLRPC, Atom Publishing Protocol
• Outils spécifique à la BDXN :
• XMLDB,
• XUpdate,
• XQuery update extensions
NXDB - eXist - XQuery
IvMad, 2011-2013
7
La prise en main
• eXist-db est une BD en XML.
• L’outil eXist-db est utilisé pour maintenir une BD en XML au travers
d’une interface Web.
• L'interface Web permet notamment de :
• intégrer des documents dans leur format d'origine (natif) XML
• interroger la base données (XQuery)
• modifier la base de données (XQuery Update)
• appliquer des feuilles de style aux documents produits (XSLT).
• APIs Java sont disponibles pour un accès programmé et interfacé par
une application client-serveur (TCP).
• Les opérations disponibles par l'interface Web sont également accessibles
au travers l'API Java.
NXDB - eXist - XQuery
IvMad, 2011-2013
8
La collection XML
• La base de données eXist-db stocke les données natives XML sous la
forme :
• Collections comme un ensemble de documents XML qui se reportent au
même schéma.
• Arborescence de répertoires récursifs pour une meilleurs flexibilité de
stockage et de recherche.
• Un schéma identique ou commun n'est pas une obligation.
NXDB - eXist - XQuery
IvMad, 2011-2013
9
Service Java pour eXist
eXist peut être interrogée par une application Java en utilisant la
méthode d'accès XML-RPC ou un service Web basé protocole SOAP.
NXDB - eXist - XQuery
IvMad, 2011-2013
10
Méthodologie d'un TP avec eXist
• eXist sera utilisé pour mettre en place un site Web avec une base de
données XML native afin de pouvoir l'administré en:
• intégrant des documents XML,
• interrogeant la base données (Xquery),
• modifiant la base de données (XQuery Update),
• appliquant des feuilles de style aux documents produits (XSLT)
• eXist propose une implémentation de XQuery, accompagnée de
nombreuses fonctionnalités et d'interfaces Web.
• eXist est entièrement développé en Java, il est possible d'utiliser ses
librairies dans des programmes Java pour manipuler la BD.
• Pour simplifier l'installation du produit une archive intégrant les
composants nécessaires au TP est mise en disposition pour être
déployé dans un espace utilisateur.
• http://139.124.26.245/ic4/tomcat-exist.rar
NXDB - eXist - XQuery
IvMad, 2011-2013
11
Déploiement de eXist
• Dans un premier temps il faut déployer l'archive Tomcat-eXist.rar avec
le moteur de Servlets Tomcat et la BD eXist en tant qu'application Web.
• L'archive est à décompresser sur un disque dur ou une clé USB dans le
répertoire racine, exemple: c:\tomcat ou e:\tomcat
• Le fichier script catalina_start.bat lance le serveur d'application tomcat
avec activation du SGBD eXist.
• Le fichier script catalina_stop.bat arrête les serveurs.
NXDB - eXist - XQuery
IvMad, 2011-2013
Le démarrage catalina_start.bat
12
NXDB - eXist - XQuery
IvMad, 2011-2013
13
Le serveur Tomcat sur port 8080
NXDB - eXist - XQuery
IvMad, 2011-2013
14
Déploiement de eXist
• eXist est déployé comme une application Web par le moteur de
Servlets Tomcat à son lancement (fichier .war):
NXDB - eXist - XQuery
IvMad, 2011-2013
15
Le serveur SGBD eXist
NXDB - eXist - XQuery
IvMad, 2011-2013
Connexion aux collections
16
NXDB - eXist - XQuery
IvMad, 2011-2013
17
IvMad, 2011-2013
18
Fonctions de gestion
NXDB - eXist - XQuery
Collections XML
NXDB - eXist - XQuery
IvMad, 2011-2013
19
Manipulation d'une collections XML
NXDB - eXist - XQuery
IvMad, 2011-2013
Créer une collection XML
20
NXDB - eXist - XQuery
IvMad, 2011-2013
21
Une bibliothèque en XML
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"
href="bibliotheque.xsl"?>
<bibliotheque>
<livre>
<titre>1984</titre>
<auteur>
<nom>Orwell</nom>
<prenom>George</prenom>
</auteur>
<ref>Fiction-O-1</ref>
</livre>
<livre>
<titre>N ou M</titre>
<auteur>
<nom>Christie</nom>
<prenom>Agatha</prenom>
</auteur>
<ref>Policier-C-15</ref>
</livre>
NXDB - eXist - XQuery
<livre>
<titre>Le cheval pale</titre>
<auteur>
<nom>Christie</nom>
<prenom>Agatha</prenom>
</auteur>
<ref>Policier-C-17</ref>
</livre>
<livre>
<titre>Le chien des Baskerville</titre>
<auteur>
<nom>Conan Doyle</nom>
<prenom>Arthur</prenom>
</auteur>
<ref>Policier-D-3</ref>
</livre>
<livre>
<titre>Dune</titre>
<auteur>
<nom>Herbert</nom>
<prenom>Franck</prenom>
</auteur>
<ref>Fiction-H-1</ref>
</livre>
</bibliotheque>
IvMad, 2011-2013
Présenter une bibliothèque en XML
22
NXDB - eXist - XQuery
IvMad, 2011-2013
23
Visualiser une bibliothèque en XML
NXDB - eXist - XQuery
IvMad, 2011-2013
Activer le client en JavaWebStart
24
NXDB - eXist - XQuery
IvMad, 2011-2013
25
Lancer le fichier exist.jnlp
NXDB - eXist - XQuery
IvMad, 2011-2013
Autoriser l'exécution du fichier
26
NXDB - eXist - XQuery
IvMad, 2011-2013
27
Connexion à la BD
• S'identifier en tant que admin avec mot de passe guest
NXDB - eXist - XQuery
IvMad, 2011-2013
28
Choisir une collection dans la BD
Interface de
requête
XQuery
NXDB - eXist - XQuery
IvMad, 2011-2013
29
Lister une collection de la BD
NXDB - eXist - XQuery
IvMad, 2011-2013
Activer l'interface XQuery
Ouvrir une
collection
30
NXDB - eXist - XQuery
IvMad, 2011-2013
31
Lancer une requête XQuery
Lancer la requête
Écrire la requête
XQuery: afficher les noms des
auteurs présents dans la bib
La collection ouverte
Résultat de la requête
NXDB - eXist - XQuery
IvMad, 2011-2013
TP - http://localhost:8080/site
32
NXDB - eXist - XQuery
IvMad, 2011-2013
33
XQuery en bref
• XQuery est un langage de requête pour faire des recherches dans des
•
•
•
•
•
•
collections de données XML.
XQuery est un langage pour l'extraction des elements et d'attributs
d'un document XML ou une collection XML.
XQuery est la même chose pour XML que l'est SQL pour les bases de
données relationnelles.
XQuery est basé essentiellement sur des
expressions XPath
XQuery existe chez la plupart des BD XML
XQuery est une recommandation W3C
La figure ci-contre montre le convergence
et l'implication des différentes
technologies XML.
NXDB - eXist - XQuery
IvMad, 2011-2013
34
XQuery en bref
• XQuery :
• Langage pour interroger les données XML (arbres, DOM)
• Requêtes pour interroger et extraire des éléments de l'arbre.
• Moins maniable pour transformer l'arbre, plus souple que XSL qui est plus une
transformation d’arbre XML, mais utilisant tous les deux les expressions XPath
• Semblable à SQL pour les B.D., sauf que SQL :
• travaille sur des bases relationnelles :
• données fortement en relation dans des tables
• base ses requêtes sur la recherche de ces relations fortes
Tables
Arbre
Table: Entité-Association
avec relations
Arbre: Dépendance
hiérarchique
NXDB - eXist - XQuery
IvMad, 2011-2013
35
XQuery en bref
• Les données XML sont différentes:
• Les données relationnelles (SQL) sont denses
• Chaque rangée a une valeur dans chaque colonne
• Problème des valeurs nulles
• Document orienté données: une fiche de paye; carnet d'adresses
• Ce n’est pas le cas de XML qui peut avoir :
• des éléments vides
• des éléments absents
• C’est un degré de liberté supérieur pour XML
• Document orienté contenu: un cours d'informatique; chapitre d'un livre
• Les documents XML porte pour cette raison la nomination données
semi-structurées
NXDB - eXist - XQuery
IvMad, 2011-2013
XQuery et XPath
• Xpath
• XPath permet d'exprimer des requêtes de filtrage sur des arbres
• Beaucoup de contraintes. Il n'est pas possible :
• de créer des nœuds dans l'arbre
• de construire des arbres/des documents nouveaux
• de trier des nœuds, ...
• Il est difficile d'exprimer des jointures (pas de variables)
• XQuery
• XQuery est un langage de requêtes complet qui permet :
• de créer des nœuds et de construire des arbres nouveaux
• de définir et d'instancier des variables
• de définir des fonctions, ...
36
NXDB - eXist - XQuery
IvMad, 2011-2013
37
Format d’une requête XQuery
• Une requête XQuery est une composition d’expressions
• Chaque expression a une valeur ou retourne une erreur
• Forme 1 : Expressions simples :
• Valeurs atomiques :
• 46, ‘‘Salut’’
• Valeurs construites :
• true()
• Forme 2 : Expressions complexes :
• Expressions de chemins (XPath)
• FILM//ACTEUR
• Expressions FLWR
• For-Let-Where-Return
• Tests
• if-then-return-else-return
NXDB - eXist - XQuery
IvMad, 2011-2013
Expressions de chemins XPath
Selector
Selected nodes
/
Racine du document
//
Un branchement
*
Tout élément
name
Elément ou nom de balise
@*
Tout attribut
@name
Un attribut ou nom de balise
text()
Un nœud de texte
processing-instruction(‘name’)
Nom d'instruction
comment()
Un nœud de commentaire
node()
Un nœud
id(‘value’)
Elément ou valeur d'élément
38
NXDB - eXist - XQuery
IvMad, 2011-2013
39
Format d’une requête XQuery
<biblio>
<book category="COOKING">
<title>Everyday Italian</title>
<author>Giada De Laurentiis
</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter
</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML
</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</biblio>
Expressions régulières
Liste de tous les auteurs
doc("data/books.xml")//book/author
Auteur du premier livre
doc("data/books.xml")//book[1]/author
Liste de tous les auteurs et prix
doc("data/books.xml")// book/(author,
price)
ou
doc("data/books.xml")/(descendant::aut
hor,descendant::price)
Accès via un attribut:
Liste des prix des livres qui ont un
attribut 'title'
doc("data/books.xml")//book/(@title
union price)
NXDB - eXist - XQuery
IvMad, 2011-2013
Une collection XML
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
40
NXDB - eXist - XQuery
IvMad, 2011-2013
41
Sélectionner un nœud XML
• Quelles fonctions pour sélectionner un nœud du fichier XML
"books.xml"?
• XQuery se sert de fonctions pour l'extraction des parties d'un document
XML
• La fonction "doc()" ouvre un fichier XML:
• doc("books.xml")
• Les expressions:
• XQuery utilise les expressions Xpath pour naviguer dans un document XML.
• L'expression suivante est utilisée pour sélectionner les éléments du titre dans le
document "books.xml"
• doc("books.xml")/bookstore/book/title
• /bookstore sélectionne les éléments bookstore
• /book sélectionne tous les éléments book qui se trouvent sous l'élément bookstore
• /title sélectionne tous les éléments dans chaque éléments book
NXDB - eXist - XQuery
IvMad, 2011-2013
42
Lancer la requête XQuery
Le bouton qui
soumet la
requête XQuery
Rédiger la
requête
XQuery
Le résultat
de la requête
XQuery
NXDB - eXist - XQuery
IvMad, 2011-2013
43
Lancer la requête XQuery
Le bouton qui
soumet la
requête XQuery
La requête
XQuery qui
affiche le titre
et le pays
d'origine du
film à travers
un "union"
Le résultat
de la requête
XQuery
NXDB - eXist - XQuery
IvMad, 2011-2013
Filtrer la requête XQuery
• XQuery utilise des prédicats
afin de limiter (filtrer) la
sélection dans un
document XML :
• Sélectionner tous les
éléments book dans
bookstore dont le
prix est inférieur à 30
en se limitant juste à
l'affichage du titre
doc("books.xml")
/bookstore
/book[price<30]
/title
44
NXDB - eXist - XQuery
IvMad, 2011-2013
45
Filtrer la requête XQuery
• Le langage de requête XQuery défini FLWOR ('flower') comme une
expression qui prend en charge l'itération et la liaison des variables aux
résultats intermédiaires. FLWOR est l'acronyme de: FOR, LET,
WHERE, ORDER BY, RETURN.
• L'expression FLWOR qui suit produira le même résultat que celle
présentée au transparent précèdent.
for $x in doc("books.xml")/bookstore/book
where $x/price>30
return $x/title
NXDB - eXist - XQuery
IvMad, 2011-2013
46
Filtrer la requête XQuery
• Avec le format FLWOR il est possible d'avoir un résultat trié:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
• La requête utilise l'opérateur for pour sélectionner tous les book contenu dans
bookstore dans une variable nommé $x.
• La clause where selecte les éléments de book dont l'élément price contient une
valeur supérieur à 30.
• La clause order by clause définie l'ordre de sortie de l'élément title.
• La clause return spécifie le contenu du retour, c.à.d. le résultat.
NXDB - eXist - XQuery
IvMad, 2011-2013
47
Filtrer la requête XQuery
• L'opérateur alternative "if-then-else":
for $x in doc("books.xml")/bookstore/book
return if ($x/@category="CHILDREN")
then <child>{data($x/title)}</child>
else <adult>{data($x/title)}</adult>
Dans /bookstore/book on cherche à détacher /category contenant l'étiquette
"children" pour retourner le résultat balisé en <child>, sinon balisé en
<adult>
NXDB - eXist - XQuery
IvMad, 2011-2013
Extraire une partie de cours
Requête Xquery qui extrait le
schéma SVG d'un cours info
(balise <para> dont l'attribut "type"
contient la chaine "Schéma"
48
NXDB - eXist - XQuery
IvMad, 2011-2013
49
Quelques requêtes XQuery
• Lister le nom des restaurants de Marseille (Selection)
FOR $R IN collection("Restaurants")/Restaurant WHERE $R/Adresse/Ville =
"Marseille" RETURN {$R/Nom}
• Lister le nom des restaurants avec téléphone dans les hôtels sur la rue
d'Italie à Marseille (Jointure):
FOR $R IN collection("Restaurants")/Restaurant, $H IN
collection("Hotels")/Hotel WHERE $H//Rue = $R//Rue AND $H//Nom = "rue
d'Italie" RETURN <Result> {$R/Nom}{$R/Télépone} </Result>
• Construire une liste de restaurants par Ville (Restructuration d'arbre)
FOR $c IN distinct(collection(“Restaurants”)/Restaurant//Ville) RETURN
<Ville>{$c}</Ville><Restaurants> FOR $r IN
collection(“Restaurants”)/Restaurant WHERE $r//Ville = $c RETURN {$r}
<Restaurants>
• Adresses des hôtels dans des villes ayant des restaurants trois étoiles
(Imbrication)
FOR $h IN collection("Hotels")/Hotel WHERE $h/Adresse/Ville IN FOR $r IN
collection("Restaurants")/Restaurant WHERE $r/@categorie = "***" RETURN
{$r/Adresse/Ville/text()} RETURN {$h/Adresse}
NXDB - eXist - XQuery
IvMad, 2011-2013
50
Quelques requêtes XQuery
• Combien de restaurants y-a-t-il en collection ? (Agrégat simple)
LET $R := collection("Restaurants")/Restaurant RETURN <NombreRestaurant >
count ($R) </NombreRestaurant>
• Lister le nom de chaque restaurant avec le prix moyens des menus
proposés (Agrégat partitionné)
FOR $r IN collection("Restaurants")//Restaurant LET $a :=
avg(collection("Restaurants")//Restaurant = $r]//Menu/@Prix) RETURN <resultat>
{$r/Nom} <avgPrix>{$a}</avgPrix> </resultat>
• Lister les bons restaurants de Paris (recherche textuelle)
FOR $r IN collection("Restaurants")//Restaurant WHERE CONTAINS ($r/Comments,
"Bon") OR CONTAINS ($r/Comments, "Excellent") AND $r/Adresse/Ville = "Paris"
RETURN $r/Nom
• Lister les bons restaurants de Paris par ordre alphabétique (ordre et
désordre)
FOR $r IN unordered(collection("Restaurants")//Restaurant) WHERE $r/Comments
CONTAINS ("Excellent", "Good") AND $r/Adresse/Ville = "Paris" RETURN $r/Nom
SORTBY ($r/Nom DESCENDING)
NXDB - eXist - XQuery
IvMad, 2011-2013
51
Exercices eXist par XQuery
• Exercice 1. requêtes simples sur Films.xml
• Affichez tous les titres de films
• Affichez tous les titres de films triés par ordre alphabétique
• Les titres des films d'action
• Le résumé de Titanic
• Donner le nombre de films dans la collection
• Titre des films avec James Stewart et Kim Novak
• Afficher le titre et le résumé des films
• Donnez les titres des films qui contiennent un 'A'
(utiliser la fonction contains())
• Afficher les noms des acteurs principaux dans Titanic
• Quels rôles jouent les acteurs K. Winslet et L. DiCaprio dans le film
Titanic
NXDB - eXist - XQuery
IvMad, 2011-2013
eXist avec Java XML:DB
• On utilise L'API XML:DB dont la description est disponible à
l'adresse: http://exist-db.org/api/
• XML:DB API permet:
• Gestion de la base et des collections
• Stockage et récupération des ressources
• Requêtes sur toute ou une partie de l’arborescence
• Il existe des extensions qui permettent entre autre :
• La gestion des utilisateurs
• La gestion de plusieurs bases de données en parallèle, avec chacune une
configuration propre
• Pour plus d’informations:
http://exist-db.org/exist/devguide_xmldb.xml
52
NXDB - eXist - XQuery
IvMad, 2011-2013
53
eXist et XML:DB avec Eclipse
• Créer un nouveau projet Java sous Eclipse
NXDB - eXist - XQuery
IvMad, 2011-2013
eXist et XML:DB avec Eclipse
Donner un nom au
projet et passer à la
page suivante
54
NXDB - eXist - XQuery
IvMad, 2011-2013
55
eXist et XML:DB avec Eclipse
Ajouter les jar qui
font le lien avec
l'API XML:DB de
eXist et sont
nécessaires à la
compilation et à
l'exécution de
l'application
NXDB - eXist - XQuery
IvMad, 2011-2013
eXist et XML:DB avec Eclipse
Sélectionner les jar et les ajouter par le bouton "Add external JARs"
56
NXDB - eXist - XQuery
IvMad, 2011-2013
57
Accès à une collection de la BD
• Pour accéder à une collection, il faut se connecter au driver de la base
de données eXist: org.exist.xmldb.DatabaseImpl
• Il est enregistré dans le programme avec le DatabaseManager
• Pour extraire une collection à partir de la base de données eXist on fait
appel à la méthode statique DatabaseManager.getCollection ( )
• L'identification d'une collection se fait par son URI complet dont le
format est :
• xmldb : [DATABASE-ID] :// [HOST-ADDRESS] /db/ collection
• DATABASE-ID est "eXist",
• HOST-ADDRESS est localhost:8080 si nous sommes en local et si le port utilisé
est 8080
• Si on utilise une machine distante il faut préciser son adresse IP.
• Par exemple: http://139.124.26.245:8080
NXDB - eXist - XQuery
IvMad, 2011-2013
Créer une classe dans le projet
58
NXDB - eXist - XQuery
IvMad, 2011-2013
59
eXist et XML:DB avec Eclipse
NXDB - eXist - XQuery
IvMad, 2011-2013
60
Requête XQuery avec Java
• Pour interroger la BD on peut utiliser deux services:
• XPathQueryService
• XQueryService
• L'API XML:DB de eXist défini différents types de services:
• La méthode getService de la classe Collection fait appel au service
approprié
• Pour l'exécution d'une requête la méthode service.query(xpath)
est appelée. Elle retourne un objet de type ResourceSet qui contient
les ressources trouvés par la requête.
• ResourceSet.getIterator() est le conteneur des ressources.
• Chaque ressource contient un fragment de document ou une valeur
sélectionner par l'expression Xpath ou XQuery.
NXDB - eXist - XQuery
IvMad, 2011-2013
61
Requête XQuery avec Java
NXDB - eXist - XQuery
IvMad, 2011-2013
62
Requête XQuery avec Java
• Connexion à la BD:
String URI = "xmldb:exist://localhost:8080/exist/xmlrpc"
final String driver = "org.exist.xmldb.DatabaseImpl";
Class cl = Class.forName(driver);
Database database = (Database) cl.newInstance();
database.setProperty("create-database", "true");
DatabaseManager.registerDatabase(database);
Le pilote
XML:DB
• Constitution et envoi de la requête XQuery:
col = DatabaseManager.getCollection(URI + "books");
XQueryService xqs = (XQueryService)
col.getService("XQueryService","1.0");
xqs.setProperty("indent", "yes");
CompiledExpression compiled =
xqs.compile("/bookstore/book/author");
• Récupération du résultat:
ResourceSet result = xqs.execute(compiled);
ResourceIterator i = result.getIterator();
La collection
à interroger
Adresse de la
collection
Le requête
XQuery
NXDB - eXist - XQuery
IvMad, 2011-2013
63
Requête XQuery avec Eclipse
NXDB - eXist - XQuery
IvMad, 2011-2013
64
Ecrire un fichier dans une collection
Deux arguments à la ligne de
commande ou fixes en programme
Recherche de la collection
Création d'une nouvelle
ressource
NXDB - eXist - XQuery
IvMad, 2011-2013
65
Ecrire un fichier dans une collection
NXDB - eXist - XQuery
IvMad, 2011-2013
66
Exercices de requêtes avec Java
• Affichez tous les titres de films
• Afficher le titre du film avec un auteur choisi
• Afficher le titre du livre de la collection 'biblio' dont le nom de l'auteur
est 'Scholl'
• Afficher les titres des films ordonnés par genre
• Afficher la collection 'films'
• Afficher la collection 'biblio'
• Afficher le titre des films avec 'Kate Winslet' et 'Leonardo DiCaprio'
• Composer la requête XQuery qui répond à la question: Quel rôle joue
'Kate Winslet' dans le film 'Titanic'.
• Afficher le 'Résumé' du film avec 'John Travolta'
Remarque: Effectuez les requêtes XQuery par l'interface XQuery de eXist et par
un programme Java
NXDB - eXist - XQuery
IvMad, 2011-2013
Accès aux supports du cours
• Les transparents du cours sont accessibles à l'adresse:
http://ivmad.free.fr/ic4/Cours-IvMad-eXist-M2-2013.pdf
ou
http://139.124.26.245/ic4/Cours-IvMad-eXist-M2-2013.pdf
• Le support du TP: Tomcat-eXist-Exercices est accessible à l'adresse:
http://ivmad.free.fr/ic4/tomcat-exist.rar
ou
http://139.124.26.245/ic4/tomcat-exist.rar
• Adresse de contact: [email protected]
67
Téléchargement