XQuery - Funzioni personalizzate

XQuery fornisce la capacità di scrivere funzioni personalizzate. Di seguito sono elencate le linee guida per creare una funzione personalizzata.

  • Usa la parola chiave declare function per definire una funzione.

  • Utilizza i tipi di dati definiti nello schema XML corrente

  • Racchiudere il corpo della funzione all'interno di parentesi graffe.

  • Prefisso il nome della funzione con uno spazio dei nomi XML.

La seguente sintassi viene utilizzata durante la creazione di una funzione personalizzata.

Sintassi

declare function prefix:function_name($parameter as datatype?...)
as returnDatatype?
{
   function body...
};

Esempio

Il seguente esempio mostra come creare una funzione definita dall'utente in XQuery.

XQuery Expression

declare function local:discount($price as xs:decimal?,$percentDiscount as xs:decimal?) as xs:decimal? { let $discount := $price - ($price * $percentDiscount div 100) return $discount
};

let $originalPrice := 100 let $discountAvailed := 10

return ( local:discount($originalPrice, $discountAvailed))

Produzione

90

Verifica il risultato

Per verificare il risultato, sostituire il contenuto di books.xqy (fornito nel capitolo Configurazione dell'ambiente ) con l'espressione XQuery sopra ed eseguire il programma java XQueryTester.