XQuery funktiot
- Edellinen sivu XQuery valinta
- Seuraava sivu XQuery yhteenvedon
XQuery 1.0, XPath 2.0 ja XSLT 2.0 jakavat saman funktiokirjaston.
XQuery funktiot
XQuery sisältää yli 100 sisäänrakennettua funktiota. Näitä funktioita voidaan käyttää merkkijonoarvojen, lukuarvojen, päivämäärä- ja aikavertailujen, solmu- ja QName-toimintojen, sarjatoimintojen, loogisten arvojen jne. kanssa. Voit myös määritellä omia funktioitasi XQuery:ssä.
XQuery sisäänrakennetut funktiot
XQuery-funktioiden nimenhuoneen URI:
http://www.w3.org/2005/02/xpath-functions
Funktioiden nimenhuoneen oletusarvoinen etuliite on fn:.
Vinkki:Funktiot kutsutaan usein fn: -etuliittimen kautta, esimerkiksi fn:string(). Kuitenkin, koska fn: on nimenhuoneen oletusarvoinen etuliite, funktioiden nimiä ei tarvitse käyttää etuliitettä kutsuttaessa.
Voit löytää täyden 'Sisäänrakennettujen XQuery-funktioiden referenssikirja》。
Funktiokutsujen esimerkki
Funktiokutsut voidaan käyttää yhdessä lausekkeiden kanssa. Katso seuraava esimerkki:
Esimerkki 1: elementissä
<name>{upper-case($booktitle)}</name>
Esimerkki 2: polkisanatekkeessä
doc("books.xml")/bookstore/book[substring(title,1,5)='Harry'
Esimerkki 3: let lauseessa
let $name := (substring($booktitle,1,4))
XQuery käyttäjän määrittämä funktio
Jos ei löydy tarvittavaa XQuery-funktiota, voit kirjoittaa oman funktionsi.
Käyttäjän määrittämät funktiot voidaan määritellä haussa tai erillisessä kirjastossa.
Syntaksi
declare function etuliite:nimimerkki($parametri AS tyyppi)
AS palautettavan datan tyyppi
{
(: ...funktiokoodi... :)
;
Huomioita käyttäjän määrittämistä funktioista:
- Käytä declare function -avainsanaa
- Funktioiden nimet täytyy käyttää etuliitettä
- Parametrien tyyppi yleensä vastaavainen XML Schema -määrittelyssä määritellyille tyyppien
- Funktiojen pääosa on suljettava suluin
Esimerkki käyttäjän määrittämästä funktiosta haussa:
declare function local:minPrice(
$price as xs:decimal?,
$discount as xs:decimal?)
AS xs:decimal?
{
let $disc := ($price * $discount) div 100
return ($price - $disc)
;
(Alla on esimerkki yllä olevan funktion kutsumisesta :)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>
- Edellinen sivu XQuery valinta
- Seuraava sivu XQuery yhteenvedon