XQuery - funktiot
- Edellinen sivu XQuery valinta
- Seuraava sivu DTD - esittely
XQuery 1.0, XPath 2.0 ja XSLT 2.0 jakavat saman funktion kirjaston.
XQuery - funktiot
XQuery sisältää yli 100 sisäänrakennettua funktiota. Näitä funktioita voidaan käyttää merkkijonoarvoissa, luvuissa, päivämääriä ja aikaa, solmu- ja QName-toimintoja, sarjojen toimintoja, loogisissa arvoissa ja niin edelleen. Voit myös määrittää omia funktioitasi XQuery:ssä.
XQuery-sisäänrakennetut funktiot
XQuery-funktioiden nimenkerroksen URI:
http://www.w3.org/2005/02/xpath-functions
Funktioiden nimenkerroksen oletusarvoinen etuliite on fn:.
Vinkki:Funktiot kutsutaan usein fn: -etuliitteellä, esimerkiksi fn:string(). Kuitenkin, koska fn: on nimenkerroksen oletusarvoinen etuliite, etuliitettä ei tarvitse käyttää kutsun aikana.
Voit löytää täyden XPath-opetuspaketin <Sisäänrakennettujen XQuery-funktioiden viittauskirja》。
Funktiohakemistojen esimerkki
Funktio voidaan käyttää yhdessä ilmentymien kanssa. Katso seuraava esimerkki:
Esimerkki 1: elementissä
<name>{upper-case($booktitle)}</name>
Esimerkki 2: polkiesittelyn lausekkeessa
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ät funktiot
Jos tarvittavaa XQuery-funktiota ei löydy, voit kirjoittaa oman funktionsi.
Käyttäjän määrittämät funktiot voidaan määrittää kyselyssä tai erillisessä kirjastossa.
Syntaksi
declare function etuliite:funktioimi($parametri AS tyyppi)
AS palautettavan datan tyyppi
{}}
(: ...funktiojen koodi... :)
;
Huomioitavaa käyttäjän määrittämien funktioiden osalta:
- Käytä declare function -avainsanaa
- Funktiojen nimi tulee käyttää etuliitettä
- Parametrien tyyppi yleensä sama kuin XML Schema -määrittelyssä
- Funktiojen pääosa on sulkeissa
Esimerkki käyttäjän määrittämästä funktiosta kyselyssä:
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 kutsusta:)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>
- Edellinen sivu XQuery valinta
- Seuraava sivu DTD - esittely