====== TP XQuery ======
===== Environnement de travail =====
Le TP se déroulera dans un petit atelier XQuery. Pour le lancer, cliquer sur le lien suivant: [[http://liris.cnrs.fr/~ecoquery/files/atelier-xquery.jar|Interface XSLT/XQuery]]. Le cas échéant lancer le fichier la commandejava -jar atelier-xquery.jar
Cet atelier contient un ensemble de documents xml qui peuvent être chargés en double-cliquant dans le petit cadre de gauche.
Le cours sur XQuery n'ayant pas eu lieu dans son intégralité, il est demandé de commencer par lire ce [[:enseignement:bdav:xquery#xquery|petit résumé]].
Voici quelques liens complémentaires sur XPath et XQuery:
* La [[http://www.w3.org/TR/xpath20/|définition de XPath]] par le W3C.
* La [[http://www.w3.org/TR/xquery/|définition de XQuery]] par le W3C.
* Les [[http://www.w3.org/TR/xpath-functions/|fonctions standard de XQuery/XPath]].
* La [[http://www.w3.org/TR/html4/|spécification du html]], qui peut être utile pour certaines questions.
===== Questions =====
Avant de répondre, consulter la DTD pour la réponse attendue, donnée [[#DTDs|après la liste de questions]].
- Donner la liste des titres de tomes dont le numéro est inférieur ou égal à 3 (Document: Collection).
- Donner la liste des titres des tomes de la série "Lanfeust de Troy" (Document: Collection).
- Donner la liste des titres de livres (Document: Ventes livres). Attention à la balise ''title'' qui devient ''titre''.
- Donner la liste des personnages (SPEAKER) de la pièce Hamlet (Document Hamlet). Attention à la DTD. On utilisera la fonction ''distinct-values(expr)'' pour éviter les doublons.
- Donner la liste des personnages de la pièce Hamlet qui parlent dans l'acte I (ACT I) (Document Hamlet).
- Donner, pour chaque personnage, le nombre de lignes dites par ce personnage dans la pièce (Document Hamlet).
- Donner la liste des personnages dont la description via les éléments PERSONA est différente de la dénomination via SPEAKER (Document Hamlet).
- Ecrire une fonction prenant un film du document et renvoyant sa représentation via un élément ''film'' conforme à la 3eme DTD ci-dessous. Utiliser cette fonction pour transformer le premier film du document Films.
- Utiliser la fonction précédente pour afficher une liste de films dans un élément ''films''. Cette liste contiendra tous les films dont un des réalisateur a joué comme acteur (Document Films).
- Faire une présentation HTML du document Films. On triera les films par année, puis par titre. Le code suivant donne le résultat attendu si on se restreint aux films //Wall-E// et //Gran Torino//:
Des films
Gran Torino (2008)
Realisateur(s)
Acteur(s)/Actrice(s)
- Clint Eastwood
- Bee Vang
- Christopher Carley
Wall-E (2008)
Realisateur(s)
Scenariste(s)
==== DTDs ====
Questions 1, 2, 3:
Questions 4, 5, 6, 7:
Questions 8, 9: