XQuery - funkcje niestandardowe
XQuery zapewnia możliwość pisania funkcji niestandardowych. Poniżej wymienione są wytyczne dotyczące tworzenia funkcji niestandardowej.
Użyj słowa kluczowego declare function zdefiniować funkcję.
Użyj typów danych zdefiniowanych w bieżącym schemacie XML
Całość funkcji umieść w nawiasach klamrowych.
Przed nazwą funkcji należy wstawić przestrzeń nazw XML.
Podczas tworzenia funkcji niestandardowej używana jest następująca składnia.
Składnia
declare function prefix:function_name($parameter as datatype?...)
as returnDatatype?
{
function body...
};
Przykład
Poniższy przykład pokazuje, jak utworzyć funkcję zdefiniowaną przez użytkownika w XQuery.
Wyrażenie XQuery
declare function local:discount($price as xs:decimal?,$percentDiscount as xs:decimal?) as xs:decimal? { let $discount := $price - ($price * $percentDiscount div 100) return $discount
};
let $originalPrice := 100 let $discountAvailed := 10
return ( local:discount($originalPrice, $discountAvailed))
Wynik
90
Sprawdź wynik
Aby zweryfikować wynik, zamień zawartość books.xqy (podaną w rozdziale Konfiguracja środowiska ) powyższym wyrażeniem XQuery i uruchom program java XQueryTester.