XQuery 函数概述

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

XQuery 函数

XQuery 含有超过 100 个内建的函数。这些函数可用于字符串值、数值、日期以及时间比较、节点和 QName 操作、序列操作、逻辑值等等。您也可在 XQuery 中定义自己的函数。

XQuery 内建函数

XQuery 函数命名空间的 URI:

http://www.w3.org/2005/02/xpath-functions

函数命名空间的默认前缀是 fn:。

提示:函数经常被通过 fn: 前缀进行调用,例如 fn:string()。不过,由于 fn: 是命名空间的默认前缀,所以函数名称不必在被调用时使用前缀。

函数调用实例

函数调用可与表达式一同使用。请看下面的例子:

例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 前缀:函数名($参数 AS 数据类型)
AS 返回的数据类型
{
 ...函数代码...
}

关于用户自定义函数的注意事项

  1. 请使用 declare function 关键词
  2. 函数名须使用前缀
  3. 参数的数据类型通常与在 XML Schema 中定义的数据类型一致
  4. 函数主体须被花括号包围

一个在查询中声明的用户自定义函数的例子

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>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容简介 XQuery是专门针对XML的查询语言,其作用类似于关系数据库的SQL。   本书比较深入全面地介绍了XQuery相关知识,包括XQuery概述和快速指南,如何使用XQuery编写简单和复杂的查询,如何对XML数据过滤、排序和分组,还讲述了FLWOR表达式、XPath及提取、组合数据的XQuery工具。本书的附录提供了XQuery函数、内置类型及错误信息,因此可以作为XQuery编程指南。   本书的特点是用简洁的语言深入浅出地介绍了XQuery方方面面的知识,在讲述有些内容时把XQuery与其他广为人知的技术如SQL等相对比,使得读者可以很快上手。阅读本书只须要了解一些基础的XML背景知识。本书除了用于指导编程外,还可用作提高与优化XML数据检索性能的参考书。   本书不仅适合那些须要操作大量XML数据的程序员(不管是使用C#还是Java等语言的程序员都适合阅读本书),还适合管理XML数据库的管理员,以及那些非IT行业但须要频繁使用XML数据的业务人员。   这是一本适合作为XQuery学习教材和参考指南的书。 作者简介 Priscilla Walmsley,多年深入从事XQuery和XML Schema相关工作。她是W3C XML Schema工作组1999年到2004年的成员。此外,她还编写了广受好评的《Definitive XML Schema》(Prentice Hall出版社)(译者注:中文名《XML模式权威教程》)一书。最近Priscilla担任Datypic(www.datypic.com)的常务董事,在那里她专注于XML和面向服务架构(SOA)相关的咨询和培训。 目录 前言 第1章 XQuery介绍  1.1 什么是XQuery  1.2 转向XQuery  1.3 路径表达式  1.4 FLWOR表达式  1.5 添加XML元素和属性  1.6 函数  1.7 连接  1.8 求和与分组 第2章 XQuery基础  2.1 XQuery语言的设计  2.2 XQuery与其他标准的关系  2.3 处理查询  2.4 XQuery数据模型  2.5 类型  2.6 命名空间 第3章 表达式:XQuery的组成部分  3.1 表达式种类  3.2 关键字和名称  3.3 查询中的空白符  3.4 字面值  3.5 变量  3.6 函数调用  3.7 注释  3.8 计算顺序和括号  3.9 比较表达式  3.10 条件(ifIthen-else)表达式  3.11 逻辑表达式 第4章 使用路径定位输入文件 4.1 路径表达式 4.2 谓词 4.3 动态路径 4.4 输入文件 4.5 深入了解上下文 第5章 在结果中增加元素和属性  5.1 包含输入文件中的元素和属性  5.2 直接元素构造器  5.3 计算构造器 第6章 使用FLWOR表达式查询和连接  6.1 使用路径表达式查询  6.2 FLWOR表达式  6.3 量化表达式  6.4 选择不同的值  6.5 连接 第7章 排序和分组  7.1 XQuery中的排序  7.2 分组  7.3 对值求聚合 第8章 函数  8.1 内置函数与用户自定义函数  8.2 调用函数  8.3 用户自定义函数 第9章 高级查询  9.1 复制并修改输入文件  9.2 使用位置和序列编号  9.3 合并结果  9.4 使用中间.XML文档 第10章 命名空间与XQuery  10.1 命名空间  10.2 命名空间和XQuery  10.3 查询中的命名空间声明  10.4 在结果中控制命名空间声明 第11章 深入了解类型  11.1 XQuery类型系统  11.2 内置类型  11.3 类型、节点和原子值  11.4 XQuery中的类型检查  11.5 自动类型转换  11.6 序列类型  11.7 构造器和转换 第12章 查询、序言和模块  12.1 查询的结构:序言和主体  12.2 集中使用多个模块中的查询  12.3 变量声明  12.4 声明外部函数 第13章 在XQuery中使用Schema  13.1 什么是Schema  13.2 为什么在查询中使用Schema.  13.3 W3C XML Schema:概述  13.4 作用域内的Schema定义  13.5 Schema校验和类型分配  13.6 序列类型和Schema 第14章 静态类型  14.1 什么是静态类型  14.2 typeswitch表达式  14.3 treat表达式  14.4 类型声明  14.5 zero-or-one,one—or-more和exactly—one函数 第15章 查询设计的原则  15.1 查询设计的目标  15.2 清晰化  15.3 模块化  15.4 健壮性  15.5 错误处理  15.6 性能 第16章 操作数值  16.1 数值类型  16.2 创建数值  16.3 比较数值  16.4 算术操作符  16.5 数值函数 第17章 操作字符串  17.1 xs:string类型  17.2 创建字符串  17.3 比较字符串  17.4 子字符串  17.5 得到字符串的长度  17.6 字符串连接和拆分  17.7 操作字符串  17.8 空白符和字符串  17.9 国际化考虑 第18章 正则式  18.1 正则式的结构  18.2 表示单个字符  18.3 表示任意字符  18.4 表示字符的组  18.5 字符类表达式  18.6 勉强模式  18.7 锚  18.8 向后引用  18.9 使用标记  18.10 使用带替换变量的子表达式 第19章 操作日期、时间和时间段  19.1 日期和时间类型  19.2 时间段类型  19.3 提取日期、时间和时间段的组成部分  19.4 使用算术操作符处理日期、时间和时间段  19.5 日期组成部分类型 第20章 操作限定名,URI和ID 20.1 操作限定名 20.2 操作uRI 20.3 操作ID 第21章 操作其他×ML组件  21.1 XML  21.2 处理指令  21.3 文档  21.4 文本节点  21.5 XML实体和字符引用  21.6 CDATA段 第22章 其他XQuery相关的标准  22.1 序列化  22.2 XQueryX  22.3 XQuery修改功能  22.4 全文检索  22.5 用于Java(XQJ)的XQuery API 第23章 实现工具特有的特征  23.1 一致性  23.2 XML,版本支持  23.3 设置查询上下文  23.4 选项声明和扩展表达式  23.5 指定序列化参数 第24章 SQL用户的×Query  24.1 关系模型与XML数据模型  24.2 比较SQL语法和XQuery语法  24.3 结合SQL与XQuery  24.4 SQL/XML 第25章 XSLT用户的XQuery  25.1 XQuery和XPath  25.2 XQuery与XSLT  25.3 XQuery 1.0/XPath 2.0和XPath 1.0的差别 附录A 内置函数参考 附录B 内置类型 附录C 错误汇总 索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值