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 | modifica wikitesto]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 | modifica wikitesto]- (EN) W3C XML Query (XQuery) - Espressioni FLWOR, su w3.org.
- (EN) Esempi di FLWOR, su brics.dk. URL consultato il 25 marzo 2011 (archiviato dall'url originale il 4 giugno 2011).
- (EN) Introduzione al FLWOR, su stylusstudio.com.