XQuery自定義函數

XQuery提供編寫自定義函數的功能。 下面列出了創建自定義函數的準則。

  • 使用關鍵字declare function來定義函數。
  • 使用當前XML架構中定義的數據類型
  • 將函數體包含在花括號內。
  • 使用XML命名空間前綴函數的名稱。

創建自定義函數時使用以下語法。

語法

declare function prefix:function_name($parameter as datatype?...)
as returnDatatype?
{
   function body...
};

示例

以下示例顯示如何在XQuery中創建用戶定義的函數。

XQuery表達式

declare function local:discount($price as xs:decimal?,$percentDiscount as xs:decimal?)
as xs:decimal? {
   let $discount := $price - ($price * $percentDiscount div 100) 
   return $discount
};

let $originalPrice := 100

let $discountAvailed := 10

return ( local:discount($originalPrice, $discountAvailed))

輸出結果 -

9

驗證結果
要測試上述函數,用上面的XQuery表達式替換books.xqy(在XQuery環境設置章節中有說明)的內容,並執行XQueryTester java程序來驗證結果。