| |
3. Iteration
Iteration über Elemente eines Dokuments. Dieses Beispiel listet zu jedem Buch die Autoren und den
Titel auf.
for b in bib0/item do
item [ b/autor, b/titel ]
==> item [
autor [ "Abiteboul" ],
autor [ "Buneman" ],
autor [ "Suciu" ],
titel [ "Data on the Web" ]
],
item [
autor [ "Fernandez" ],
autor [ "Suciu" ],
titel [ "XML Query" ]
]
: item [
autor [ String ]{0, *},
titel [ String ]
]{0, *}
Der Ausdruck for iteriert über alle item Elemente in bib0 und bindet das b an jedes item-Element. Der
innere Ausdruck (nach dem do) konstruiert nun eine neues item-Element, das den Autor, gefolgt von
dem Titel, beinhaltet.
4. Selection
Der where-Ausdruck wird benutzt, um Werte zu selektieren, die bestimmte Bedingungen erfüllen. Im
folgenden Beispiel werden alle item-Elemente in bib0 ausgewählt, die vor 2000 veröffentlicht wurden:
for b in bib0/item do
where b/jahr/data() <= 2000 do b
==> item [
jahr [ 1999 ],
@id [ "1-55860-622-X" ],
titel [ "Data on the Web" ],
autor [ "Abiteboul" ],
autor [ "Buneman" ],
autor [ "Suciu" ]
]
: Item{0, *}
5.Joins
Um joins zu realisieren wird eine zweite Datenquelle Kritiken angegeben, die zu jedem Buch einen
Titel und eine Kritik hat:
type Kritiken = kritiken [ item [ titel [ String ],
Kritik [ String ]
]{0, *}
]
let Kritik0 : Kritiken = kritiken [
item [ titel [ "XML Query" ],
Kritik [ "A darn fine book." ]
],
item [ titel [ "Data on the Web" ],
Kritik [ "This is great!" ]
]
]
13
|  |
|
| |
|
|