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程序来验证结果。