XQuery Fonksiyonları
- Önceki Sayfa XQuery Seçimleri
- Sonraki Sayfa DTD Tanıtımı
XQuery 1.0, XPath 2.0 ve XSLT 2.0 aynı fonksiyon kitaplığını paylaşır.
XQuery Fonksiyonları
XQuery 100'den fazla dahili 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, dizgi işlemleri, mantıksal değerler vb. için kullanılabilir. Ayrıca, XQuery'de kendi fonksiyonlarınızı tanımlayabilirsiniz.
XQuery dahili fonksiyonları
XQuery fonksiyon adlandırma alanının URI'si:
http://www.w3.org/2005/02/xpath-functions
Fonksiyon adlandırma alanının varsayılan öneki fn: dir.
İpucu:Fonksiyonlar genellikle fn: öneki ile çağrılır, örneğin fn:string(). Ancak, fn: adlandırma alanının varsayılan öneki olduğu için, fonksiyon adı çağrılırken önek kullanılmayabilir.
Tamamen <XPath Eğitim Seti> 'i bulabilirsinizDahili XQuery fonksiyonları referans el kitabı》。
Fonksiyon çağrısı örneği
Fonksiyon çağrıları ifadelerle birlikte kullanılabilir. Aşağıdaki örneğe bakın:
Örnek 1: Eleman içinde
<name>{upper-case($booktitle)}</name>
Örnek 2: Yol ifadesinin predikatı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ı fonksiyonları
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 öneki:fonksiyon_adı($parametre AS veri_türü)
AS dönen veri türü
{}}
(: ...fonksiyon kodu... :)
;
Kullanıcı tanımlı fonksiyonlar hakkında dikkat edilmesi gerekenler:
- declare function anahtar kelimesini kullanın
- Fonksiyon adında önek kullanılmalıdır
- Parametre veri türleri genellikle XML Şemasında tanımlanan veri türleriyle uyumludur
- Fonksiyon gövdesi parantezler içinde olmalıdır
Bir kullanıcı tanımlı fonksiyon ö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 şunlardır :)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>
- Önceki Sayfa XQuery Seçimleri
- Sonraki Sayfa DTD Tanıtımı