CN101419611A - 用于在xml数据库上执行操作的方法 - Google Patents

用于在xml数据库上执行操作的方法 Download PDF

Info

Publication number
CN101419611A
CN101419611A CNA2008101711715A CN200810171171A CN101419611A CN 101419611 A CN101419611 A CN 101419611A CN A2008101711715 A CNA2008101711715 A CN A2008101711715A CN 200810171171 A CN200810171171 A CN 200810171171A CN 101419611 A CN101419611 A CN 101419611A
Authority
CN
China
Prior art keywords
xml
sdo
dataobject
handle
xml database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2008101711715A
Other languages
English (en)
Inventor
维克拉姆·杉蒂
鲁佩什·班戴尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Software AG
Original Assignee
Software AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Software AG filed Critical Software AG
Publication of CN101419611A publication Critical patent/CN101419611A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种用于在XML数据库(100)上执行操作的方法,所述方法包括以下步骤:在客户端应用(1)和服务DataObject(SDO)句柄(10)之间交换至少一个DataObject(2);以及将该DataObject(2)变换为用于访问XML数据库(1)的XML文档的XQuery操作,并将响应于Xquery而从XML数据库(1)得到的XML文档变换为DataObject(2)。如果客户端应用是基于Java的,SDO句柄(10)提供在Java中定义的DataObject(2)和通过使用XQuery表达式检索的XML文档之间的接口。优选地,所述SDO句柄(10)是用于Java的XQuery API的一部分。

Description

