技术开发 频道

在Java中使用XQuery:SOA中操作数据的非常好的方法



    【IT168 专稿】轻便的数据传输方式一直是面向服务构架(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中使用变量、命名空间,并可以创建新文档。
0