XQuery数据查询语言[1-1] (转载)

来源:互联网 发布:java 半角转全角处理 编辑:程序博客网 时间:2024/04/20 12:24
 

XQuery数据查询语言[1]XQuery概述

最后更新:2004328

声明:本文译自Howard Katz先生以及SQL语言和XQuery语言的开发者Don Chamberlin先生的著作XQuery from the Experts: A Guide to the W3C XML Query Language。以供学习者享用。

本文首发于计算机科学技术网  http://www.cstc.net.cn/

有关译者的更多文章可以通过译者的主页获得:http://www.zengyihome.net

译文表列:

l          XQuery数据查询语言指南[1]--概述

l          XQuery数据查询语言指南[2]--路径表达式

l          XQuery数据查询语言指南[3]--数据模型 ,文字注释与输入函数

l          XQuery数据查询语言[4]--创建结点:元素,属性以及文档构造器

作者简介:

 Howard Katz住在加拿大不列颠哥伦比亚省的Roberts Creek,他是 Fatdog Software 的所有人,这是一家专门从事开发搜索 XML 文档的软件的公司。他是 XQEngine 的作者,这是一个基于 Java 的开放源代码 XQuery 引擎。在过去的大约 35 年里,他一直是活跃的程序员(一直业绩良好),并且长期为计算机行业刊物撰写技术文章。他曾为 Microsoft 撰写一个在线 Java 专栏,并且每月为 Apple 写一篇关于面向对象编程方面的专栏文章。他是温哥华 XML 开发者协会的共同主持者之一。他和他的妻子夏天去海上划船,冬天去边远地区滑雪。

XML (扩展性标签语言)是一种极为通用的数据格式,它可以用来描述很多不同种类的数据,包括网页,网络消息,书籍,商业与核算资料,关系数据库表的XML表示,程序设计接口,对象,财物事项往来,棋类游戏,矢量图,多媒体图像,信用应用程序,系统日志,以及用古希腊手稿写成的文本变量。

    另外,一些系统提供非XML数据源的XML格式浏览,例如关系数据库,允许物理上没有被描述为XML格式的基于XML的数据处理。XML文档可以表示几乎所有的东西,XML数据查询语言的用户希望能够对他们储存在XML当中的任何数据进行有效的查询。XML文档以及在其上进行的数据查询的例子可以在[XQ-UC]这份文档中找到。

    无论存储在XML当中的数据有多么复杂,XML的结构本身是简单的。XML文档本质上讲就是一个以顺序和层次为主要结构单元的轮廓。XQuery正是基于XML的这种结构的,它使用这种结构来为同样范围内的XML存储的数据提供查询能力。更为精确地说,XQuery是以XQuery 1.0以及XPath 2.0数据模型的形式定义的[XQ-DM],并将XML文档的分析结构描述为有序的,做上标记的树,树上的每一个结点都有一个不同的身份并可能具有简单的或者复杂的类型。XQuery能够被用于对没有任何模式(schema)的XML数据进行查询,也可以对由World Wide Web Consortium (W3C) XML 模式或者由文件类型定义(DTD)来管理的数据进行查询。 需要注意的是XQuery所使用的数据模型与古典的关系模型截然不同,在XQuery没有层的概念,顺序在这里也不是很重要,并且不支持身份(Identity)。XQuery是一种功能性的语言与程序设计语言那样执行命令不同的是,每一个查询都是一个待求值的表达式,并且表达式之间可以进行非常灵活的组合来创建一个新的表达式。

    本章结合一系列的例子对XQuery语言进行了一个高水平的介绍,其中每一个例子都描述了这种语言的一个重要的特性,并且展示了如何在实践中使用这个特性。一些例子是从[XQ-UC]当中引用过来的。我们在这本书中覆盖了XQuery的大部分语言特性,并且聚焦于教授使用XQuery解决特殊种类问题的惯用方法。我们以一个作为输入输出查询的XML文档结构的讨论开始,随后介绍一些在XML上进行的基本操作XML结构中使用路径表达式(path expression)查找结点,使用元素构造器(element constructor)构建XML结构,使用FLOWOR表达式、查找、条件表达式、定量表达式(quantified expression)从XML文档对信息进行组合和重构。在这之后,我们开始研究操作符与函数,讨论算术操作符,比较,在XQuery函数库当中的一些常用函数,以及如何编写与调用用户定义的函数。最后,我们讨论如何在数据查询中导入和使用XML模式类型。

    如果能够有机会进行XQuery的实现,很多读者将会理解的非常好。一些很好的实现都可以从Internet上免费下载;你可以在W3C XML Qurey工作组的主页找到一个资源列表,可以也就是下面的这个地址http://www.w3.org/xml/Query.html

    这章是基于20035XQuery语言的工作草案编写的。XQuery仍然在研发阶段,在这章中讨论这种语言的一些方面可能会有变化。

样例数据:参考书目

    本章用参考书目数据来描述XQuery的基本特性。所用的数据是从XML Query 用例中提取的,就是用例"XMP" ,这个最早出现在[EXEMPLARS]当中。我们对数据进行了一些修改以描述一些要讨论的内容。所要用的数据在程序清单1.1当中。