-
E1 :
- 1+3 ?
1+3
- E2 :
- Qui est le metteur en scène du Reservoir dogs (Films.xml) ?
for $m in doc("c:/home/tps-xml/Films.xml")/FILMS/FILM[@titre='Reservoir dogs']/MES/text()
return $m
ou
for $f in doc("c:/home/tps-xml/Films.xml")/FILMS/FILM
where $f/@titre='Reservoir dogs'
return $f/MES/text()
- E3 :
- Les films avec Harvey Keitel (Films.xml et Artistes.xml) ?
for $a in doc("c:/home/tps-xml/Artistes.xml")//ARTISTE[NOM='Keitel'],
$f in doc("c:/home/tps-xml/Films.xml")//FILM[.//ROLE/@acteur=$a/@ID]
return $f
ou
for $a in doc("c:/home/tps-xml/Artistes.xml")//ARTISTE,
$f in doc("c:/home/tps-xml/Films.xml")//FILM
where $a/NOM='Keitel' and $f//ROLE/@acteur=$a/@ID
return $f
- E4 :
- Les acteurs avec leurs films. Par exemple, pour l'acteur Travolta on obtient:
<ACTEUR>
<NOM>Travolta</NOM>
<FILMS>
<FILM titre="Volte/Face"/>
<FILM titre="Pulp fiction"/>
</FILMS>
</ACTEUR>
for $a in doc("c:/home/tps-xml/Artistes.xml")//ARTISTE
return
<ACTEUR>
{$a/NOM},
<FILMS> {
for $f in doc("c:/home/tps-xml/Films.xml")//FILM
where $f//ROLE/@acteur=$a/@ID
return <FILM> {$f/@titre} </FILM> }
</FILMS>
</ACTEUR>
ou
for $a in doc("c:/home/tps-xml/Artistes.xml")//ARTISTE
return
element ACTEUR {
$a/NOM,
element FILMS {
for $f in doc("c:/home/tps-xml/Films.xml")//FILM
where $f//ROLE/@acteur=$a/@ID
return element FILM {$f/@titre}
}
}
ou
for $a in doc("c:/home/tps-xml/Artistes.xml")//ARTISTE
let $fl := doc("c:/home/tps-xml/Films.xml")//FILM[.//ROLE/@acteur=$a/@ID]
return
if ($fl) then
element ACTEUR {
$a/NOM,
element FILMS {
for $f in $fl
return element FILM {$f/@titre}
}
}
else ()
- E5 :
- Les acteurs qui ont joué dans plus qu'un film.
for $a in doc("c:/home/tps-xml/Artistes.xml")//ARTISTE
let $fl := doc("c:/home/tps-xml/Films.xml")//FILM[.//ROLE/@acteur=$a/@ID]
return
if (count($fl) > 1) then
element ACTEUR {
$a/NOM,
element FILMS {
for $f in $fl
return element FILM {$f/@titre}
}
}
else ()
- E6 :
- Les metteurs en scène avec leurs films.
for $m in distinct-values(doc("c:/home/tps-xml/Films.xml")//FILM/MES)
let $fl := doc("c:/home/tps-xml/Films.xml")//FILM[MES=$m]
return
element METTEUR_EN_SCENE {
element NOM {$m},
element FILMS {
for $f in $fl
return element FILM {$f/@titre}
}
}
- E7 :
- Le nombre de films par genre.
for $g in distinct-values(doc("c:/home/tps-xml/Films.xml")//FILM/GENRE)
let $fl := doc("c:/home/tps-xml/Films.xml")//FILM[GENRE=$g]
return
element GENRE {
element TYPE {$g},
element NOMBRE { count($fl) }
}
ou
for $g in distinct-values(doc("c:/home/tps-xml/Films.xml")//FILM/GENRE)
let $fl := doc("c:/home/tps-xml/Films.xml")//FILM[GENRE=$g]
return ($g,':',count($fl))