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.