XQuery ,可以认为是“XML Query”,是W3C为使用简单和统一的语法来访问分布式的信息存储系统例如内容仓库,文件,关系型数据库,和对象仓库而制订的XML标准。XQuery使用XML结构的优势能表达跨越多种类型数据查询的能力。
XQuery将成为一种用于描述对XML数据源的查询的语言,具有精确、强大和易用的特点。其支持者认为针对XML的XQuery非常类似针对关系数据库的SQL。对XQuery语言标准的定义工作还停留在W3C候选推荐阶段,而这也是在经过几次迭代后于2005年11月才达到的。XQuery的开发工作与XPath、XSLT 2.0以及XMLSchema的开发工作紧密相关。W3C的XML Query工作组对Xquery的研究工作开始于1999年。它始于一种叫做Quilt的XML查询语言,而Quilt又来自于XQL和XML-QL两种早期的XML查询语言。
XML Query工作组旨在设计一种语言能够达到以下要求:能够满足结构化和半结构化文档协议独立性;能够在任何系统下获得可以预期的结果;定义一种declarative language而非程序实现;强类型,能够识别潜在异常以及进行查询优化;能够跨文档集查询;尽可能共享和使用w3c标准,例如XML1.0,Namespaces,XML Schema 和Xpath 。2007年1月Xquery 1.0 正式成为W3C标准
XQuery - Xquery和SQL
Xquery在很大程度上借鉴了SQL,而且很多Xquery的设计人员同时也参与了SQL的设计。Xquery和SQL的区别非常清晰,Xquery用于XML而SQL用于关系数据。但是,现在它们之间的区别日渐模糊,因为很多关系数据库开始增加XMl支持,允许将XML数据存储到关系数据库当中。Xquery不可能代替SQL在关系数据库中查询结构化数据的作用。这两种查询语言将同时存在,并用于不同的数据查询当中,Xquery用于非结构化数据查询和基于XML的应用程序;SQL继续用于结构化的关系数据。 XQuery - Xquery和Xpath XPath是一种在XML文档中通过层次机构选取元素和属性的语言。XPath1.0是一个简单有效的标准,它提供了有限的函数和表达式。XPath2.0远远超越了XPath1.0,提供了丰富的函数和表达式。Xquery1.0和XPath2.0有很大程度的重叠,它们有相同的数据模型和内建函数及操作符。XPath2.0可以说是Xquery1.0的子集。Xquery包含了很多XPath所不具备的功能,如FLWORs和XML构造器,这是因为它们和选取无关而和构造存储查询结果有关。