Funciones de XQuery
- Página anterior Selección de XQuery
- Página siguiente Introducción a DTD
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 horas, 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 de XQuery:
http://www.w3.org/2005/02/xpath-functions
El prefijo predeterminado del espacio de nombres de las funciones es fn:.
Consejo:Las funciones se llaman generalmente con el prefijo fn:, por ejemplo, fn:string(). Sin embargo, ya que fn: es el prefijo predeterminado del espacio de nombres, el nombre de la función no es necesario que se utilice como prefijo en la llamada.
Puede encontrar la completa "Manual de referencia de funciones integradas de XQuery》。
Ejemplo de llamada a la función
La llamada a la función puede utilizarse junto con la expresión. 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 definidas por el usuario de XQuery
Si no encuentra la función XQuery necesaria, puede escribir su propia función.
Las funciones personalizadas pueden definirse en consultas o en bibliotecas independientes.
Sintaxis
declare function prefijo:nombre_de_la_función($parámetro AS tipo_de_datos)
AS tipo de datos de retorno
{}}
(: ...código de la función... :)
;
Consideraciones sobre las funciones personalizadas del usuario:
- Utilice la palabra clave declare function
- El nombre de la función debe usar un prefijo
- El tipo de datos del parámetro generalmente coincide con el tipo de datos definido en el XML Schema
- El cuerpo de la función debe estar encerrado entre corchetes
Un ejemplo de una función personalizada 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)
;
(A continuación, se muestra un 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 Introducción a DTD