2022年XQuery查询语言及应用实例 .pdf
《2022年XQuery查询语言及应用实例 .pdf》由会员分享,可在线阅读,更多相关《2022年XQuery查询语言及应用实例 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、XQuery 查询语言及应用实例分析本文介 绍了 XQuery 查询语 言的主要特性,并通 过实 例讨论 了 XQuery 语言在数据 查询 、 转换 等方面的 应用。引言XML 已经成为事实上的数据表示和数据交换的标准。 开始,它的自描述和特定可扩展性等核心特性提供了不同应用程序之 间消息 传输 所需的灵活性。特 别是随着近年来Web Service的蓬勃 发展,XML 越来越多地活 跃在数据交 换和存 储领 域,用 XML 表示的半 结构化数据越来越普遍,在B2B 电子商 务行业中尤其明 显。面 对XML 数据量的指数 级的增 长,必然要求更有效的数据管理能力和更快、更精确的查询 。因此,
2、如何从XML数据源中准确有效地查询 所需信息,也就 变得越来越重要。一、 XQuery 概述XQuery 工作 组于 1999 年 9 月正式成立,其任 务是创建一 种灵活的 查询语 言以便从 XML 文档中抽取数据。目前 W3C 所公布的最新XQuery 草案是 2003 年 11 月 12 日的版本,它 还在不断的修 订和完善之中 1。作为一种新型的 查询语 言, XQuery 汲取了其它多 种查询语 言的 优点,适用于各 种类 型的 XML 数据源的 查询 ,不仅查询功能 强大,而且简洁 灵活且易于 实现 。而且, XQuery 还具有从多 种数据 库中检索信息的特点,它能 对各种数据和
3、文档 进行查询 。XQuery 构建在 XPath 规范之上,其核心是能 够通过 XPath 表达式从文档 选择 特殊的 节点序列。XQuery 是一种将查询 表示成表达式的功能语言。通过它所支持的多 种表达式,它的 查询 可以有各 种不同的形式。各 种XQuery 表达式可以完全嵌套,也支持子查询 。目前,数据库业 界的三大主流厂商Oracle 、 IBM、 Microsoft 都已经在各自的 产品中提供了 对 XQuery 规范的支持。二、 XQuery 及其 应用实例1 查询应 用XQuery 具有 强大的 查询 和检索功能,它通 过各种由关键 字、符号、操作数构成的表达式完成查询 ,其
4、表达式的操作 对象可以又是另一个表达式。作为一种函数 语言,它还允许各种表达式 进行相互嵌套。同 时它也是一 种对数据 类型有要求 严格的 语言,表达式中的操作数,运算符和函数都必须是指定的 类型2。首先来看一个表述书籍信息的 XML 文档 bib.xml 的例子。 china-pub JAVA编程思想 机械工业出版社 2002 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - Bruce Eckel 99 XML手册 电子工业出
5、版社 2003 Charles F. Goldfarb 69 1 1 XPathXPath 是一 种能在 XML 文档中 查找定位信息的 语言,它能从 XML 文件中抽取 单个项目或一 组项 目。 XPath类似于平 时我们在计算机系 统中使用的文件路径,就像我们熟知的 C: WINNT 那样。通过 XPath 路径表达式,可以在 XML 文档中 轻松地定位数据,确定 节点。比如下面 这个基本 类型的 XPath 表达式(对应 上面的 XML文档): /bib/vendor/id。 这个表达式从文档根开始,选择 所有 bib 子元素,然后 选择 bib 的所有 vendor 子元素,最后选择
6、vendor 子元素的所有id 属性。当然,XPath 表达式所提供的能力远远 超过用这条简单语 句所做的工作。使用 XPath 可在 XML 层次结构中快速定位和提取信息,它的内建函数提供了全面的功能,可以方便的处理数值及文本数据。下面列 举一些典型的XPath 路径表达式:(用“/”路径 开始代表元素的 绝对 路径)路径表达式选择 的 XML 文档部分/ 选择 XML 文档的根 结点/* 选择 根结点的所有子 节点,*匹配任意子 节点名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
7、 2 页,共 7 页 - - - - - - - - - /bib 选择 根结点的所有 bib 元素/book 选择 根结点的所有后代 节点中的 book 元素/id 选择 含有 id 属性的子 节点/bib/book2 选择 bib 的第 2 个子元素/vendorid=id1_2/book 选择 符合 “ 属性 id=?id1_2?”的所有 book 元素/bib/vendor/bookyear2002 选择 符合 “ 元素 year?2002? ”的所有 book 元素当然,XPath 还能实现 很多其他的功能,具体请参看 W3C 的 XPath 规范3。1 2 FLWR 表达式XQue
8、ry 中最 强大的特性是FLWR 表达式(发音为 flower ),它是一 种典型的能 够完成具有某 种实际 意义的查询 的表达式。FLWR 表达式包含模式匹配、 过滤选择 和结果构造 这三种操作。FLWR 语句是 XQuery 所具有的最接近于SQL 的语句。使用 FLWR 语句,可以用比XPath 1.0 语句更自然的方法来创建特定的 查询 。5 FLWR 表达式是由FORLETWHERE RETURN 四个 关键 字定 义的子句构成的,在最新的标准中 则更新为 FLWOR , O 代表新加入的Order by 子句。FLWOR 表达式分 别代表 FOR LET WHERE ORDER B
9、Y RETURN 的首字母 缩略词。由此组成的FLWOR 表达式可以完成很多在XSLT 中难以完成的任 务。它支持迭代并且可以把变量绑定到中 间结 果。对两个或多个文档进行连接和重构数据 时这种 表达式非常有用。 每个 FLWOR 表达式都有一个或多个for 子句、一个或多个let 子句、一个可 选的 where 子句、一个 order by 子句以及一个return 子句。FOR 子句通过将节点绑定到 变量,以便继续 去循 环遍历序列中的 每一个 节点; let 子句 为一个 变量赋一个值或一个序列;return 子句定 义每 个元 组要返回的内容; 对于 where 子句,如果其有效布 尔
10、值为 真,那么该 元组就被保留,并且它的 变量绑定用在 return 子句中,如果其有效布 尔值为 假,那么该 元组就被 废弃。下面是一个 简单 例子:下面是一个 简单 例子:for $i in document(bib.xml)/bib/vendor/book where $i/price80 return $i/title, $i/price 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - 此例没有用到let 语句,它只是可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年XQuery查询语言及应用实例 2022 XQuery 查询 语言 应用 实例
限制150内