用于在XML数据库上执行操作的方法
技术领域
本发明涉及一种在XML数据库上执行操作的方法,并且涉及适于执行这种方法的计算机程序和数据库。
背景技术
XML数据库是现代信息社会的最重要的技术工具。这种数据库的高度灵活性允许以高效的方式存储和检索数据。通常使用查询语言XQuery来访问XML数据库。XQuery提供了从XML文档或诸如关系数据库之类的任何可作为XML查看的数据源中抽取并操纵数据的方式。
对于许多应用、工具和/或框架,所期望的是,使用诸如Java或C++之类的标准编程语言来访问XML数据库。为此,已经开发出诸如用于Java绑定XML架构(JAXB)的绑定技术,其使开发者能够将Java类映射到XML表示,因而提供Java和XML之间的静态接口,即在开发时被定义的接口。
但是,使用已知的绑定技术访问XML数据库对于开发者来说是困难并且费时的。另外,存在一些需要动态访问XML数据库的应用、工具或框架,所述动态访问XML数据库不能由现有技术的静态接口提供。最后,如果到数据源即XML数据库的连接丢失,通常不能独立管理使用已知的API从XML数据库中检索的XML文档。
因此,本发明基于该技术问题在一个方面中克服现有技术的至少一些缺点,并且使用诸如Java、C++之类的标准编程语言提供对用于应用、工具或框架的XML数据库的更好访问。
发明内容
在本发明的一个方面中,由根据权利要求1的方法解决该问题。在一个实施例中,提供了一种执行XML数据库上的操作的方法,所述方法包括以下步骤:
-在客户端应用和服务DataObject(SDO)句柄之间交换至少一个DataObject;以及
-将该DataObject变换为用于访问XML数据库的XML文档的XQuery操作,并将响应XQuery从XML数据库得到的XML文档变换为DataObject。
如果客户端应用是基于Java的,SDO句柄提供在Java中定义的DataObject和通过执行XQuery表达式检索的XML文档之间的接口。优选地,SDO句柄是用于Java的XQuery API的一部分。
使用本发明的SDO句柄,客户端应用不需要关心XML解析,而是可处理具有设置器和获取器方法的简单Java接口。根据Java说明书需求235来标准化SDO并且SDO提供了用于不同种类数据源的统一数据访问层。在应用和XML数据库之间进行的数据交换中包括SDO可提供用于管理从数据库检索的数据的静态和动态方式两者。在应用的开发时就已知元数据的情况下,SDO的使用以特别容易的方式支持DataObject的代码生成接口。例如,可基于存储在XML数据库中的XML文档的模式定义来提供该接口,其中由注册表提供该模式定义。
作为替代或除了静态接口之外,SDO句柄可提供动态接口,其在运行时定义了由SDO句柄处理的DataObject的类型。结果,可给不具有兼容模式的文档产生模式。
在一个实施例中,该操作是包括创建、读取、更新和删除操作的组的至少一个,所述操作是在XML数据库中的XML数据上进行的。在客户端应用和SDO句柄之间交换的DataObject可包括树结构数据的集合,特别是数据图形。SDO的变更概述特征使得能够访问数据图形的变更历史信息。此外还使经由数据图形的基于XPath的导航成为可能。
根据另一方面,本发明涉及适于执行上述方法的任何一种的XML数据库的数据库管理系统(DBMS)。最后,提供了包括适于执行上述方法的任何一种的指令的计算机程序。
附图说明
图1:用于在XML数据库上执行操作的本发明实施例的图示;
图2:利用SDO生成器产生Java接口的预备步骤的图示;
图3:由SDO句柄提供的静态接口的示例实现;和
图4:由SDO句柄提供的动态接口的示例实现。
具体实施方式
在下面描述了本发明方法的示例实施例。将会理解,可以通过许多可替换的方式实现下面描述的功能,例如,用于管理单个XML数据库服务器或一个或多个XML数据库的分布式布置。此外,尽管在下面使用Java作为参考,还可利用诸如C++及其它的各种其它编程语言使用本发明。
图1给出了在客户端应用1和XML数据库100之间的操作流示意图。XML数据库100的一个示例可以“Tamino”的名称从申请人得到。例如,如果XML数据库100是面向服务的架构(SOA)的一部分,客户端应用1和XML数据库100之间的连接可以是持久的或仅仅是临时的。在注册表(在图中未示出)中可提供关于由XML数据库100服务的请求的信息,所述注册表可尤其包含诸如模式信息的关于XML数据库内容的元数据。这种注册表的一个示例可以“Centrasite”的名称从申请人得到。
图1中的图示说明了两个操作,即“获取数据”操作,其中客户端应用1从XML数据库100请求数据,和“设置数据”操作,其中客户端应用将数据发送到XML数据库100,可能仅仅收到数据的修改版本。通常,可存在各种在XML数据库上执行的操作,其中最相关的操作就是所谓的CRUD操作,其引起XML数据库100中数据的创建、读取、更新和/或删除。
如从图1所看到的,客户端应用1与SDO句柄10交换DataObject 2,下面参考图3和4描述其示例。术语服务数据对象(Service Data Object,SDO)指数据编程体系结构和API。它通过跨数据源类型统一数据编程而简化了数据编程、提供了通用应用模式支持并使得应用、工具和框架更加容易执行诸如查询、查看和绑定的操作。
DataObject 2不是静态的就是动态的,即它们的类型不是在开发时预定义就是在运行时期间动态确定。所交换的DataObject 2的一个示例是数据图形2,如在图1中示意性示出的。数据图形2是树结构或图形结构的数据的集合。客户端应用1接收数据图形2,它可改变或更换数据图形2并接着将其变更应用回数据源,即XML数据库100。最通用地,利用乐观并发语义执行更新,这意味着如果在客户端应用1应用变更之前任何基础数据被改变了,拒绝该更新并且客户端应用1必须采取纠正动作。
在图1的实施例中,客户端应用1将根据Java说明书需求225的用于Java的XQuery API 20(XQJ)用作为数据仲裁服务21来访问XML数据库100中的文档。由SDO句柄10装载从XML数据库检索的XML文档作为动态SDO DataObject实例或实现一个或多个静态Java接口的类的实例。换句话说,SDO句柄10将XML数据转换成Java对象,并且反之亦然。结果,即使到数据源即XML数据库100的连接丢失了,XML文档可作为Java对象存活更久。
可如图2中示意性示出地产生Java接口。SDO接口生成器11使用XML数据库100中的文档上的元数据(诸如模式定义101)作为输入,并且产生一个或多个静态Java接口12,所述接口可接着由客户端应用1(或任何其它应用,图1中未示出)使用。因此,需要给SDO接口生成器11指定所要求的数据库内部的元数据即模式定义的URL或文件路径。所产生的代码被存储在提供的目录路径处。
SDO接口生成器的调用的示例与下面的定义一致:
C:\>set CLASSPATH=%CLASSPATH%;c:\sdo\lib\sdojar
C:\>java com.softwareag.sdo.codegen.XSD2JavaGenerator-?
用法:XSD2JavaGenerator<选项>
其中可能的选项包括
-d OR-dir    :指定将所生成的代码置于何处。
-c OR-clrdir :在生成之前清空目录
-v OR-verbose:启用verbose。
-config     :提供所有配置作为XML文件。
-s OR-schema:指定模式文件路径或URL
-l OR-logdir:指定log目录位置。
-?OR-help  :提供用法帮助。
下面示出相关调用的实际示例:
C:\>java    com.softwareag.sdo.codegen.XSD2JavaGenerator     -sC:\>schemas\ipo.xsd-d
C:\generatedSources
图3给出了SDO句柄10的静态接口及其使用的示例。它说明了SDO句柄10如何处理从XML数据库100检索文档。如可看到的,在步骤201中将示例性XQuery表达式“for $q in collection(‘Account’)/Account return$q”赋值给字符串类型变量。此外,XQuery的结果赋值给参数XQResultSequence result(步骤202)。图3的示例的下面的代码段中示出了此接口的使用,其中,解析来自所检索的XML文档“Account”的数据并将其赋值给各种变量(步骤203),接着所述各种变量在步骤204中显示。
最后,图4给出了如果在开发时不知道来自XML数据库的响应的完整结构,那么SDO句柄的动态应用编程接口如何处理XML数据库的文档的示例。尽管步骤301和302等同于步骤201和203,但是在这种情况下XQuery的结果被赋值给动态DataObject。为了抽取包含在DataObject内的信息,它可在步骤303中使用在SDO DataObject接口中定义的已知方法来解析。接着包含在所检索的XML文档中的数据被赋值给变量。但是,因为SDO句柄的此API的动态性质,不必预定义DataObject的结构,所述DataObject在运行时期间由所检索的XML文档转换而成。通常可假设动态接口的用户分别知道所请求的XML文档的内容和结构。
尽管图3和4的示例是针对XML文档的检索,也可通过非常相似的方式将所描述的方法和SDO句柄用于相反的过程,即将由客户端应用1提供的DataObject转换成XML文档,所述XML文档接着被存储在XML数据库100中。
可将所描述的方法实现为到标准客户端应用和/或用于管理XML数据库的数据库管理系统的附加软件。如果XML数据库系统为面向服务的架构(SOA)的一部分,通过变换服务数据对象中的XML文档获得的高度灵活性尤其有用。

