目录

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 Schema 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 prefix:function_name($ parameter as datatype)
as returnDatatype
{
 ... function code here...
};

用户定义函数注意事项:

  • 使用声明函数关键字
  • 函数名必须有前缀
  • 参数的数据类型大部分与XML Schema中定义的数据类型相同
  • 函数体必须用大括号括起来

查询中声明的用户定义函数的示例

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>