XQuery Funktioner
- Forrige Side XQuery Vælg
- Næste Side XQuery Opsummering
XQuery 1.0, XPath 2.0 og XSLT 2.0 deler samme funktionssamling.
XQuery Funktioner
XQuery indeholder over 100 indbyggede funktioner. Disse funktioner kan bruges til strengeværdier, numeriske værdier, dato- og tidsligninger, node- og QName-opereringer, sekvensoperationer, logiske værdier osv. Du kan også definere dine egne funktioner i XQuery.
Indbyggede XQuery-funktioner
URI for XQuery-funktionens navnespace:
http://www.w3.org/2005/02/xpath-functions
Standardpræfikset for funktionens navnespace er fn:.
Tip:Funktioner kaldes ofte gennem præfikset fn:, f.eks. fn:string(). Dog er fn: den standardnavnespaces præfiks, så præfikset behøver ikke bruges ved kaldet af funktionen.
Du kan finde hele《Referatielink til indbyggede XQuery-funktioner》。
Funktion kald eksempel
Funktion kald kan bruges sammen med udtryk. Se nedenstående eksempel:
Eksempel 1: I elementer
<name>{upper-case($booktitle)}</name>
Eksempel 2: I谓词中的路径表达式
doc("books.xml")/bookstore/book[substring(title,1,5)='Harry'
Eksempel 3: I let-sætningen
let $name := (substring($booktitle,1,4))
XQuery Brugerdefinerede Funktioner
Hvis du ikke kan finde den ønskede XQuery funktion, kan du skrive din egen funktion.
Brugerdefinerede funktioner kan defineres i en query eller i en separat bibliotek.
Syntaks
declare function præfiks:funktionensNavn($parametre AS dataType)
AS ReturneringsdataTypen
{
(: ...funktionens kode... :)
};
Bemærkninger ved brugerdefinerede funktioner:
- Brug declare function nøgleordet
- Funktionens navn skal bruge præfiks
- Parametternes dataTyper er normalt ens med de dataTyper, der er defineret i XML Schema
- Funktionens hoved skal omgives af klammer
Et eksempel på en brugerdefineret funktion, der er deklareret i en 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)
};
(: Her er et eksempel på at kalde den ovennævnte funktion :)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>
- Forrige Side XQuery Vælg
- Næste Side XQuery Opsummering