Claims (11)

1.一种在XML数据库(100)上执行操作的方法,所述方法包括以下步骤:
a.在客户端应用(1)和服务数据对象(SDO)句柄(10)之间交换至少一个DataObject(2);以及
b.将该DataObject(2)变换为用于访问XML数据库(1)的XML文档的XQuery操作,并将响应于该Xquery而从XML数据库(1)得到的XML文档变换为DataObject(2)。
2.如权利要求1所述的方法,其中所述客户端应用(1)是基于Java的,并且其中所述SDO句柄(10)提供在Java中定义的DataObject(2)和XQuery表达式之间的接口。
3.如权利要求2所述的方法,其中由所述SDO句柄(2)提供的所述接口是静态接口,其在开发时定义了由所述SDO句柄(10)处理的DataObject(2)的类型。
4.如权利要求2或3所述的方法,其中所述接口基于存储在所述XML数据库(100)中的所述XML文档的模式定义(101)来提供。
5.如权利要求4所述的方法,其中存储在所述XML数据库(100)中的XML文档的模式定义(101)由注册表提供。
6.如权利要求2到5中任意一个所述的方法,其中所述SDO句柄(10)提供了动态接口,其在运行时定义了由所述SDO句柄(10)处理的DataObject(2)的所述类型。
7.如前述权利要求任意一个所述的方法,其中在所述XML数据库(100)上的操作是包括以下各项的组中的至少一种:对所述XML数据库(100)中的所述XML数据进行的创建、读取、更新和删除操作。
8.如前述权利要求任意一个所述的方法,其中在所述客户端应用(1)和所述SDO句柄(10)之间交换的所述DataObject(2)包括树结构数据集合。
9.如前述权利要求任意一个所述的方法,其中所述SDO句柄(10)是用于Java的XQuery API(20)的一部分。
10.包括用于执行前述权利要求1-9中任意一个的方法的指令的计算机程序。
11.适于执行前述权利要求1-9中任意一个的方法的用于XML数据库(100)的数据库管理系统。
CNA2008101711715A 2007-10-22 2008-10-22 用于在xml数据库上执行操作的方法 Pending CN101419611A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN1436/KOL/2007 2007-10-22
IN1436KO2007 2007-10-22

