Skip to content

Instantly share code, notes, and snippets.

@zyzo
Last active August 29, 2015 14:13
Show Gist options
  • Save zyzo/a9018ab0ad6dd977cc27 to your computer and use it in GitHub Desktop.
Save zyzo/a9018ab0ad6dd977cc27 to your computer and use it in GitHub Desktop.
Exercice de MDSI (Modele de donnees et Systeme d'Info) - 4eme annee Info INSA de Toulouse
xquery version "3.0";
element Partie2 {
element FilmsQueJoueSigourneyWeaver {
for $x in doc("Films.xml")//film
where data($x//acteur) = "Sigourney Weaver"
return element titre {$x//titre}
},
element InfoRealisateursFilmAlien {
for $x in doc("Films.xml")//film
where data($x//titre) = "Alien"
return doc("Realisateur.xml")//realisateur[@rid = data($x//realisateur)]/*
},
element TousLesFilms {
for $x in doc("Films.xml")//film
return element film {
$x/titre ,
doc("Realisateur.xml")//realisateur[@rid = data($x//realisateur)]/nom
}
},
element TousLesFilms2 {
for $x in doc("Films.xml")//film
return element film {
attribute annee {data($x/annee)},
attribute genre {data($x/genre)},
$x/titre ,
doc("Realisateur.xml")//realisateur[@rid = data($x//realisateur)]/nom
}
},
element TousLesRealisateurs {
for $x in doc("Realisateur.xml")//realisateur
return element realisateur {
$x/nom,
$x/anneenaiss,
element films {
for $y in doc("Films.xml")//film
where data($y/realisateur) = $x/@rid
return $y/titre
}
}
},
element TousLesRealisateurs2 {
for $x in doc("Realisateur.xml")//realisateur
return element realisateur {
$x/nom,
$x/anneenaiss,
element films {
for $y in doc("Films.xml")//film
where data($y/realisateur) = $x/@rid
return element film {data($y/titre)}
}
}
}
}
xquery version "3.0";
element html {
element head {
element title {
"LASS TEAM SUMMARY"
}
},
element body {
element h1 {
"LASS TEAM SUMMARY"
},
let $x := count(//team)
return element p {"There are ", $x, "teams"},
element table {
attribute border {2},
element tr {
element th {"Teams"},
element th {"Members"}
},
for $x in //team
return element tr {
element td {
attribute valign {"top"},
data($x/shortName)
},
let $y := count($x//member)
return element td {
$y
}
}
}
}
}
<!--
Document : FILMS.xml
Created on : 4 décembre 2014, 10:19
Author : nguermou
Description:
Purpose of the document follows.
-->
<films>
<film fid="1">
<titre>Vertigo</titre>
<annee>1958</annee>
<genre>Drame</genre>
<realisateur>2</realisateur>
<distribution>...</distribution>
</film>
<film fid="2">...</film>
<film fid="3">...</film>
</films>
<!--
Document : Realisateur.xml
Created on : 4 décembre 2014, 10:25
Author : nguermou
Description:
Purpose of the document follows.
-->
<realisateurs>
<realisateur rid="2">
<nom>Alfred Hitchcock</nom>
<anneenaiss>1899</anneenaiss>
</realisateur>
<realisateur rid="3">
<nom>Alan Smithee</nom>
</realisateur>
<realisateur rid="5">
<nom>Ridley Scott</nom>
<anneenaiss>1937</anneenaiss>
</realisateur>
</realisateurs>
Exo 2 :
Ecrire les requêtes XQuery suivantes :
Les titres des films où joue Sigourney Weaver
Le nom et l'année de naissance des réalisateurs du film "Alien"
Tous les films, sous forme d'éléments XML "film" contenant comme sous éléments le titre du film et le nom de son réalisateur.
Même question que la précédente mais en ajoutant comme attributs l'année et le genre aux éléments "film"
Tous les réalisateurs, sous forme d'éléments XML "realisateur" dont chaque élément contient comme sous éléments le nom, l'année de naissance et l'élément "films". L'élément "films" doit contenir les titres des filmes qu'un réalisateur à mis en scène.
Même question que précédemment, sauf qu'on veut avoir chaque valeur textuelle des titres des films dans un élément "film" (i.e., l'élément films doit contenir un ensemble d'éléments "film").
Exo 3 :
Ecrire les requêtes XQuery suivantes :
Avec une expression XQuery, retourner le résultat suivant :
<html>
<head>
<title>LAAS teams summary</title>
</head>
<body>
<h1>LAAS teams summary</h1>
<p>There are 2 teams</p>
<table border="2">
<tr>
<th>Teams</th>
<th>Members</th>
</tr>
<tr>
<td valign="top">SARA</td>
<td>8</td>
</tr>
<tr>
<td valign="top">TSF</td>
<td>4</td>
</tr>
</table>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment