最新的Web開發教程
 

XQuery函數


的XQuery 1.0,XPath 2.0中,和XSLT 2.0共享相同的函數的庫。


XQuery函數

的XQuery是建立在XPath表達式。 的XQuery 1.0和XPath 2.0共享相同的數據模型,並支持相同的函數和操作符。

XPath運算符

XPath函數

您也可以在XQuery中定義自己的函數。


XQuery的數據類型

XQuery的共享相同的數據類型的XML模式1.0 (XSD)

XSD字符串

XSD日期

XSD數值

XSD雜項


函數調用的例子

對函數的調用可以出現其中一個表達式可能出現。 請看下面的例子:

實施例1:在一個元件

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

實施例2:在一個路徑表達式的謂詞

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

實施例3:在一個let子句

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

XQuery的用戶定義函數

如果你不能找到你需要的XQuery函數,你可以寫你自己的。

用戶定義的函數可以在查詢中或在獨立的庫中定義。

句法

declare function 注意到在用戶定義的函數:

  • 使用聲明函數關鍵字
  • 函數的名稱必須為前綴
  • 的參數的數據類型是大多相同的XML模式中定義的數據類型
  • 該函數的主體必須由大括號包圍

一個用戶定義的函數的例子在查詢聲明

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>