Funciones de XQuery
- Página anterior Selección de XQuery
- Página siguiente Resumen de XQuery
XQuery 1.0, XPath 2.0 y XSLT 2.0 comparten la misma biblioteca de funciones.
Funciones de XQuery
XQuery contiene más de 100 funciones integradas. Estas funciones se pueden usar para valores de cadena, valores numéricos, comparación de fechas y tiempos, operaciones de nodos y QName, operaciones de secuencia, valores lógicos, etc. También puede definir sus propias funciones en XQuery.
Funciones integradas de XQuery
URI del espacio de nombres de las funciones XQuery:
http://www.w3.org/2005/02/xpath-functions
El prefijo predeterminado del espacio de nombres de las funciones es fn:.
Consejo:Las funciones a menudo se invocan con el prefijo fn:, por ejemplo fn:string(). Sin embargo, ya que fn: es el prefijo de espacio de nombres predeterminado, el nombre de la función no es necesario que se utilice el prefijo cuando se invoca.
Puede encontrar la completa 《Manual de referencias de funciones XQuery integradas》。
Ejemplo de invocación de función
La invocación de la función puede usarse junto con las expresiones. Vea el siguiente ejemplo:
Ejemplo 1: En el elemento
<name>{upper-case($booktitle)}</name>
Ejemplo 2: En el predicado de la expresión de ruta
doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']
Ejemplo 3: En la declaración let
let $name := (substring($booktitle,1,4))
Funciones de usuario definidas en XQuery
Si no se encuentra la función de XQuery necesaria, puede escribir su propia función.
Las funciones de usuario personalizadas se pueden definir en la consulta o en una biblioteca independiente.
Sintaxis
declare function prefijo:nombreDeLaFunción($parámetro AS tipoDeDatos)
AS tipo de datos de retorno
{
(: ...código de la función... :)
;
Consideraciones sobre las funciones de usuario personalizadas:
- Utilice la palabra clave declare function
- El nombre de la función debe usar un prefijo
- El tipo de datos de los parámetros generalmente coincide con el tipo de datos definido en XML Schema
- El cuerpo de la función debe estar encerrado en llaves
Ejemplo de una función de usuario declarada en una consulta:
declare function local:minPrice(
$price as xs:decimal?,
$discount as xs:decimal?
AS xs:decimal?
{
let $disc := ($price * $discount) div 100
return ($price - $disc)
;
(Ejemplo de cómo llamar a la función anterior :)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>
- Página anterior Selección de XQuery
- Página siguiente Resumen de XQuery