CN101419611A - 用于在xml数据库上执行操作的方法 - Google Patents
用于在xml数据库上执行操作的方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000014509 gene expression Effects 0.000 claims abstract description 4
- 230000004044 response Effects 0.000 claims abstract description 3
- 230000003068 static effect Effects 0.000 claims description 10
- 230000009471 action Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 230000001131 transforming effect Effects 0.000 abstract 2
- 230000008859 change Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information 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/83—Querying
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数据库是现代信息社会的最重要的技术工具。这种数据库的高度灵活性允许以高效的方式存储和检索数据。通常使用查询语言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)的数据库管理系统。
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)
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)
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)
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 |
-
2008
- 2008-02-19 EP EP08003017A patent/EP2056222A1/en not_active Withdrawn
- 2008-02-21 US US12/035,113 patent/US20090106309A1/en not_active Abandoned
- 2008-10-22 CN CNA2008101711715A patent/CN101419611A/zh active Pending
Cited By (2)
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 |