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

开发者在线 Builder.com.cn 更新时间:2003-08-25作者:ZDNet China,周靖 来源:

本文关键词: 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之间进行转换。

用户评论

  • 用户名
  • 评论内容