FLWOR
Il linguaggio di programmazione XQuery definisce FLWOR (pronunciato flower - in italiano fiore - anche abbreviato FLWR) come un'espressione che supporta iterazione e binding sulle variabili dei risultati intermedi.
FLWOR è un acronimo, dove ogni lettera è l'iniziale di una clausola:
- FOR - crea una sequenza di nodi
- LET - collega una sequenza di nodi ad una variabile
- WHERE - filtra i nodi che soddisfano una condizione booleana
- ORDER BY - ordina i nodi
- RETURN - viene valutata una volta per ogni nodo
FLWOR è vagamente analogo al costrutto SELECT-FROM-WHERE del linguaggio SQL e può essere usato per fornire funzionalità analoghe al join ai documenti XML.
Esempio [modifica]
FOR $d in doc("Dipartimenti.xml")//numero_dipartimento
LET $e := doc("Impiegati.xml")//impiegato[numero_dipartimento = $d]
WHERE count($e) >= 10
ORDER BY avg($e/stipendio) descending
RETURN
<dipartimento_grande>
{ $d,
<lavoratori>{count($e)}</lavoratori>,
<stipendio_medio>{avg($e/stipendio)}</stipendio_medio>
}
</dipartimento_grande>
La prima colonna della query XQuery mostra le parole-chiave FOR, LET, WHERE, ORDER BY e RETURN del paradigma FLWOR. In parole povere, questa potrebbe essere letta come "selezionare tutti i dipartimenti che hanno più di dieci impiegati, ordina questi dipartimenti in ordine decrescente sulla base dello stipendio medio, e ritornare un rapporto sul numero di dipartimenti, sul conteggio dei lavoratori e sullo stipendio medio di ogni dipartimento grande".
Il risultato potrebbe essere:
<dipartimento_grande> <numero_dipartimento>17</numero_dipartimento> <lavoratori>25</lavoratori> <stipendio_medio>12500</stipendio_medio> </dipartimento_grande> <dipartimento_grande> <numero_dipartimento>24</numero_dipartimento> <lavoratori>18</lavoratori> <stipendio_medio>11327</stipendio_medio> </dipartimento_grande> <dipartimento_grande> <numero_dipartimento>3</numero_dipartimento> <lavoratori>32</lavoratori> <stipendio_medio>10725</stipendio_medio> </dipartimento_grande>
Collegamenti esterni [modifica]
|
|