XQuery- funksies
XQuery 1.0, XPath 2.0 en XSLT 2.0 deel dieselfde funksiesbiblioteek.
XQuery-funksies
XQuery is gebou op XPath-uitdrukkings. XQuery 1.0 en XPath 2.0 deel dieselfde datamodel en ondersteun dieselfde funksies en operateurs.
Jy kan ook jou eie funksies in XQuery definieer.
XQuery-datatipes
XQuery deel dieselfde datatipes as XML Schema 1.0 (XSD).
Voorbeelde van funksie-oproepe
'n Oproep na 'n funksie kan verskyn waar 'n uitdrukking kan verskyn. Kyk na die voorbeelde hieronder:
Voorbeeld 1: In 'n element
<name>{upper-case($booktitle)}</name>
Voorbeeld 2: In die predikaat van 'n paduitdrukking
doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']
Voorbeeld 3: In 'n laat-klousule
let $name := (substring($booktitle,1,4))
XQuery gebruiker-gedefinieerde funksies
As jy nie die XQuery-funksie kan vind wat jy nodig het nie, kan jy jou eie skryf.
Gebruikergedefinieerde funksies kan in die navraag of in 'n aparte biblioteek gedefinieer word.
Sintaksis
declare function prefix:function_name($parameter as datatype)
as returnDatatype
{
...function code here...
};
Notas oor gebruikergedefinieerde funksies:
- Gebruik die verklaar-funksie sleutelwoord
- Die naam van die funksie moet voorafgegaan word
- Die datatipe van die parameters is meestal dieselfde as die datatipes wat in XML-skema gedefinieer is
- Die liggaam van die funksie moet omring word deur krullerige draadjies
Voorbeeld van 'n gebruikergedefinieerde funksie wat in die navraag verklaar word
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>