XQuery Fonksiyonları
- Önceki Sayfa XQuery Seçme
- Sonraki Sayfa XQuery Özeti
XQuery 1.0, XPath 2.0 ve XSLT 2.0 aynı fonksiyon kütüphanesini paylaşır.
XQuery Fonksiyonları
XQuery 100'den fazla içsel fonksiyon içerir. Bu fonksiyonlar, string değerleri, sayısal değerler, tarih ve zaman karşılaştırmaları, düğüm ve QName işlemleri, sıra işlemleri ve mantıksal değerler için kullanılabilir. Ayrıca, XQuery'de kendi fonksiyonlarınızı tanımlayabilirsiniz.
XQuery İçerikli Fonksiyonlar
XQuery Fonksiyon Adlandırma Alanı URI'si:
http://www.w3.org/2005/02/xpath-functions
Fonksiyon adlandırma alanının varsayılan öneksi fn:.dır.
İpucu:Fonksiyonlar genellikle fn: öneki ile çağrılır, örneğin fn:string(). Ancak, fn: adlandırma alanının varsayılan öneksi olduğu için, fonksiyon adı çağrılırken önek kullanmak zorunlu değildir.
Tam metni, XPath eğitimimizde bulabilirsiniz:XQuery İçerikli Fonksiyon Referans Kılavuzu》。
Fonksiyon çağrıları örneği
Fonksiyon çağrıları, ifadelerle birlikte kullanılabilir. Aşağıdaki örneklere bakın:
Örnek 1: Eleman içinde
<name>{upper-case($booktitle)}</name>
Örnek 2: Yol ifadesinin önyargısında
doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']
Örnek 3: let ifadesinde
let $name := (substring($booktitle,1,4))
XQuery kullanıcı tanımlı fonksiyonu
Gerekli XQuery fonksiyonunu bulamıyorsanız, kendi fonksiyonunuzu yazabilirsiniz.
Kullanıcı tanımlı fonksiyonlar sorgularda veya bağımsız kütüphanelerde tanımlanabilir.
Sözdizimi
declare function ön eki:fonksiyon adı($parametre AS veri türü)
AS geri dönen veri türü
{
(: ...fonksiyon kodu... :)
;
Kullanıcı tanımlı fonksiyonlar hakkında dikkat edilmesi gerekenler:
- declare function anahtar kelimesini kullanın
- Fonksiyon adları ön ek kullanmalıdır
- Parametre veri türleri genellikle XML Şemasında tanımlanan veri türleriyle uyumludur
- Fonksiyon içeriği parantezler içinde yer almalıdır
Bir kullanıcı tanımlı fonksiyonun tanımlanmış bir örneği:
declare function local:minPrice(
$price as xs:decimal?,
$discount as xs:decimal?)
AS xs:decimal?
{
let $disc := ($price * $discount) div 100
return ($price - $disc)
;
(: Yukarıdaki fonksiyonu çağıran örnekler aşağıdadır :)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>
- Önceki Sayfa XQuery Seçme
- Sonraki Sayfa XQuery Özeti