XQuery - Funciones personalizadas

XQuery proporciona la capacidad de escribir funciones personalizadas. A continuación se enumeran las pautas para crear una función personalizada.

  • Usa la palabra clave declare function para definir una función.

  • Utilice los tipos de datos definidos en el esquema XML actual

  • Encierra el cuerpo de función dentro de llaves.

  • Prefije el nombre de la función con un espacio de nombres XML.

La siguiente sintaxis se utiliza al crear una función personalizada.

Sintaxis

declare function prefix:function_name($parameter as datatype?...)
as returnDatatype?
{
   function body...
};

Ejemplo

El siguiente ejemplo muestra cómo crear una función definida por el usuario en XQuery.

Expresión 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))

Salida

90

Verificar el resultado

Para verificar el resultado, reemplace el contenido de books.xqy (dado en el capítulo Configuración del entorno ) con la expresión XQuery anterior y ejecute el programa java XQueryTester.