Gli ultimi tutorial di sviluppo web
 

Funzioni XQuery


XQuery 1.0, XPath 2.0 e XSLT 2.0 condividono la biblioteca stesse funzioni.


Funzioni XQuery

XQuery è costruito su espressioni XPath. XQuery 1.0 e XPath 2.0 condividono lo stesso modello di dati e supportano le stesse funzioni e gli operatori.

Gli operatori XPath

Funzioni XPath

È inoltre possibile definire le proprie funzioni in XQuery.


Tipi di dati XQuery

XQuery condivide gli stessi tipi di dati come XML Schema 1.0 (XSD) .

XSD String

XSD Data

XSD numerico

XSD Varie


Esempi di chiamate di funzione

Una chiamata ad una funzione può apparire dove può apparire un'espressione. Guardate gli esempi di seguito:

Esempio 1: In un elemento

<name>{upper-case($booktitle)}</name>

Esempio 2: Nel predicato di un'espressione di percorso

doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']

Esempio 3: In una clausola let

let $name := (substring($booktitle,1,4))

XQuery funzioni definite dall'utente

Se non è possibile trovare la funzione XQuery è necessario, è possibile scrivere il proprio.

Le funzioni definite dall'utente possono essere definite nella query o in una libreria separata.

Sintassi

declare function Note sulle funzioni definite dall'utente:

  • Usa la parola chiave funzione di declare
  • Il nome della funzione deve essere preceduto
  • Il tipo di dati dei parametri sono gli stessi dei tipi di dati definiti in XML Schema
  • Il corpo della funzione deve essere circondata da parentesi graffe

Esempio di una funzione definita dall'utente dichiarati nella query

declare function local:minPrice($p as xs:decimal?,$d as xs:decimal?)
as xs:decimal?
{
let $disc := ($p * $d) div 100
return ($p - $disc)
};

Below is an example of how to call the function above:

<minPrice>{local:minPrice($book/price,$book/discount)}</minPrice>