Au cours de ce TP, nous utiliserons la librairie Saxonica pour exécuter les requêtes XQuery. Téléchargez le fichier saxon8.jar. Vous pouvez ensuite exécuter la commande suivante :
java -cp saxon8.jar net.sf.saxon.Query monPrograme.xqy
Fichiers: - biblio.xml
Donner une expression FLWOR correspondant à chacune des requêtes suivantes:
Fichiers: - collection.xml - collection2.xml
Fichiers: - collection.xml - collection2.xml
Même question mais en ordonnant les résultats par titre.
Fichiers: - database.xml
Transformez la requête précédente de manière à obtenir
une liste html contenant les liens vers les fichiers.
Rappel :
une liste html est constituée par un élément ol
ou ul
contenant un ensemble
d'éléments li
dont le contenu correspond aux
différents éléments de la liste.
Transformez à nouveau la requête précédente de façon à ce que:
http://www.lif.univ-mrs.fr/~preynier/XML/tp6/
). On
pourra utiliser la fonction concat(.,.)
.
<html> <head> <title>Titre du document</title> </head> <body> Contenu du document </body> </html>
Fichiers: - bookmarks.xml
if ( test
) then expr1 else expr2
pour réaliser un test. L'utilisation
de ()
permet de renvoyer un ensemble d'éléments
vide.Fichiers: - bookmarks.xml
div
. On reprend la question précédente, mais en affichant à
l'aide d'une fonction récursive les catégories avec leur
bookmarks. Une catégorie sera représentée par un
élément div
dans lequel on mettra un paragraphe donnant
le nom de la catégorie, un paragraphe contenant sa (ou ses)
description(s) et enfin une liste html qui correspondra à
l'ensemble des bookmarks et des catégories qui sont des enfants
de la catégorie considérée. On utilisera la fonction précédente pour
le formatage des bookmarks. Dans un premier temps on pourra
éventuellement mettre en premier les sous-catégories, suivies des
bookmarks. Dans un deuxième temps, on conservera l'ordre donné
dans le document Bookmarks.
Indications : On peut parcourir tous les fils éléments d'un noeud référencé par
la variable $toto à l'aide de l'expression
XPath : $toto/element()
On peut tester si un element $node est de
type toto à l'aide de l'instruction :
if ($node instance of element(toto))
Fichiers: - pieces.xml
id
, un nom et optionnellement
l'identifiant d'une pièce dont elle constitue une
partie. Écrivez une fonction récursive permettant d'obtenir une
hiérachie de pièces représentant la composition d'une
pièce. Attention, on ne peut pas utiliser un chemin XPath commençant
par / dans une fonction. Utilisez cette fonction pour représenter de
manière hiérachique le document pieces.xml.
On souhaite exploiter les données contenues dans ce tableau. En récupérant le code source html de cette page, construisez un fichier XML contenant exactement les informations présentées dans ce tableau, ainsi qu'une DTD associée. Vérifiez la validité du document par rapport à votre DTD.
A l'aide d'une requête XQuery, construisez un nouveau document
XML donnant pour chaque année apparaissant dans le document le nombre
de films ayant cette année. Le document XML produit devra être valide
vis-à-vis de la DTD suivante :
<!ELEMENT results (year* )> <!ELEMENT year> <!ATTLIST year value CDATA #REQUIRED number_films CDATA #REQUIRED >
A l'aide d'une requête XQuery, construisez un nouveau document XML donnant pour chaque année apparaissant dans le document le score moyen des films parus cette année et apparaissant dans le classement. La DTD du document XML produit sera la même que précédemment, number_films étant remplacé par rating.
A l'aide d'une requête XQuery, construisez un nouveau document XML donnant pour chaque année apparaissant dans le document le nombre de votes pour un des films parus cette année. La DTD du document XML produit sera la même que précédemment, rating étant remplacé par number_votes.
A l'aide d'une requête XQuery, construisez un nouveau document XML donnant pour chaque année apparaissant dans le document les trois résultats construits précédemments, respectivement dans les attributs number_films, rating, et number_votes. La DTD du document XML produit sera la même que précédemment, mais l'élément year aura les 4 attributs.