java executexquery,在Java中使用XQuery:SOA中操作数据的最佳方法

轻便的数据传输方式一直是面向服务构架(SOA)所关注的焦点,对于SOA来说,曾经发展出了很多方便的数据传输模式。但自从XML流行后,这些传输模式都逐渐消失了,因此,现在的SOA中的基本的数据传输模式都是基于XML的。虽然XML可以用于象服务发送请求、从服务器获得响应或传递数据表之类的操作,但这些操作都太简单,而有时我们需要对XML数据进行复杂的操作,如果要象SQL查询数据表一样来查询XML数据。这就要用到本文所讨论的XQuery技术。

本文主要讨论XQuery以及相关的其他技术,如XQJ(基于XQuery的Java API)。本文首先介绍了什么是XQuery和XQJ,并使读者可以了解使用这些技术的基本方法。然后通过具体的实例来使读者真正掌握XQuery和XQJ技术。

一、什么是XQuery

XQuery是一种查询XML数据的技术。就象用SQL来查询关系数据一样。在几年前,W3C查询语言工作组开发出了XQuery1.0。在以前我们想操作XML数据必须要掌握SAX或DOM中的一种,而在本文中我们将有幸了解到更容易使用的XQJ技术。XQJ更符合XQuery规范,在XQJ语言中,我们将定义很多接口和类,而提交XQJ查询和获得查询结果的任务就是由这些类完成的。同时,XQJ还支持最新的XPath2.0技术。由于XQuery是为查询XML的专用语言,因此,使用一行XQuery语句所达到的效果需要象Java或C#这样的语言上百行才能达到。

XPath是一种用来获得XML文档的部分内容的技术。因此,如果我们只想得到一个XML文件中的一部分内容,就可以使用XPath来完成。但XPath也有局限性,如它不能获得一个节点(Node)的一部分,也不能创建新的内容。这一点XSLT就强一些,XSLT是XPath的超集,除了包含XPath的全部功能外,还包含了很多其他的特性。如可以在XSLT中使用变量、命名空间,并可以创建新文档。

二、XQuery API for Java (XQJ)简介

XQJ其实就是用Java实现的一个包,其中包含了很多的接口和类。使用XQJ可以查询单独的XML文档或XML文档集合。而XQuery提供了更灵活的机制:可以根据需要选择实现这些特性的方法。这就意味着可以使用XQJ来区分处理中间结果和最终结果。现在实现XQJ主要有两个框架,它们是Qexo和Saxon。其中Saxon可以同时在Java和.NET中使用,分别对应了两个包:Saxon-B和Saxon-SA。其中Saxon-B是以开源许可证形式发布的,而Saxon-SA则是收费的。

XQJ可以从JNDI中获得数据,也可以使用其他的方法获得数据。如XQDataSource可以作为创建XQuery连接对象、序列对象和项目对象的工厂。XQDataSource方法有三个重载的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值