第13章 XQuery详解

对于大部分信息化系统而言,不可避免地会涉及信息的保存和查询,虽然有些数据管理员在开发时会选择面向对象的数据库管理系统或者由XML驱动的数据库,但关系数据库(RDBMS)依然是时下的主流。对于关系数据库而言,Java 开发人员可以通过JDBC来保存和查询数据。

除此之外,数据库之外的数据大部分都会考虑以XML作为标准数据格式,前面已经介绍了dom4j、JDOM等处理XML的API,但这些处理方式依然显得有些落后,而且不能与JDBC采用一致的编程模型,因为开发者可能希望采用类似标准SQL的语言来查询XML文档中的数据。

如果开发者希望以JDBC的方式来查询XML文档中的数据,那么就需要借助于XQuery,XQuery的全称是XML Query,它是用于查询XML数据的查询语言。类似于SQL语言用于查询关系数据库,XQuery用于查询XML数据。

XQuery查询的XML数据不仅可以是XML文档,还可以是任何能以XML形态呈现的数据,包括数据库。从这个意义上讲,XQuery可以非常方便地从XML数据中提取应用程序所需的数据。

XQuery的本质是一种查询语言,它的地位和关系数据中的SQL类似,因此需要使用合适的工具来执行XQuery查询,目前已有大量工具支持XQuery查询,比如XMLSpy。此外,Saxon也可以执行XQuery查询。但如果希望在Java程序中获得XQuery的执行结果,则可借助于XQJ,它的全称是XQuery API for Java,其地位类似于JDBC API。

本章要点

alt XQuery的作用和意义

alt XQuery和XPath、XSLT之间的关系

alt 执行XQuery的工具

alt XQuery基本表达式

alt XQuery的序列表达式

alt XQuery的算术表达式

alt XQuery的比较表达式

alt XQuery的逻辑表达式

alt XQuery的构造器

alt XQuery的FLWOR表达式

alt XQuery的if表达式

alt XQuery的some/every判断表达式

alt XQuery中与序列类型相关的运算符

alt XQuery查询的结构

alt XQuery查询模块和序言

alt XQuery序言的各种成分

alt 使用XQJ执行XQuery查询