的XQuery 1.0,XPath 2.0中,和XSLT 2.0共享相同的函数的库。
XQuery函数
的XQuery是建立在XPath表达式。 的XQuery 1.0和XPath 2.0共享相同的数据模型,并支持相同的函数和操作符。
您也可以在XQuery中定义自己的函数。
XQuery的数据类型
XQuery的共享相同的数据类型的XML模式1.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 注意到在用户定义的函数: - 使用声明函数关键字
- 函数的名称必须为前缀
- 的参数的数据类型是大多相同的XML模式中定义的数据类型
- 该函数的主体必须由大括号包围
一个用户定义的函数的例子在查询声明
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>