Funzione XQuery
- Pagina precedente Selezione XQuery
- Pagina successiva Introduzione a DTD
XQuery 1.0, XPath 2.0 e XSLT 2.0 condividono la stessa libreria di funzioni.
Funzione XQuery
XQuery contiene oltre 100 funzioni integrate. Queste funzioni possono essere utilizzate per valori di stringa, numerici, confronti di date e ora, operazioni sui nodi e QName, operazioni sulle sequenze, valori logici, ecc. Puoi anche definire le tue funzioni in XQuery.
Funzioni integrate XQuery
URI dello spazio dei nomi delle funzioni XQuery:
http://www.w3.org/2005/02/xpath-functions
Il prefisso predefinito dello spazio dei nomi delle funzioni è fn:.
Suggerimento:Le funzioni sono spesso chiamate tramite il prefisso fn:, ad esempio fn:string(). Tuttavia, poiché fn: è il prefisso predefinito dello spazio dei nomi, il prefisso non è necessario quando si chiama la funzione.
Puoi trovare l'intero <Manuale di riferimento delle funzioni XQuery integrate》。
Esempio di chiamata della funzione
La chiamata della funzione può essere utilizzata insieme a un'espressione. Ecco un esempio:
Esempio 1: nell'elemento
<name>{upper-case($booktitle)}</name>
Esempio 2: nel predicato dell'espressione di percorso
doc("books.xml")/bookstore/book[substring(title,1,5)='Harry'
Esempio 3: nel comando let
let $name := (substring($booktitle,1,4))
Funzione utente XQuery
Se non trovi la funzione XQuery necessaria, puoi scrivere la tua funzione.
Le funzioni utente definite possono essere definite nella query o in un repository indipendente.
Sintassi
declare function prefisso:nome della funzione($parametro AS tipo dei dati)
AS tipo dei dati restituiti
{}}
(: ...codice della funzione... :)
;
Considerazioni sulla funzione utente definita:
- Utilizzare la parola chiave declare function
- Il nome della funzione deve utilizzare un prefisso
- Il tipo di dati dei parametri solitamente corrisponde al tipo di dati definito nello schema XML
- Il corpo della funzione deve essere racchiuso tra parentesi graffe
Esempio di funzione utente definita nella query:
declare function local:minPrice(
$price as xs:decimal?,
$discount as xs:decimal?)
AS xs:decimal?
{}}
let $disc := ($price * $discount) div 100
return ($price - $disc)
;
(Di seguito è riportato un esempio di chiamata alla funzione sopra)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>
- Pagina precedente Selezione XQuery
- Pagina successiva Introduzione a DTD