Definición de funciones
La definición de funciones permite definir operaciones que no están incluidas de forma nativa en XQuery. Además, se utilizan para modularizar el código, hacerlo más legible y fácil de mantener. Las funciones también permiten reutilizar código, ya que se pueden llamar desde diferentes partes del código. Al igual que en otros lenguajes de programación, las funciones en XQuery también pueden aceptar argumentos y devolver valores, lo que las hace muy útiles para realizar operaciones específicas y procesar datos.
Sintaxis
Las funciones en XQuery se definen utilizando las palabras clave declare function
seguida del nombre de la función, sus argumentos y el cuerpo de la función.
declare function nombre_funcion($param1 as tipo_dato1, $param2 as tipo_dato2, ..., $paramN as tipo_datoN)
as tipo_dato_devuelto
{
(: Cuerpo de la función :)
}
Consideremos la siguiente función XQuery que permite calcular un descuento en un artículo:
declare function minPrice($p as xs:decimal?, $d as xs:decimal?)
as xs:decimal?
{
let $disc := ($p * $d) div 100
return ($p - $disc)
}
En el ejemplo:
- El nombre de la función es
minPrice
- Recibe dos parámetros:
$p
y$d
. Ambos parámetros son valores decimales (xs:decimal
). - La función devuelve un valor decimal (
xs:decimal
). - En el cuerpo de la función se realiza una operación con los dos parámetros y se devuelve un valor con
return
.
Para utilizar la función en una consulta XQuery, se debe usar:
minPrice(100, 20)
Por ejemplo, una consulta completa prodría ser la siguiente:
for $libro in /biblioteca/libros/libro
return <minPrice>{ minPrice($libro/precio, $libro/descuento) }</minPrice>