Fungsi XQuery

XQuery 1.0, XPath 2.0, dan XSLT 2.0 berbagi library fungsi yang sama.

Fungsi XQuery

XQuery memiliki lebih dari 100 fungsi bawaan. Fungsi ini dapat digunakan untuk nilai string, angka, tanggal dan waktu pembanding, operasi node dan QName, operasi sekuen, nilai logika, dll. Anda juga dapat mendefinisikan fungsi sendiri di XQuery.

Fungsi Bawaan XQuery

URI Ruang Nama Fungsi XQuery:

http://www.w3.org/2005/02/xpath-functions

Prefiks ruang nama standar fungsi adalah fn:.

Petunjuk:Fungsi sering dipanggil melalui prefiks fn:, seperti fn:string(). Namun, karena fn: adalah prefiks ruang nama standar, nama fungsi tidak perlu digunakan saat dipanggil.

Anda dapat menemukan keseluruhan《Panduan Fungsi XQuery Sifat Dalam》。

Contoh pemanggilan fungsi

Pemanggilan fungsi dapat digunakan bersamaan dengan ekspresi. Lihat contoh di bawah ini:

Contoh 1: Dalam elemen

<name>{upper-case($booktitle)}</name>

Contoh 2: Dalam predikat ekspresi jalur

doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']

Contoh 3: Dalam pernyataan let

let $name := (substring($booktitle,1,4))

Fungsi penggunaan kustom XQuery

Jika fungsi XQuery yang diperlukan tidak dapat ditemui, anda boleh menulis fungsi sendiri.

Fungsi penggunaan kustom boleh ditakrifkan di dalam kueri atau pustaka terpisah.

Syarat

declare function awalan:nama_fungsi($parameter AS jenis_data)
  AS jenis data yang kembali
{
(: ...kode fungsi... :)
;

Pertimbangan tentang fungsi penggunaan kustom:

  • Gunakan kata kunci declare function
  • Nama fungsi harus menggunakan awalan
  • Jenis data parameter biasanya sejalan dengan jenis data yang ditakrifkan dalam XML Schema
  • Isi fungsi harus diselubungi kurung kurawal

Contoh fungsi penggunaan kustom yang diumumkan dalam kueri:

declare function local:minPrice(
  $price as xs:decimal?,
  $discount as xs:decimal?)
  AS xs:decimal?
{
let $disc := ($price * $discount) div 100
return ($price - $disc)
;
(: Contoh pemanggilan fungsi di atas :)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>