XQuery 函数
-
定义和使用
XQuery 1.0,XPath 2.0 和 XSLT 2.0 共享相同的函数库。XQuery 基于 XPath 表达式构建。 XQuery 1.0 和 XPath 2.0 共享相同的数据模型,并支持相同的功能和运算符。- XPath 运算
- XPath 函数参考
您还可以在 XQuery 中定义自己的函数。
-
XQuery 数据类型
XQuery 数据类型XQuery 与 XML Schema 1.0(XSD)共享相同的数据类型。- XSD 字串(String)
- XSD 日期(Date)
- XSD 数值(Numer)
- XSD 杂项(Misc)
-
函数调用的例子
在可能出现表达式的地方可能会出现对函数的调用。 看下面的例子:示例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 函数,则可以编写自己的 XQuery 函数。用户定义的函数可以在查询中或在单独的库中定义。语法
declare function prefix:function_name($parameter as datatype) as returnDatatype { ...代码功能... };
关于用户定义函数的注意事项:- 使用声明函数关键字(declare function keyword)
- 函数名称必须带前缀(prefixed)
- 参数的数据类型与 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) }; 以下是如何调用上述函数的示例: <minPrice>{local:minPrice($book/price,$book/discount)}</minPrice>