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.