www.baike369.com
百科369 > XML教程 > XML查询语言——XQuery

XML查询语言——XQuery



XML查询语言——XQuery

现在大量的信息存储为XML格式,或者可以从关系数据库和其它具有XML功能的数据库转换为XML格式。随着基于XML格式的信息量日益增大,迫切需要一种能够有效地查找和利用XML数据的查询语言,即W3C组织——万维网联盟开发的XML查询语言,称之为XQuery。
    XQuery在XML领域里的重要性很像SQL在关系数据库领域里的地位。


XQuery实例

Saxon可以在Java或.NET应用程序中运行XQuery查询,我们使用命令行执行查询命令。Saxon用于XSLT处理的语法与用于XQuery查询的语法的一个差别是,在命令行里不需要指定需要查询的XML文档的位置,而是用XQuery的输入函数确定。

XQuery的输入函数——doc()函数

doc()函数用于指定需要查询的XML文档。

XQuery的输入函数——collection()函数

collection()函数可以一次同时处理多个XML文档。

XQuery检索节点

在XQuery里,我们可以用XPath表达式检索节点,而且这种方法简单直观。

XQuery元素构造器(一)

在XSLT里,用字面结果元素可以把新元素插入到结果文档里。

XQuery元素构造器(二)

在XQuery的查询命令中:把查询表达式doc("SimpleBooks.xml")/Books/Book放在了一对大括号里。

XQuery元素构造器(三)

使用下面的XQuery查询命令,可以从BibAdapted.xml文件生成一个良构的XML文档:将上面的内容保存到BibQuery2.xquery文件内。

XQuery元素构造器(四)

到现在为止,我们已经用简单的XPath表达式,根据XML源文档的结构生成了输出结果。

XQuery序体

XQuery文档的序体是用来给XQuery处理器提供必要的信息的,这些信息是正确执行一个查询命令所必不可少的。

XQuery计算构造器(library)

我们已经知道,如何使用字面起始标签和结束标签在查询结果里构造一个元素。

XQuery注释((:......:))

在XQuery中,注释放在一对符号里,它的起始符号是(:,结束符号是:)。

XQuery字符串的分隔符

在XQuery里,字符串用一对双引号或一对单引号表示,用这种方法创建元素时,把它们的内容当作字符串常量表示。


XQuery数据模型

XQuery的数据模型与XPath 1.0的数据模型有很大的区别,但也有相似之处。

XQuery的轴

XQuery处理器不支持XPath的名称空间轴。

XQuery与XPath 2.0和XSLT 2.0共享的数据模型

XQuery数据模型与XPath 2.0和XSLT 2.0的数据模型属于同一类型的数据模型。

XQuery节点类型

XQuery的节点种类(Node Kind)相当于XPath 1.0的节点类型(type of node)。

XQuery节点集序列

XQuery用序列概念(Sequence)代替了XPath 1.0的节点集概念。

XQuery文档顺序

当XQuery解析一个XML文档时,所有节点都是按照文档顺序创建的。

XQuery项与节点的比较

XQuery数据模型推广了XPath 1.0里节点集的概念。

XQuery的数据类型

XQuery采用了W3C XML Schema的类型系统。


XQuery的表达式

XQuery表达式包括了XPath表达式,后者主要用于路径表示,然而,XQuery在XPath的基础上,增加了一组功能丰富的表达式。FLWOR表达式大大增加了查询功能,而这些功能用传统的XPath路径表达式是无法实现的。

XQuery FLWOR表达式

FLWOR是XQuery功能的最关键部分,它借鉴于SQL的SELECT语句。


XQuery函数

XQuery提供了大量的函数,这些函数成为我们操作和过滤数据的工具。

XQuery concat()函数

concat()函数用于合并字符串。

XQuery count()函数

本例使用count()函数统计SimpleBooks.xml文件里Book元素的个数。


在XQuery查询命令里使用参数

在XQuery查询命令里使用参数

外部参数可以传递给XQuery查询命令。


XQuery用户自定义函数

虽然在XPath 2.0里可以调用自定义函数,但是它本来就没有用户自定义函数的功能,它把定义用户函数的任务留给使用XPath的技术,如XSLT、XQuery或其它宿主语言。

XQuery用户自定义函数(declare)

XQuery使用一个简单的方法在序体里声明用户函数。

XQuery一个阶乘函数

本例是一个比较有用的函数,它求某个整数的阶乘。

Copyright© 2011-2016 www.baike369.com All Rights Reserved