现在,原来越多的信息以XML的格式进行存储、传送以及展现,对XML数据的查询也就显得原来越重要。2005年11月3号, W3C发布了关于XML查询的8个备选推荐规范,
- XSLT and XQuery:
- XQuery and XPath:
而在这之前规范一直处于草案阶段,也许明年W3C就会发布XQuery的定稿规范了。另外,IBM、Microsoft、Oracle等大厂商也大力支持XQuery标准。DataDirect公司发布的市场调查报告显示有超过52%的XML开发者已经开始使用XQuery,另外有33%的开发者准备使用XQuery了。共有来自48个国家的550名软件开发者参与了这次调查。
XQuery的前身是Quilt,而Quilt本身又集合了许多其他语言的优点而形成的查询语言,从XPath和XQL,Quilt引入了路径表达语法;从XML-QL,Quilt引入了变量绑定,使变量成为查询的表达式之一;从SQL,它借用了基于关键字的查询子句的思想,像SFW语句一样,Quilt提供一个构造查询结果的语句;从OQL,Quilt借用了使查询语句成为可以嵌套的表达式的思想;Quilt还引入了其他XML查询语言如Lorel和YATL一些思想。Quilt的作者Don Chamberlin,Jonathan Robie和Daniela Florescu,目前都是XQuery规范工作组的主要成员。
1999年,W3C XML查询工作组成立。2000年,工作组提出了几个主要的草案,包括XQuery需求、数据模型、典型用例以及查询代数。2001年6月,W3C XML查询工作组和W3C XSL工作组一起又提出了新的草案,主要是对XPath的增强,并提出了XQuery 1.0和XPath 2.0的数据模型,XML查询正式语义替代了原先的查询代数规范。同年8月,又提出了XQuery1.0和XPath2.0的函数和操作符规范。此后,除了对已有规范的不断增强外,还于2003年2月提出XQuery1.0和XPath2.0全文检索需求、全文检索用例规范,以及2003年5月提出XSLT2.0和XQuery1.0序列化规范,2004年提出XQuery1.0和XPath2.0全文检索规范。需要特别提出的是,XQuery一直以来别别人所诟病的是它缺乏关于更新(Update)的规范。而W3C XML查询工作组显然也意识到了这一点,他们于2005年推出了XQuery更新需求规范。
有人也许觉得从1999年到如今,XQuery的发展已经经过了6年的逐步完善,怎么还没有定稿呢?还没有成为正式的标准呢?但是如果我们回顾一下SQL的历史,就会发现XQuery的发展步伐其实已经很快了。目前,市面上已经有不少的XQuery引擎,比如Ipedo的XIP平台、Software AG的Tamino XML Server、Oracle 10G中的 Oracle XQuery、Microsoft's SQL Server 2005 Express、BEA的AquaLogic Data Services Platform 、DataDirect的DataDirect XQuery (tm)、Mark Logic的Content Interaction Server等。同时,在开源社区也涌现了不少好的XQuery引擎,比如eXist、Berkeley DB XML 2.0、Saxonica的Saxon和Fatdog Software的XQEngine等。
另外,Sun、IBM、Oracle等发起和支持的XQJ(XQuery API for Java)的出现,对于XQuery的推广也会起到推波助澜的作用。XQJ之于XQuery就如同JDBC之于SQL,由此可见它的重要性。目前,对于XQJ支持得比较好的是DataDirect公司的DataDirect XQuery。
总之,XQuery越来越重要了。对于我们开发人员来说,是需要关注它了。