Page 1 of 1

[Tuyaux] Databases XML en Webtechnologie

Posted: Wed Aug 25, 2010 10:25 pm
by Sebastiaan
Joew, bij deze de vragen voor database xml en webtech

Beschouw volgende let-assignments.

let $Serves := <Serves>
<t bar="Kelder" beer="Duvel">
<t bar ="Nobel" beer = "Leffe">
<t bar ="Nobel" beer = "Duvel">
</Serves>

let $Visits := <Visits>
<t drinker:="Jan" bar= "Kelder">
<t drinker:="Tim" bar= "Kelder">
<t drinker:="Tim" bar= "Nobel">
</Visits>

1. Formuleer in het nederlands de query die uitgedrukt wordt door de functie q1.

define function q1($Serves,$Visits)
{
$Visits/*[$Serves/*[@beer="Duvel"]/@bar=@bar]/@drinker
}

return q1 ($Serves,$Visits)

2. Formuleer volgende query in het nederlands

define function q3($Serves,$Visits)
{
let $x:= $Serves/*[every $z in $Serves/* satisfies ($z/@bar!= @bar or $z/@beer = "Duvel")]/@bar
return $Visits/*[$x=@bar]/@drinker
}

return q3($Serves, $Visits)

3. Vul volgende <?> in.
De functie is selectTextnodes() moet de text nodes selecteren van de sequentie $s

define function selectTextNodes($s)
{
for $e in $s
return typeswitch ($e)
case text return <?>
default return <?>
}

4. Vul volgende <?> in.
De volgende functie inDocOrder plaatst $e in de sequentie $s, $s en het resultaat zijn in document order.

define function inDocOrder($e,$s)
{
if (empty($s))
then $e
else
if ($e is $s[1])
then <?>
else
if ($e << $s[1])
then <?>
else (<?>, inDocOrder($e, <?>))
}



5. Schrijf een XSLT template die voor een gegeven (integer) parameter n de faculteit n! = 1*2*..*n berekent

6. Schrijf een XSLT stylesheet die twee gegeven tree fragmenten merget zodat de elementen met dezelfde naam samengevoegd worden. Je mag er hierbij van uitgaan dat een node geen twee kinderen heeft met dezelfde naam. De volgorde van de kinderen in het eindresultaat is niet van belang. Voorbeeld

<a i="1">
<b>
<c/>
<b>
<d/>
</a>
+
<a j="2">
<b>
<e/>
<b>
</a>
=
<a i="1", j="2">
<b>
<c/>
<e/>
<b>
<d/>
</a>

7. Schrijf een XML Schema voor een Movie Database. Deze database bevat Movies, Actors en Studio's. Actors hebben een naam, leeftijd en nationaliteit; Movies hebben een titel, jaartal,lengte en een genre; Studio's hebben een naam en een adres. Verder moet kunnen aangeduid worden welke acteurs in welke films spelen (many-to-many), en welke studio's welke films gedraaid hebben(one-to-many). Je mag er van uitgaan dat er geen twee personen met dezelfde naam of twee films met dezelfde titel bestaan. Verder moeten er ook (logische) restricties gelden op onder andere de leeftijd van een acteur en de lengte van een film.