简介
多年以来,开发人员一直使用 SQL 来检索结构化数据源(如关系数据库)中的数据。 但对于非结构化和半结构化的数据源(如 XML 数据),该怎么办呢? 为了成为切实可行的数据源,XML 需要一种方便检索数据的方法。XML XQuery(也称作 XQuery)提供了这种方法, 它允许开发人员编写抽取数据以及将结果结构化成 XML(如果需要的话)的语句。
本教程向您讲授如何使用 XQuery 来检索 XML 文件中的信息。 它还说明了 XPath 版本 2.0 中的一些变化以及这些变化对数据管理的意义。
您应该熟悉 XML。了解 XPath 1.0 也是有帮助的,但不是必需的。文章中提供的一些编程示例使用了 Java 技术, 但原理对于任何语言都是一样的。
随着 XML 作为一种存储数据的格式不断成熟,用于从非结构化格式(如 XML 文档)检索信息的类 SQL 语言的重要性也就越大。XML Query 响应了这一需求。 它利用了几种不同的结构和思想,包括为 XSLT 2.0 而对 XPath 进行的更改。
通过 XQuery,可以从一个或多个 XML 文档选择非常准确的数据集,并输出 XML 结构作为响应。 它还包括成熟的类型管理并且能够创建适合不同情形的查询。
本教程通过使用 XQuery 和 XPath 2.0 中的更改,来指导您完成创建和理解不同类型的可用查询的整个过程。其过程如下:
- XQuery 基础知识:提供主题概述,并对每个主题作简短说明。
- 使用 XQuery 引擎:查看一个试验性的基于 Java 的 XQuery 实现并创建样本应用程序,展示将来的实现可能会如何工作。
- FLWR 语句:说明 FOR-LET-WHERE-RETURN 语句的用法,其使用方式与 SQL 相似。
- XPath 表达式:研究 XPath 表达式从 XML 文档选择特定节点的方法。
- 序列:研究序列,它替换 XPath 1.0 的节点集,并研究一些作用于序列的操作和函数。
- 附加特性 说明可以在 XQuery 表达式中使用的一些较高级的构造。
- XQuery 及其未来:研究将来可能会用什么方法使用 XQuery,包括正处于开发阶段的 W3C 工作草案。
本教程显示了所有查询的输出,因此无需为了理解所讨论的概念而真正运行它们。 然而,如果您希望运行一些查询,可以下载并安装一个试验性的 XQuery 引擎。 请确保以下各项已经安装并测试:
- Java 2 SDK,标准版版本 1.4:可以从 http://java.sun.com/j2se/ 下载 Java SDK。
- XQuery 引擎:可以从 http://www.fatdog.com/ 下载 XQEngine, 它是基于 XQuery 规范的 2001 年 2 月 15 日工作草案的试验性引擎。 在写作本文的时候,其作者正在计划开发引擎的开放源码版本。 他们期望添加额外支持,但使整体 API 保持一致。