FLWOR
Język programowania XQuery definiuje FLWOR (wymawiane jako „kwiat”) jako wyrażenie obsługujące iterację i wiązanie zmiennych z wynikami pośrednimi. FLWOR to akronim: FOR , LET , WHERE, ORDER BY, RETURN. FLWOR jest luźno analogiczny do SELECT-FROM-WHERE języka SQL i może być używany do zapewniania funkcji podobnych do łączenia do dokumentów XML .
- for tworzy sekwencję węzłów
- let wiąże sekwencję ze zmienną
- gdzie filtruje węzły na podstawie wyrażenia boolowskiego
- order by sortuje węzły
- return jest oceniany raz dla każdego węzła
Przykład
for $ d in doc ( "depts.xml" )// deptno let $ e := doc ( "emps.xml" )// pracownik [ deptno = $ d ] gdzie liczba ( $ e ) >= 10 zamów według średniej ( $ e / pensja ) malejąco powrót <duży-dział> { $ d , <headcount> { count ( $ e )} </headcount> , <avgsal> { śr. ( $ e / pensja )} </avgsal> } </ duży dział>
Pierwsza kolumna żądania XQuery zawiera słowa kluczowe for , let , where , order by i return paradygmatu FLWOR. W prostym języku angielskim można to odczytać jako „Zbierz wszystkie działy, które mają więcej niż dziesięciu pracowników, uporządkuj te działy, zmniejszając średnią pensję, i prześlij raport z numerami działów, liczbą osób i średnią pensją w każdym dużym dziale” . Wynik może wyglądać następująco:
<big-dept> <deptno> 17 </deptno> <headcount> 25 </headcount> <avgsal> 12500 </avgsal> </big-dept> <big-dept> <deptno> 24 </deptno> < headcount > 18 </liczba osób> <śr. > 11327 </avgsal> </big-dept> <big-dept> < wydział > 3 </deptno> <liczba osób > 32 </ liczba osób > <śr. > 10725 </avgsal> < /duży-dział>
Przykład użycia Microsoft SQL Server
DECLARE @xml XML SET @xml = '<element_główny> <element_branch> <item_1>42</item_1> <item_2>27</item_2> </element_branch> <element_branch> <item_1>a</item_1> <item_2>b </item_2> </branch_element> </element_główny>' WYBIERZ x . y . zapytanie ( 'dla $s w self::node() return $s//item_1/text()' ) jako i , x . y . zapytanie ( 'dla $s w self::node() return $s//item_2/text()' ) jako j FROM @xml . węzły ( '/ element_root' ) AS x ( y );
Linki zewnętrzne
- Zapytanie W3C XML (XQuery) - Wyrażenia FLWOR
- Przykłady FLWOR
- Wprowadzenie do FLWOR
- https://web.archive.org/web/20111008001258/http://w3schools.com/xquery/xquery_flwor.asp