XML的QL查询语言及其实现-2

原创 2004年06月13日 16:09:00

1.    XML-QL查询介绍及其常用部分语法结构<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

面对庞大的XML数据量,有几个重要问题需要解决。例如,利用什么技术或工具可以从大型XML文档中抽取数据;可以在不同的DTD之间翻译XML数据;可以从多个XML文档中结合数据;或者可以传送大量的XML数据。

数据抽取、传送、合并是传统的数据库问题,这些问题的解决得益于结构化查询语言SQL的实现。但是SQL不能直接运用到XML中,因为XML中的数据结构不仅包含传统的结构化数据格式,而且还包含大量的半结构化数据。而XML-QL的出现就解决了这些问题。

XML-QL语言能够通过查询来从XML文档中抽取信息,能够在不同DTD之间翻译XML数据,能够从多个XML文档中结合数据,能够传送XML数据等。

目前由W3C组织提出的XML-QL查询语言是查询XML文档的标准语言,另外还存在一些由其他组织自主研发的XML查询语言,例如AT&T公司的STRU-QL。以下论述是以W3C提出的标准QL为基准。以lib.xml作为输入的完整xml文档,介绍XML-QL的五种语法结构。文档lib.xml内容如下:

<?Xml version=”1.0?>

<lib>

       <book year=”2000”>

              <title>数据库系统概论</title>

              <author><lastname>萨师煊</lastname></author>

              <author><lastname>王珊</lastname></author>

              <publisher><name>高等教育出版社</name></publisher>

       </book>

       <book year=”2001”>

              <title>C程序设计第二版</title>

              <author><lastname>谭浩强</lastname></author>

              <publisher><name>清华大学出版社</name></publisher>

       <book>

</lib>

1)用模式匹配数据

XMLQL使用元素模式来查找XML文档中的数据。如果在lib.xml中查询所有清华大学出版社编书的作者,可使用以下查询:

WHERE     <book>

                           <publisher><name>清华大学出版社</name></publisher>

                            <author>$a</author>

                     </book>       IN”lib.xml”

CONSTRUCT    $a

在以上的查找中,匹配的<book>元素必须包含一个<author>元素,而且有一个<name>元素为“清华大学出版社”的<publisher>元素。每找到一个符合条件的<book>元素,该XML-QL就会把<author>元素的内容赋给变量a。而XML-QL的最后结果是所有赋给a<author>元素的内容。

2)建立XML数据

上述查询中,XML-QL会生成一系列的<author>元素,也可以生成一系列包含<author>元素和<title>元素的<result>元素,以查找“高等教育出版社”的作者为例。

WHERE      <book>

                            <publisher><name>高等教育出版社</name></publisher>

                            <title>$t</title>

                            <author>$a</author>

                     </book>       IN”lib.xml”

CONSTRUCT    <result>

                                   <author>$a</author>

                                   <title>$t</title>

                            </result>

应用查询后我们将得到以下结果:

<result>

       <author><lastname>萨师煊</lastname></author>

       <title>数据库系统概论</title>

</result>

<result>

       <author><lastname>王珊</lastname></author>

       <title>数据库系统概论</title>

</result>

XML的QL查询语言及其实现-1

    【摘 要】本文在介绍XML和HTML的区别与联系的基础上,对当前比较流行的XML-QL查询语言及其实现途径做了介绍,并通过实例进行了讨论。XML-QL作为目前比较高效的查询XML文档的语言表现...
  • maningfc
  • maningfc
  • 2004年06月13日 16:09
  • 702

XML的QL查询语言及其实现

(3)用嵌套查询进行结果分组上述XML-QL查询不会将结果分组,同一本书的作者会出现在不同的中,如果将同一本书的作者放在一个中就好了。要将结果进行分组,可以使用嵌套查询。将以上的例子稍许改动,可以得到...
  • maningfc
  • maningfc
  • 2004年06月13日 16:09
  • 760

数据库查询语言QL

     数据库查询语言QL一、简单查询1 查询所有数据行和列select * from stuInfo 2 查询部分行和列select stuName,stuSex,stuAge from stuI...
  • zerolsy
  • zerolsy
  • 2008年02月26日 21:58
  • 1189

形式化关系查询语言

形式化关系查询语言 列表项 tags: 数据库在关系数据库中,数据库模式是指定义数据库的结构,规定的域约束,参照完整性等。实例对应模式在某一时间的快照。关系模式和关系实例也如此。在这里,一个关系对应数...
  • Jhon2015
  • Jhon2015
  • 2016年10月18日 13:36
  • 499

常用的数据库查询语言

要求: 1)查出“计算机系”的所有学生信息。  2)查出“韩顺平”所在的院系信息。 3)查出在“行政楼”办公的院系名称。 4)查出男生女生各多少人。 5)查出人数最多的院系信息。 6)查出人数最多的院...
  • qq616252396
  • qq616252396
  • 2016年08月23日 12:48
  • 1079

DQL数据查询语言(一)

DQL(数据查询语言)(简单的) DQL:Data Query Language 作用:查询数据 常用关键字:SELECT 创建一个学生表 create table stu ( ...
  • ilyluo
  • ilyluo
  • 2016年03月10日 20:31
  • 635

关于图数据库查询语言:Cypher

Neo4j Cypher Refcard:http://neo4j.com/docs/cypher-refcard/current/ Neo4j发布开源图查询语言openCypher:http://...
  • dipolar
  • dipolar
  • 2016年07月12日 11:33
  • 617

saiku中文查询(鉴于有人提问:saiku执行mdx,有中文报错)

有人问我saiku的中文查询问题: saiku默认执行英文,很多人,在mysql里录入了中文,使用sql语言查询没有问题。 可是,用saiku的mdx查询,就会报错。 这是因为mysql默认支持...
  • longshenlmj
  • longshenlmj
  • 2014年04月02日 11:01
  • 2111

1005-Hive的QL语法

本地数据加载到hive,hdfs数据加载到hive,hive命令行基本操作
  • shenfuli
  • shenfuli
  • 2015年06月01日 01:18
  • 889

RDF数据查询语言SPARQL:初步

【转载】http://imarine.blog.163.com/blog/static/5138018320071119110889/RDF数据查询语言SPARQL:初步技术文档 2007-12-19...
  • JavaerScott
  • JavaerScott
  • 2010年11月27日 15:48
  • 2060
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XML的QL查询语言及其实现-2
举报原因:
原因补充:

(最多只允许输入30个字)