使用Java和XML-DBMS将数据库桥接到XML

ZDNet软件频道 时间:2003-08-25 作者:ZDNet China,周靖 译 |  我要评论()
本文关键词:xml
本文证明使用XML-DBMS来存储XML数据其实并不难。如果你已经建立了一个关系数据库基础结构,或者希望建立一个独立于数据库厂商的基础结构,就推荐采取这种方式。
本文译自Builder.com,未经许可请勿转载即使一个关系数据库不支持xml,也有可能在其中存储和检索xml文档。其中的诀窍很简单,你需要小心地使用Java(数据库必须相容于JDBC)以及一个名为xml-DBMS的第三方中间件框架。xml-DBMS相当于关系数据库与xml文档流之间的一种粘合剂。

一般可采用2种方式将xml映射到数据库:基于表的映射和面向对象(基于对象)的映射。对于在xml文档和数据库(尤其是关键数据库)之间传输数据的软件来说,这2种方式是它们的基础。这2种方式很重要的一个特点在于,它们都是双向的,所以能同时支持xml文档存储与检索。

基于表的映射最容易理解。它将文档视为单独一个表或者一个表集,列数据可表示为纯PCDATA元素或者属性(attributes)。下面这个示范文档结构演示了基于表的映射:

<TableName>
<Row ColumnName0="Value0" ColumnNameN-1="ValueN-1" >
<ColumnName1>Value1</ColumnName1>
. . .
<ColumnNameN>ValueN</ColumnNameN>
<Row>
<Row ColumnName0="Value0">
<ColumnName1>Value1</ColumnName1>
. . .
<ColumnNameN>ValueN</ColumnNameN>
<Row>
. . .
</TableName>


这种方式是对纯数据进行建模,无需一个文档,与关系模型非常相似。但是,它只适用于xml文档的一个有限的子集。

采用基于对象的映射,xml-DBMS则根据一种面向对象的方案将xml文档映射到数据库。在这个方案中,元素类型通常被视为类,而属性(attribute)和PCDATA被视为那些类的属性(properties)。这样一来,xml文档就可作为一个对象树来建模,其中的对象特定于文档中的数据。然后,可以将这些对象映射到数据库。下面这个示范文档结构演示了基于对象的映射:

<orders>
<order>
<order_id>OID12345</order_id>
<user_id>UID745632</user_id>
<posted_at>12.05.2003</posted_at>
<type>34</type>
<cargo>
<cargo_id>CID4553</cargo_id>
<title>Carrot</title>
<code>crt-568</code>
<quantity>3</quantity>
<weight>5</weight>
<danger>low</danger>
</cargo>
<cargo>
<cargo_id>CID4554</cargo_id>
<title>Potatoes</title>
<code>ptts-389</code>
<quantity>7</quantity>
<weight>9</weight>
<danger>high</danger>
</cargo>
</order>
</orders>


各种映射方式的细节超出了本书的范围,所以我会以上例为基础讲解一个实际的例子,它演示了如何在xml和DBMS之间进行转换。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134