新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论XLink, XPointer, XQuery
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XQuery/XLink/XPointer/ 』 → Xquery 1.0:An XML Query Language(转载)出处忘记了 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 27405 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: Xquery 1.0:An XML Query Language(转载)出处忘记了 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     aside 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究汇编)
      文章:37
      积分:214
      注册:2003/12/31

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给aside发送一个短消息 把aside加入好友 查看aside的个人资料 搜索aside在『 XQuery/XLink/XPointer/ 』的所有贴子 引用回复这个贴子 回复这个贴子 查看aside的博客楼主
    发贴心情 Xquery 1.0:An XML Query Language(转载)出处忘记了

    出处找到了,是台湾中南大学的学生林 文 雄的文章
    指導教授:戚玉樑 博士
    學生:林 文 雄
    學號:9194625

    Xquery 1.0:An XML Query Language

    一、.XQuery 1.0规范的发展及现况
    (1). XQuery 1.0原提案之公司或人员
    XQuery的提案人共有六位,一位是XSL工作小组的成员,其于五位都是XML Query的工作小组成员。
    1. Scott Boag (XSL WG), IBM Research
    2. Don Chamberlin (XML Query WG), IBM Almaden Research Center
    3. Mary F. Fernandez (XML Query WG), AT&T Labs
    4. Daniela Florescu (XML Query WG), XQRL
    5. Jonathan Robie (XML Query WG), DataDirect Technologies
    6. Jérôme Siméon (XML Query WG), Bell Labs, Lucent Technologies
    (2). XQuery 1.0规范的起源及概述发展历程
    本规范从提出到目前共修改五次,其所提出的时间如下:
    1. 第一次提出时间为2001年06月07日
    2. 第一次修改时间为2001年12月20 日
    3. 第二次修改时间为2002年04月30 日
    4. 第三次修改时间为2002年08月16 日
    5. 而2002年11月15日提出为目前的最新版本。
    (3) 目前XQuery 1.0规范的状态
    目前由W3C所制定的XQuery是XML查询语言,它是以Quilt为参考,参酌需求文件研拟而成。XQuery己公布成为草案标准,现在的版本是XQuery 1.0,XQuery规范伺机发展成为正式标准。

    二、.XQuery 1.0规范的目的、用途及概观
    (1).详细描述XQuery 1.0规范的制定目的
    XML 是一种万用标注语言,能够的标明有多样化数据来源包括的信息内容结构化和半结构化的文件、关系型数据库和对象的储存处,日益增加的信息以XML格式加以储存、交换及表示,也因此对于XML数据的查询能力也变得日益重要。XML最强大的一点是其具有弹性,可展现不同来源数据的信息,为展现此一特点,XML查询语言也必需提供可撷取及解译不同来源数据的功能。
    (2). XQuery 1.0规范适用的情境及对象
    XML查询语言除了具备传统查询语言的功能外,更可于各种不同XML形式文件中执行查询,也以不同形式存在,可达成XML的互通性目标。
    (3). XQuery 1.0规范内的组成
    1. 文件内容主要规范了XML查询语言本体及XML查询数据模块及表示法的发展目标、需求及使用情境 。
    2. XML查询语言除了具备传统查询语言的功能外,更可于各种不同文件中执行查询,也以不同形式存在,可达成XML的互通性目标。
    3. XML查询语言允许多种语法,但必需有一种语法是便利人为阅读的。
    4. XML查询语言也必需与通讯协议无关。
    5. XML查询语言也必需定义标准的错误情况。

    三、XQuery 1.0规范与其它XML规范的关联
    (1). XQuery 1.0规范在XMLFamily的定位属性
    XML的发展趋势己使愈来愈多的数据以XML为标准格式,如何从XML的”数据”转变成有价值的”信息”将是另一波XML发展的重点。要对数据作有效的管理需透过数据库管理系统的应用,但由于XML的数据格式己和传统数据不同,不再适用传统的数据库及查询语法,因此W3C依据XML的特性发展出XML的查询语言,以方便对XML数据的管理及处理。
    (2). XQuery 1.0规范与其它XMLFamily成员的关联
    1. XML Query共有11个Spec,Xquery 1.0是其中的一个。
    2. XQuery是由Quilt所衍生而来,其融入了多种的语言之特色,例如XPath、XQL、XML-QL、SQL及OQL等,因此XQuery极富变化也融合了各家特色。
    3. XQuery表示法的一种是以路径(Path)的方式来表示。其语法是基植于XPath 1.0的语法 ,XQuery期待能含盖XPath 2.0版的新功能。  
    (3). XQuery 1.0的使用例子说明
    document("zoo.xml")//chapter[2]//figure[caption = "Tree Frogs"]
    1. 第一步骤即是找到zoo.xml文件中的根节点
    2. 第二步则是找到根节点中的第二个chapter子元素
    3. 第三步骤是找出此chapter子元素中包含有caption元素并且值为Tree Frogs的figure子元素。
    (4). XML Query 成员中所有的Spec
    1.XML Query Requirements
    2.XML Query Use Cases
    3.XQuery 1.0 and XPath 2.0 Data Model
    4.XQuery 1.0 and XPath 2.0 Formal Semantics
    5.XQuery 1.0: An XML Query Language
    7.XML Syntax for XQuery 1.0 (XQueryX)
    7.XQuery 1.0 and XPath 2.0 Functions and Operators Version 1.0
    8.XPath Requirements Version 2.0
    9.XML Path Language (XPath) 2.0
    10.XML Query and XPath Full-Text Requirements
    11.XML Query and XPath Full-Text Use Cases

    四、 XQuery 1.0 规范的结构及使用方式
    (1).以结构化方式 ( 或图形 ) 解释规范内的组成

    XML Query 是提供XML文件处理方法和规则中,对于XML文件查询、撷取不同来源数据的功能。
    XML Query 成员中所有的Spec:
    1.XML Query Requirements
    2.XML Query Use Cases
    3.XQuery 1.0 and XPath 2.0 Data Model
    4.XQuery 1.0 and XPath 2.0 Formal Semantics
    5.XQuery 1.0: An XML Query Language
    6.XML Syntax for XQuery 1.0 (XQueryX)
    7.XQuery 1.0 and XPath 2.0 Functions and Operators Version 1.0
    8.XPath Requirements Version 2.0
    9.XML Path Language (XPath) 2.0
    10.XML Query and XPath Full-Text Requirements
    11.XML Query and XPath Full-Text Use Cases
     

    (2). 简述XQuery 1.0 规范的使用方式
    1、 路径表示法:XQuery表示法的一种是以路径(Path)的方式来表示。其语法是基植于XPath 1.0的语法。XPath是以路径方式浏览XML文件的一种标记法,应用XPath的XML相关标准有XSLT及XPointer 。路径表示法的开头可指定文件中的一特定节点或一包含其它子节点的母节点,再依文件的结构配合XPath的语法,找到符合路径的数据。以下列路径表示法为例-document(“book.xml”)//chapter[3]//figure[caption = “XQuery”],
    (1) 首先是找到book.xml文件中的根节点,
    (2) 再来要找到根节点中的第3个chapter子元素,
    (3) 最后则是找出此chapter子元素中包含有caption元素并且值为XQuery的figure子元素。
    2、 数据元素建构表示法:一般而言在进行查询时,除了对现有的文件元素进行查询外,一个查询动作所常作的是产生一新的元素。一个简单的方法是使用XML的标记法直接将元素包裹于查询中,也就是XQuery允许以XML元素本身作为查询的表示法,此种查询表示法称为Element constructor。

    原始的XML档案
    <book isbn="isbn-0060229357">
    <title>Harold and the Purple Crayon</title>
    <author>
    <first>Crockett</first>
    <last>Johnson</last>
    </author>
    </book>

    建构元表示法
    <example>
    <p> Here is a query. </p>
    <eg> $i//title </eg>
    <p> Here is the result of the above query. </p>
    <eg>{ $i//title }</eg>
    </example>

    产生的结果
    <example>
    <p> Here is a query. </p>
    <eg> $i//title </eg>
    <p> Here is the result of the above query. </p>
    <eg>
    <title>Harold and the Purple Crayon</title>
    </eg>
    </example>

    3、 FLWR表示法:FLWR(发音为”flower”)表示法是由FOR、LET、WHERE及RETURN子句等结构而成,并以特定的顺序组合而成。一个FLWR表示法系结了一个或多个变量,再使用这些变量建构结果。

    (1) FOR子句用来创建了一个表示节点集多次求值的变量($b)。和xslt中的for—each一样, FOR表达式是可以循环且嵌套使用的。
    (2) LET子句,它允许你绑定一个节点集到中间变数中去。如果节点集不需要多次求值则可以用LET代替FOR。举例来说,我们可以在聚集函数中使用 LET $b :=document(...)/path ,因为聚集函数会遍历指定的节点。
    (3) In子句要用一个XPath表达式指定适用于FOR子句中变数的节点集。大多数情况下要求由XPath的document()函数来指定原始文文件。
    (4) WHERE子句用来筛选节点集并在文档之间建立连接。
    FOR $b IN document("bib.xml")//book
    WHERE $b/publisher = “Topmost"
    AND $b/year = "1998"
    RETURN $b/title

    得到
    select b.title from bib.book as b
    where b.publisher=‘Topmost' and
    b.year='1998'


    4、 条件表示法:
    条件表示法的语法为→"if " "(" Expr1 ")" "then" Expr2 "else" Expr3
    也就是此表示法会判断Expr1的条件式,若为真则传回Expr2,否则则传回Expr3。
    if ($widget1/unit-cost < $widget2/unit-cost)
    then $widget1
    else $widget2
    如$widget1单价< $widget2单价
    则传回$widget1
    否则传回$widget2

    5、 量化表示法:在某些查询的情况下,需测试是否全部或只有部份元素符合某个条件,因此XQuery提供了两个表示式,分别为“some”及”every”,用来分别表示”部份”及”全部”的评量。
    (1)True or false
    some $x in (1, 2, "cat") satisfies $x * 2 = 4
    every $x in (1, 2, "cat") satisfies $x * 2 = 4
    (2)下面这个例子使用”some”表示取得book中段落只要有包含sailing及windsurfing的title元素。
    FOR $b IN //book
    WHERE SOME $p IN $b//para SATISFIES
    (contains($p, "sailing") AND contains($p, "windsurfing"))
    RETURN $b/title
    (3)而这个例子使用”every”的例子则表示取得book中每个段落皆有含有sailing的title元素。
    FOR $b IN //book
    WHERE EVERY $p IN $b//para SATISFIES
    contains($p, "sailing")
    RETURN $b/title
    6、 数据型态的表示法:
    (1) 算术表达式:XQuery提供了一般算术常用到的加(+)、减(-)、乘(×)、除(÷)及MOD等表达式,还有正号(+)及负号(-)。
    (2) 比较表达式:XQuery提供多种的比较表达式,作为两个运算值的比较,并将比较结果以布林值(Boolean)传回。=(等于)、!=(不等于)、<(小于)、<=(小于等于)、>(大于)及>=(大于等于)是用来作为值的比较表达式。
    (3) 逻辑表达式:XQuery使用两个逻辑的表达式「AND」及「OR」,其比较的意义和其字面上的意义相同,比较结果传回布林值。
    (4) 序列表达式:XQuery提供一个操作数「,」作为序列的操作数,从左到右排列顺序。由于「,」操作数也使用于作为函式参数的分隔,所以同时使用括号作为函式的序列运算。以下列为例说明

    7、其它表示法:
    (1) Sorting
    (2) Typeswitch  case  defaule
    (3) Cast
    (4) Union
    (5) Count
    (6) ………

    五. XQuery 1.0 规范在信息界的对应发展
    (1). 目前XQuery 1.0 在信息界有无实作的产品或 API ( 列举 )
    目前在信息界尚未看到一完整的XQuery产品,但各家信息大厂均以此一标准为方向,开发支持XQuery的数据库产品。
    1、IBM:IBM将在新版本的DB2加入Xperanto技术,它结合了XML、XQuery标准及文件搜寻技术及网络服务(Web services)技术,可让我们在关系型数据库、XML文件、一般档案、电子表格及其它数据来源中搜寻数据,有如在单一数据库中。
    2、BEA:BEA推出一种名为液态数据(Liquid Data)的产品,可以将各个地点及数据源系统连结起来,包括表格、文件、影音数据。该产品是一种中介软件,以XML标准Xquery为基础的引擎及可视化的工具,可以加速企业内部、企业与合作伙伴间的数据流通,并完整地掌握数据分布情况。
    3、Oracle:Oracle于2002年三月新发表Java XQuery的原型标准,其中包含一个XQuery 的Java API(称为JXQI)及一个使用命令列操作的接口。此技术的特色是实作了W3C的XQuery标准再加上Oracle的自订功能,且专注于对关连式数据及XQuery使用案例(XQuery use cases)的支持,另一个特色是包含一个实验性质的JDBC式的Java API供XQuery使用,并像SQL的函式一般,可以在SQL的查询结果上使用XQuery。Oracle的终极目标是提供兼具SQL风格及XQuery-based的查询语法,供XML数据在Oracle数据库中适切的查询。
    Oracle推出第二版Oracle 9i database也支持XML schema,可用XML格式存取原本关系型数据库内的数据,即其所谓变成原生性的XML数据库
    4、Microsoft:2001年5月推出的XML查询语言工具(XML Query Language)在线应用示范网站(http://131.107.228.20/xquerydemo/),为符合W3C 6月7日公告的XQuery 1.0版的工作草案(Working Draft)规格,已做了必要的更新以及修改。XQuery的规格系依据W3C XML Query工作小组的需求来设计,它被定位成一轻量级并保有查询简洁易懂(可读性高的查询语法)的查询语言。
    今年将推出新版本代码Yukon的新版SQL Server数据库,具更强XML支持的数据库,是用以管理及储存结构及非结构性数据,Yukon让组织透过交互操作性的提升、开放标准的支持,以及原始「可延伸标记语言」(XML) 与 Web 服务能力等,轻松储存、管理和分析数据。
    SQL Server 2000 中就有提供 XML 功能,而且持续透过像 SQL Server 2000 Web Services Toolkit 和 SQL Server 2000 Notification Services 等这类发行版本加以改善,就能体验 XML 和 .NET 的优点。此外,SQL Server CE 2.0 则会协助将企业数据管理功能延展至行动装置。

    六. XQuery 1.0 规范在工业界的应用现况
    (1).目前XQuery适用于那些性质的工业界 ( 列举 )
    XQuery规范是针对所有的XML文件做查询,目前各家数据库大厂纷纷投入人力研发支持XQuery 1.0 的数据库产品,因此,对于数据库供货商和使用者,在运用上有使用到XML文件,应该都适用到这个规范,只是数据库大厂是最积极的将此规范运用在产品的研发上。

    七. 其它与 XQuery 1.0 规范的重要评论
    XML台湾信息网有针对XML查询语做深入的研究报告,该报告的研究的方向共分成三个部分
    1. 针对XML数据与查询的关系及需求特性作探讨,并与关连式数据查询作一比较。
    2. 针对现今XML查询语言的发展现况作介绍。
    3. 针对XML查询语言中核心组件-XPath及发展依据-Quilt作介绍

    八、参考数据
    1. XQuery 1.0: An XML Query Language WWW.W3C.ORG/TR/XQuery
    2. XML查询语言研究报告书 蔡如惠 WWW.XML.ORG.TW
    3. XML台湾信息网 WWW.XML.ORG.TW
    4. 企业数据整合XML技术备出 锺翠玲 CNET新闻专区
    5. 帮你免于失业的十大软件技术 beiyan 江南大学 信息工程学院
    6. IBM网站 www-106.ibm.com/developerworks
    7. 微软网站 WWW.MICROSOFT.COM
    8. 用于资料的XML:对XQuery的前瞻 www.cn-java.com
    9. 为XQuery做准备  发赛特技术网www.fawcette.com
    10. IBM和微软将向W3C递交XQuery测试 意图定为标 新浪科技
    11. 数据库的未来尚在未定之天  资传网


    [此贴子已经被作者于2004-5-17 21:04:11编辑过]

       收藏   分享  
    顶(1)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/5/17 15:31:00
     
     aside 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究汇编)
      文章:37
      积分:214
      注册:2003/12/31

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给aside发送一个短消息 把aside加入好友 查看aside的个人资料 搜索aside在『 XQuery/XLink/XPointer/ 』的所有贴子 引用回复这个贴子 回复这个贴子 查看aside的博客2
    发贴心情 
    XML查询语言研究报告书 蔡如惠WWW.XML.ORG.TW
    这篇文章值得一看
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/5/31 21:31:00
     
     txcdhp 帅哥哟,离线,有人找我吗?
      
      
      等级:大三(要不要学学XML呢?)
      文章:86
      积分:520
      门派:XML.ORG.CN
      注册:2004/8/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给txcdhp发送一个短消息 把txcdhp加入好友 查看txcdhp的个人资料 搜索txcdhp在『 XQuery/XLink/XPointer/ 』的所有贴子 引用回复这个贴子 回复这个贴子 查看txcdhp的博客3
    发贴心情 
    请问你变得这些xmlquery存成什么文件格式呢?在什么环境下执行阿?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/8/14 17:13:00
     
     ksu99 帅哥哟,离线,有人找我吗?天秤座1974-10-20
      
      
      威望:4
      头衔:完美生活
      等级:大三暑假(ITELS考了6.5分!)
      文章:74
      积分:763
      门派:XML.ORG.CN
      注册:2004/6/3

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ksu99发送一个短消息 把ksu99加入好友 查看ksu99的个人资料 搜索ksu99在『 XQuery/XLink/XPointer/ 』的所有贴子 引用回复这个贴子 回复这个贴子 查看ksu99的博客4
    发贴心情 
    以下是引用txcdhp在2004-8-14 17:13:48的发言:
    请问你变得这些xmlquery存成什么文件格式呢?在什么环境下执行阿?


    我知道的有些方案把查询存成.xq文件,其实这个不重要,因为是纯文本的;
    执行环境,我知道的是在配置了JDK的Windows环境下,加入任何一个XQuery的实现引擎就可以了。
    (以上言论,仅供参考

    ----------------------------------------------
    交个朋友吧!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/9/14 11:05:00
     
     darkforce 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:2
      积分:65
      门派:XML.ORG.CN
      注册:2004/9/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给darkforce发送一个短消息 把darkforce加入好友 查看darkforce的个人资料 搜索darkforce在『 XQuery/XLink/XPointer/ 』的所有贴子 引用回复这个贴子 回复这个贴子 查看darkforce的博客5
    发贴心情 
    我是初学者,那里有XQuery的实现引擎?查询存成.xq系统不能识别!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/9/21 9:54:00
     
     ksu99 帅哥哟,离线,有人找我吗?天秤座1974-10-20
      
      
      威望:4
      头衔:完美生活
      等级:大三暑假(ITELS考了6.5分!)
      文章:74
      积分:763
      门派:XML.ORG.CN
      注册:2004/6/3

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ksu99发送一个短消息 把ksu99加入好友 查看ksu99的个人资料 搜索ksu99在『 XQuery/XLink/XPointer/ 』的所有贴子 引用回复这个贴子 回复这个贴子 查看ksu99的博客6
    发贴心情 
    以下是引用darkforce在2004-9-21 9:54:05的发言:
    我是初学者,那里有XQuery的实现引擎?查询存成.xq系统不能识别!

    关于XQuery实现,请访问网页:http://www.w3.org/XML/Query#products
    至于xq文件,系统是否识别没有什么意义,关键时你的编辑和程序的读写。

    ----------------------------------------------
    交个朋友吧!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/9/23 10:19:00
     
     GoogleAdSense天秤座1974-10-20
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XQuery/XLink/XPointer/ 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/30 22:58:06

    本主题贴数6,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    93.750ms