使用XSU在数据库中存储和检索XML

文章作者 100test 发表时间 2007:09:11 12:28:32
来源 100Test.Com百考试题网


如果把各种元素(element)看成是数据库表中的列字段,那么你可以将XML文档看作是关系表。因此,通过将各种元素映射到表,你可以在关系数据库中存储XML。这个映射过程被称为XML到SQL的映射技术。

  Oracle发明了XML SQL(XSU)Java API来将XML转换成SQL,或者反过来映射。在你可以执行这种映射之前,你必须先创建你将要映射XML文档到的表。XSU映射XML元素到指定的数据库表中的列。你应该清楚使用XSU来将XML文档映射到数据库表的时候将不会保存这个XML文档的属性,但是你可以在保存文档之前先对该文档进行XSLT转换,将你需要的属性存储XML属性,这样你可以映射到数据库表中的列。XSU还让你从数据库中检索数据,并且将数据转换成XML文档。同样,使用XSU产生的XML文档不会包含属性,然而,你可以在XSU之后通过对XSU所产生的文档执行XSLT转换来重新创建属性。

  在这篇文章中,你将了解将带有元素和属性的XML文档转换到Oracle 10g数据库中的表的必要步骤,并且通过将数据库列映射到XML文档来检索带有属性的XML文档的步骤。需要注意的是使用XSU来存储XML文档的功能并不仅仅限于Oracle,你可以在如MySQL等其他的关系数据库中方便的使用。

  前期准备

  为了使用Oracle数据库,你需要安装Oracle 10g数据库,包括样本数据库模式。你还需要XSU Java API classes。首先,下载并安装XDK 10g。将下面的三个文件加入到你的CLASSPATH变量中,其中代表你的安装路径:

  /lib/xsu12.jar

  /lib/xmlparserv2.jar

  /lib/xdb.jar

  创建一个数据库实例.在这篇文章中我将使用叫做OracleDB的数据库实例。为了和数据库建立JDBC连接,你需要合适的JDBC驱动.对于Oracle 10g,将下面的三个文件加入到你的CLASSPATH变量中,其中是你安装Oracle 10g的目录:

  /jdbc/lib/ojdbc14.jar

  /LIB/servlet.jar

  /jdbc/lib/classes12dms.jar

  在这篇文章中我将使用catalog.xml的XML文档作为例子,如Listing 1所示。

  你需要创建一个数据库表,该表的每一列将对应示例XML文档中每个元素标签和属性。你可以使用下面的SQL脚本来创建一个包含合适列的、名为JOURNAL的数据库表:

CREATE TABLE OE.JOURNAL (
JOURNAL_TITLE VARCHAR(255),
PUBLISHER VARCHAR(255),
EDITION VARCHAR(255),
ARTICLE_SECTION VARCHAR(255),
TITLE VARCHAR(255),
AUTHOR VARCHAR(255)
).



相关文章


用OracleTimesTen加速Oracle数据库
多个dump文件做Oracle中大数据量输出
从内部开始认识Oracle数据库结构组件
使用XSU在数据库中存储和检索XML
Oracle数据复制技术有效解决数据冗余
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