XQuery 1.0, XPath 2.0, dan XSLT 2.0 berbagi fungsi yang sama perpustakaan.
Fungsi XQuery
XQuery dibangun pada ekspresi XPath. XQuery 1.0 dan XPath 2.0 berbagi model data yang sama dan mendukung fungsi dan operator yang sama.
Anda juga dapat menentukan fungsi sendiri di XQuery.
Jenis XQuery data
XQuery berbagi tipe data yang sama seperti XML Schema 1.0 (XSD) .
Contoh Fungsi Panggilan
Panggilan untuk fungsi dapat muncul di mana ekspresi mungkin muncul. Lihatlah contoh di bawah ini:
Contoh 1: Dalam sebuah elemen
<name>{upper-case($booktitle)}</name>
Contoh 2: Dalam predikat ekspresi path
doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']
Contoh 3: Dalam klausul let
let $name := (substring($booktitle,1,4))
XQuery Fungsi User-Defined
Jika Anda tidak dapat menemukan fungsi XQuery yang Anda butuhkan, Anda dapat menulis sendiri.
fungsi User-defined dapat didefinisikan dalam query atau di perpustakaan terpisah.
Sintaksis
declare function Catatan pada fungsi user-defined: - Gunakan fungsi declare kata kunci
- Nama fungsi harus diawali
- Tipe data dari parameter sebagian besar sama dengan tipe data yang didefinisikan dalam Skema XML
- Tubuh fungsi harus dikelilingi oleh kurung kurawal
Contoh Fungsi ditetapkan pengguna yang diumumkan Query
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>