XQuery 函数
XQuery 1.0、XPath 2.0和XSLT 2.0共享相同的函数库。
XQuery 函数
XQuery是基于XPath表达式构建的。XQuery 1.0和XPath 2.0共享相同的数据模型,并支持相同的函数和运算符。
您还可以在XQuery中定义自己的函数。
XQuery数据类型
XQuery与XML Schema1.0(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...
};
关于用户定义函数的注释:
- 使用declare function关键字
- 函数名必须加前缀
- 参数的数据类型与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>