XQuery - funções personalizadas
XQuery fornece a capacidade de escrever funções personalizadas. Listadas abaixo estão as diretrizes para criar uma função personalizada.
Use a palavra-chave declare function para definir uma função.
Use os tipos de dados definidos no esquema XML atual
Coloque o corpo da função entre chaves.
Prefixe o nome da função com um namespace XML.
A sintaxe a seguir é usada ao criar uma função personalizada.
Sintaxe
declare function prefix:function_name($parameter as datatype?...)
as returnDatatype?
{
function body...
};
Exemplo
O exemplo a seguir mostra como criar uma função definida pelo usuário em XQuery.
Expressão 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))
Resultado
90
Verifique o resultado
Para verificar o resultado, substitua o conteúdo de books.xqy (fornecido no capítulo Configuração do ambiente ) pela expressão XQuery acima e execute o programa java XQueryTester.