Publications (1)

Publication Number Publication Date
CN101419611A true CN101419611A (zh) 2009-04-29

Family

ID=39323673

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101711715A Pending CN101419611A (zh) 2007-10-22 2008-10-22 用于在xml数据库上执行操作的方法

Country Status (3)

Country Link
US (1) US20090106309A1 (zh)
EP (1) EP2056222A1 (zh)
CN (1) CN101419611A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102937992A (zh) * 2012-11-01 2013-02-20 上海方正数字出版技术有限公司 一种基于Java与XML数据库的对象映射转换设计方法
CN104462091A (zh) * 2013-09-13 2015-03-25 方正信息产业控股有限公司 Xml数据的操作方法与装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7908286B2 (en) * 2004-12-08 2011-03-15 Oracle International Corporation Techniques for providing XQuery access using web services
EP2362609B1 (en) * 2010-01-27 2013-05-01 Ricoh Company Ltd. System for flexibly accessing devices in a network

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392259B2 (en) * 2004-12-14 2008-06-24 Electronics And Telecommunications Research Institute Method and system for supporting XQuery trigger in XML-DBMS based on relational DBMS
US7680800B2 (en) * 2005-05-20 2010-03-16 International Business Machines Corporation Algorithm to marshal/unmarshal XML schema annotations to SDO dataobjects

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102937992A (zh) * 2012-11-01 2013-02-20 上海方正数字出版技术有限公司 一种基于Java与XML数据库的对象映射转换设计方法
CN104462091A (zh) * 2013-09-13 2015-03-25 方正信息产业控股有限公司 Xml数据的操作方法与装置

Also Published As

Publication number Publication date
US20090106309A1 (en) 2009-04-23
EP2056222A1 (en) 2009-05-06

Similar Documents

Publication Publication Date Title
US7599948B2 (en) Object relational mapping layer
US8260815B2 (en) System and method for accessing non-compatible content repositories
CN101727320B (zh) 用于识别数据库更改对应用的影响的方法和系统
US6810429B1 (en) Enterprise integration system
US7275087B2 (en) System and method providing API interface between XML and SQL while interacting with a managed object environment
US10296657B2 (en) Accessing objects in a service registry and repository
CN102483765B (zh) 文件搜索系统和程序
US20040006549A1 (en) Micro edition dynamic object-driven database manipulation and mapping system
EP1637993A2 (en) Impact analysis in an object model
US20090055410A1 (en) Method for pruning objects in a service registry and repository
US7725469B2 (en) System and program products for pruning objects in a service registry and repository
KR20060045622A (ko) 컴퓨터화된 재무 시스템의 추출, 변환 및 로딩 설계자 모듈
KR100529661B1 (ko) 오브젝트 통합 관리 시스템
EP1909170B1 (en) Method and system for automatically generating a communication interface
CN101419611A (zh) 用于在xml数据库上执行操作的方法
US20060218174A1 (en) Method for coordinating schema and data access objects
US20060190476A1 (en) Database storage system and associated method
Yang IFC-compliant design information modelling and sharing
US20040249792A1 (en) Automated query file conversions upon switching database-access applications
Vrhovnik et al. An overview of SQL support in workflow products
JP6677809B2 (ja) アダプタ生成装置及び方法
Danturthi Comparative study of web application development with sql server and db4o
Bai JDBC API and JDBC Drivers
Lendvai et al. ADO and ADO .NET Object Model Comparisons: A Relational Perspective
Ottinger et al. Mapping with Annotations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090429