Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
site:enseignement:master:mlbda:tmes:xquery1 [25/10/2017 15:45] hubert ↷ Liens modifiés en raison d'un déplacement. |
site:enseignement:master:mlbda:tmes:xquery1 [22/11/2020 15:04] (Version actuelle) amine [TME XQuery : séance 1] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{indexmenu_n>80}} | {{indexmenu_n>80}} | ||
- | ====== TME XQuery (séance 1) BIS ====== | + | ====== TME XQuery : séance 1 (ancienne page)====== |
===== Documentation XQuery ===== | ===== Documentation XQuery ===== | ||
* Lire les précisions apportées dans [[xqueryfaq]] | * Lire les précisions apportées dans [[xqueryfaq]] | ||
* [[https://www.w3.org/TR/xquery-semantics/|Sémantique d'après la recommandation du W3C]] | * [[https://www.w3.org/TR/xquery-semantics/|Sémantique d'après la recommandation du W3C]] | ||
* [[http://www-bd.lip6.fr/ens/mabd2013/extra/Walmsley_Cours_xquery_xpath.pdf|Tutorial]] | * [[http://www-bd.lip6.fr/ens/mabd2013/extra/Walmsley_Cours_xquery_xpath.pdf|Tutorial]] | ||
+ | * [[https://www.w3.org/TR/xquery-use-cases/#xmp|Use-case XMP]] | ||
^__commande__ ^ __description__ ^ | ^__commande__ ^ __description__ ^ | ||
Ligne 37: | Ligne 37: | ||
return $r | return $r | ||
- | **Remarque** Il est évident que si le résultat de votre requete est un nouvel élément construit par copie d'autres éléments de votre document interrogé, les éléments de ce dernier ne seront pas coloriés. | + | **Remarque 1** Il est évident que si le résultat de votre requete est un nouvel élément construit par copie d'autres éléments de votre document interrogé, les éléments de ce dernier ne seront pas coloriés. |
+ | |||
+ | **Remarque 2** Pour (dé)commenter un paragraphe, sélectionner le paragraphe et saisir Ctrl-k | ||
+ | |||
===== Exercice 1 ===== | ===== Exercice 1 ===== | ||
Ligne 51: | Ligne 55: | ||
- | Il vous est demandé de formuler en XQuery les requêtes permettant de retourner les informations ci-dessous. Les résultats sont consultables [[site:enseignement:master:mlbda:tmes:xquery:resultats|ici]]. | + | Il vous est demandé de formuler en XQuery les requêtes permettant de retourner les informations ci-dessous. Les résultats sont consultables sur la page [[site:enseignement:master:mlbda:tmes:xquery:resultats]]. |
- Le nom de la personne dont l'identifiant est "person0". | - Le nom de la personne dont l'identifiant est "person0". | ||
- | - La valeur initiale des trois premières enchères <fc #ff0000>en cours</fc>. | + | - La valeur initiale (élément initial) des trois premières enchères <fc #ff0000>en cours</fc>. |
- | - La valeur de la première et de la dernière augmentation effectuée sur les trois premières des enchères en cours, selon l'ordre des enchères défini dans les données xml (ne pas trier les enchères chronologiquement). | + | - La valeur de la première et de la dernière augmentation (élément increase de bidder) effectuée sur les trois premières des enchères en cours, selon l'ordre des enchères défini dans les données xml (ne pas trier les enchères chronologiquement). |
- | - Le prix des objets vendu à plus de 480. | + | - Le prix des objets vendus à plus de 480. |
- | - Le noms des objets du continent africain | + | - Le nom des objets du continent africain |
- | - Le noms des objets du continent africain avec leur prix de vente | + | - Le nom des objets du continent africain avec leur prix de vente |
- | - Le nombre de personnes qui ont pas de page web (i.e. les personnes sans élément homepage) | + | - Le nombre de personnes qui n'ont pas de page web (i.e. les personnes sans élément homepage) |
+ | |||
+ | <showif isloggedin> | ||
+ | **<fc #ff0000>Réponses</fc>** | ||
+ | |||
+ | - Le nom de la personne dont l'identifiant est "person0". | ||
+ | <code xquery> | ||
+ | for $x in /site/people/person[@id="person0"] | ||
+ | return $x/name | ||
+ | </code> | ||
+ | |||
+ | - La valeur initiale des trois premières enchères <fc #ff0000>en cours</fc>. | ||
+ | <code xquery> | ||
+ | for $x in /site/open_auctions/auction[position()<4] | ||
+ | return <result id="{$x/@id}" >{$x/initial}</result> | ||
+ | </code> | ||
+ | |||
+ | - La valeur de la première et de la dernière augmentation effectuée sur les trois premières des enchères en cours, selon l'ordre des enchères défini dans les données xml (ne pas trier les enchères chronologiquement). | ||
+ | <code xquery> | ||
+ | for $x in /site/open_auctions/auction[position()<4] | ||
+ | return <result id="{$x/@id}" ><first>{$x/bidder[1]/increase/text()}</first><last>{$x/bidder[last()]/increase/text()}</last></result> | ||
+ | </code> | ||
+ | |||
+ | - Le prix des objets vendus à plus de 480. | ||
+ | <code xquery> | ||
+ | for $x in //closed_auctions/auction, | ||
+ | $y in //item | ||
+ | where $x/price/text()>480 and $x/itemref/@item =$y/@id | ||
+ | return $x/price | ||
+ | </code> | ||
+ | |||
+ | - Le nom des objets du continent africain | ||
+ | <code xquery> | ||
+ | for $x in //regions/africa | ||
+ | return $x/item/name | ||
+ | </code> | ||
+ | - Le nom des objets du continent africain avec leur prix de vente | ||
+ | <code xquery> | ||
+ | for $x in //regions/africa/item | ||
+ | for $y in //closed_auctions/auction | ||
+ | where $x/@id=$y/itemref/@item | ||
+ | return <res>{$x/name, $y/price}</res> | ||
+ | </code> | ||
+ | - Le nombre de personnes qui n'ont pas de page web (i.e. les personnes sans élément homepage) | ||
+ | <code xquery> | ||
+ | count(for $p in //person | ||
+ | where empty($p/homepage) | ||
+ | return $p) | ||
+ | </code> | ||
+ | </showif> | ||
===== Exercice 2 ===== | ===== Exercice 2 ===== | ||
Poursuivre sur les questions de l'exercice 2 du TD en utilisant les données bib.xml. Pour ce faire, commencer par charger dans BaseX le fichier bib.xml en suivant les instructions décrites précédemment. | Poursuivre sur les questions de l'exercice 2 du TD en utilisant les données bib.xml. Pour ce faire, commencer par charger dans BaseX le fichier bib.xml en suivant les instructions décrites précédemment. |