Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
enseignement:tp:bd:xquery:2012 [2012/09/30 17:56]
ecoquery [Environnement de travail]
enseignement:tp:bd:xquery:2012 [2013/09/16 07:34] (Version actuelle)
ecoquery
Ligne 1: Ligne 1:
 ====== TP XQuery ====== ====== TP XQuery ======
- 
-===== Modalités de rendu ===== 
- 
-  * [[http://spiralconnect.univ-lyon1.fr/spiral/spiral.html#/activities/goto_folder/1784208|Page de dépôt sur Spiral]] pour rendre le TP. 
- 
-Ce TP est à réaliser seul ou en binôme (trinômes interdits). On téléchargera le fichier de réponses reponses-tp-xquery.txt. On complétera le fichier et on le renommera en ''Groupe_Nom1_Prenom1_Nom2_Prenom2_reponses-tp-xquery.txt''. Groupe est le numéro groupe de TD de M1, Nom1_Prenom1 est le nom et le prénom du premier membre du binôme, Nom2_Prenom2 est le nom et le prénom du second membre du binôme((le cas échéant)). 
-On déposera ce fichier [[http://spiralconnect.univ-lyon1.fr/spiral/spiral.html#/activities/goto_folder/1784208|sur Spiral]] le dimanche 7 octobre 2012 au plus tard. 
  
 ===== Environnement de travail ===== ===== Environnement de travail =====
Ligne 13: Ligne 6:
  
 Cet atelier contient un ensemble de documents xml qui peuvent être chargés en double-cliquant dans le petit cadre de gauche. 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 3<sup>eme</sup> 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//:<code xml><?xml version="1.0" encoding="UTF-8"?>
 +<html>
 +   <head>
 +      <title>Des films</title>
 +   </head>
 +   <body>
 +      <h1>Gran Torino (2008)</h1>
 +      <h2>Realisateur(s)</h2>
 +      <ul>
 +         <li>Clint Eastwood</li>
 +      </ul>
 +      <h2>Acteur(s)/Actrice(s)</h2>
 +      <ul>
 +         <li>Clint Eastwood</li>
 +         <li>Bee Vang</li>
 +         <li>Christopher Carley</li>
 +      </ul>
 +      <h1>Wall-E (2008)</h1>
 +      <h2>Realisateur(s)</h2>
 +      <ul>
 +         <li>Andrew Stanton</li>
 +      </ul>
 +      <h2>Scenariste(s)</h2>
 +      <ul>
 +         <li>Andrew Stanton</li>
 +      </ul>
 +   </body>
 +</html></code>
 +
 +==== DTDs ====
 +
 +Questions 1, 2, 3:
 +<code xml><!ELEMENT titres (titre*)>
 +<!ELEMENT titre (#PCDATA)></code>
 +
 +Questions 4, 5, 6, 7: 
 +<code xml><!ELEMENT personnages (personnage*)>
 +<!ELEMENT personnage (#PCDATA)>
 +<!ATTLIST personnage nb_lignes CDATA #IMPLIED></code>
 +
 +Questions 8, 9:
 +<code xml><!ELEMENT film (titre,annee?,realisateur*,scenariste*,acteur*)>
 +<!ELEMENT titre (#PCDATA)>
 +<!ELEMENT annee (#PCDATA)>
 +<!ELEMENT realisateur (#PCDATA)>
 +<!ELEMENT scenariste (#PCDATA)>
 +<!ELEMENT acteur (#PCDATA)>
 +<!ELEMENT films (film*)></code>