| |
Um die bekannte Quelle bib0 mit der Neuen Kritik0 zu joinen, benutzt man eine genestete
for-Anweisung:
for b in bib0/item do
for r in Kritik0/item do
where b/titel/data() = r/titel/data() do
item [ b/titel, b/autor, r/Kritik ]
==>
item [
titel [ "Data on the Web" ],
autor [ "Abiteboul" ],
autor [ "Buneman" ],
autor [ "Suciu" ]
Kritik [ "A darn fine book." ]
],
item [
titel [ "XML Query" ],
autor [ "Fernandez" ],
autor [ "Suciu" ]
Kritik [ "This is great!" ]
]
: item [
titel [ String ],
autor [ String ] {0, *},
Kritik [ String ]
] {0, *}
Das Resultat ist eine Kombination von Titel, Autor und Kritik. Das erste for bestimmt die Reihenfolge
des Resultats.
7.Gruppierung
Das folgende Beispiel bildet Gruppen, jeweils mit einem Autor und dessen Veröffentlichungen
for a in distinct_value(bib0/item/autor/data()) do
biblio [ autor[a], for b in bib0/item do
for a2 in b/autor/data() do
where a = a2 do b/titel
]
==> biblio [
autor [ "Abiteboul" ],
titel [ "Data on the Web" ]
],
biblio [
autor [ "Buneman" ],
titel [ "Data on the Web" ]
],
biblio [
autor [ "Suciu" ],
titel [ "Data on the Web" ],
titel [ "XML Query" ]
],
biblio [
autor [ "Fernandez" ],
titel [ "XML Query" ]
]
: biblio [
autor [ String ] {0, *},
titel [ String ]
] {0, *}
14
|  |
|
| |
|
|