XQuery 函数

创建于 2024-12-03 / 32
字体: [默认] [大] [更大]

XQuery 1.0、XPath 2.0和XSLT 2.0共享相同的函数库。


XQuery 函数

XQuery是基于XPath表达式构建的。XQuery 1.0和XPath 2.0共享相同的数据模型,并支持相同的函数和运算符。

XPath XPath 运算符

XPath 函数

您还可以在XQuery中定义自己的函数。


XQuery数据类型

XQuery与XML Schema1.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...
};

关于用户定义函数的注释:

  • 使用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>

0 人点赞过