===== XPath =====
- Donne les titres des actes de la pièce
- Vide: il n'y a pas de titre dans une ligne. On peut changer LINE en SCENE
- La liste des personnages de la pièce
- La liste des personnages de la pièce qui ne sont pas dans un groupe
- Vide. Changer PERSONA en SPEAKER
- Vide. CHanger following en preceding
- La première ligne de chaque scène
Requêtes
- sur le forum:
- XQUERY
doc("/public/bdav/forum/exemple1.xml")//message[../message/@reponse_a = @id]
/
- XQUERY
doc("/public/bdav/forum/exemple1.xml")//message[@reponse_a = 2]
/
- XQUERY
doc("/public/bdav/forum/exemple1.xml")//membre[@id = ../salle/message[@auteur = following::message/@auteur]/@auteur]
/
- sur la pièce:
- XQUERY
doc("/public/bdav/shakespear/hamlet.xml")//SPEECH[SPEAKER="HAMLET" or SPEAKER = "HORATIO"]/LINE
/
- XQUERY
doc("/public/bdav/shakespear/hamlet.xml")//SPEECH[SPEAKER="HAMLET"]/following-sibling::SPEECH[1][SPEAKER="HORATIO"]/../TITLE
/
===== XQuery =====
- Transformation forum
- XQUERY
{
for $a in doc("/public/bdav/forum/exemple1.xml")//membre
return
{$a/@*}{$a/*}
}
/
- XQUERY
{
for $a in doc("/public/bdav/forum/exemple1.xml")//membre
return
{$a/@*}
{$a/*}
{$a/..//message[@auteur = $a/@id]}
}
/
- Présentation forum XQUERY
Forum
{
for $s in doc("/public/bdav/forum/exemple1.xml")//salle
return
({$s/titre/text()}
,
for $m in $s/message
let $a := $s/../membre[@id = $m/@auteur]
return
({$m/titre/text()}
,
,
{$m/corps/text()}
)
)
}
/
- Transformation théâtreXQUERY
let $doc := doc("/public/bdav/shakespear/hamlet.xml")
return
{
for $s in $doc//SCENE
return
{$s/TITLE/text()}
{
for $sp in $s/SPEECH
let $tit := $sp/LINE[1]/text(),
$corps := $sp/LINE[position() > 1]/text(),
$aut := $sp/SPEAKER/text()
return
{$tit}
{$corps}
}
}
{
for $p in $doc//PERSONA
let $n := $p/text()
return
{$n} {$n}@shakespeare.net
}
/