日子技术 模型中的对象是否被实例化要取决于所用 的软件。有些软件允许依据模型产生类,然后 可以在程序中使用由这些类所产生的对象。在 这些产品中,数据足存XML文件一对象 数 据库之问传递的。其他产品是直接在XML文件 和数据库之间进行数据转换的,对象只是作为 这种过程的可视化帮助工具。生成这些中间对 刘刚 哈尔滨银行双鸭山分行同济大学软件工程硕士在读研究生 象是否有用完全取决于你的应用程序。 二、将XML数据转化为ORACLE数据库数 ng) 摘要 x^礼是Extensible Markup Language Mappi据 许多转换XM[ 到数据库的中问软件都采用 的简写,是由W3C所发展的。可以上网页设 为了解决把XMI 有效地、自动地转换出 文件看作一个(或 计人员自行定义TAG的延伸格式,可以用在自 基于表格的映射。它把XMI入关系数据库的问题有各种方式。敏据库厂商 组)表格,也就是说,XML文件的结构必 由性的数据库或是各种文件格式上,用来接收 Oracle已经开发了转换XML到数据库表中的 与应用各种网页的须求。本文着重介绍了如何 须是下面这种样子,如果只是单一表格的话,辅助工具。Oracle XML SQL Utility把XML abase>元素和其他<table>元 将xML文件数据导入一般关系数据库的具体 就不再需要<dat文档元素建模为一组嵌套的表。通过使用 素。 方法。 Oracle对象数据类型建模套入的元素。”SQL— 根据所用软件的不同,可以将各字段数据 关键调:XML;关系 据库; 缸I ;data to XMI ”转换使用被对象数据类型引用的表, 。rdH ;are'de 以子元素的形式或以属性的形式存储,同样也 到一关联来构造XML 可以指定这些元素或属性的名字。此外,采用 和嵌套的元素之间的・文档。”XMI to SQL”可能要求数据模型的改 XML是一个精简的SGML,它将SGML的一 基于表格映射方式的软件还可能允许在文件开 十富功能 HTML的易用性结合到web的应用 始的地方包含表格或各字段的元数据,或者将 进(从炎系转换到对象关系)或重新构造最初的 论XML文档数据库数据之 间的转换原理及转换对象 一 中。XML要比HTML强大得多,它 再是固定 其作为各表格或元素的属性。注意这里所说的 XML文档。使用OracleXMLSave来存储XML文档 的标记,而是允许定义数量不限的标记来描述 “表格”是泛指的表格。当将数据从数据库中 方法进行实际 文档巾的资料,允许嵌套的信息结构。HTML 转Nx M L文件时, “表格”可以是任何结果 到对象关系模型中;insertXMI的数据插入。 {是Web显示数据的通用方法,而XMI 提供了 集,反之, “表格”可以是普通的表格或可更 一个直接处理Web数据的通用方法。HTMI 着重描述Web页而的显示格式,而XML着重描 述的是Web页而的内容。 XML与数据库的数据转换原理 xML和关系数据库在数据应用和数据管理 方面各有优势,应是一种相辅相成、扬长避短 的关系。从技术角度讲, “以数据库为存贮手 段,以xML为交换载体”的数据管理模式是 种趋势。XM[存放在关系数据库中,XML 数据以虚拟xM L文档的形式存住。本文的重点 即着重讲解:如何将xInl数据转化为关系数据 库数据。 为了在XMI 文件和数据库之间交换数 据,必须将XML文件fl,'Jsche111a(DTD,XML SChenla,RELAX NG等)映射到数据库的 scl2ema。用于数据转换的软件位于这种映射 的}:层。该软什可以使用XML Query语占(如 XPath,XQuery,或其他专用语言)或简单地按 照映射(SELECT}FROM Table的XMI 对应 形式)转换数据。 对丁后者,文档的结构必须完全符合映 射所要求的结构。由于通常不易做到这点,使 用这种策略的产品 般要,uxS L T一起使用。 住数据转换列数据库之前,先将文件按照映射 所要求的结构进行转换,然后转存数据。相应 地,数据从数据库中取出以后,结果文件要被 转换成应用程序所需的结构。 文什schema ̄rJ数据库schema的映射是在元 素类型、属性和文本上进f?fl0。这时几 总是 ,忽略物理结掏及 些逻辑结构。这样做是自然 而然的,因为数 芹和应用程序只需关心XML 文f ̄-d呐々数据。 这卡叶t方法的一个问题是能否保Ⅱ文件的往 返 将文件巾的数据仔人数据』 后,又从数 据眸中的数据重新构建文件。将 个XMI 文什 的schema映射刮数据库 ̄(,jschema有两种方法: 慕于表格的映9寸相对象关系映射。 1、基于丧格的映射(Tabl e B a s ed 一、一新的视图。 基于表格的映射埘仔取关系型数据比较适 用,比如在两个关系型数据库之间转换数据。 其明显不足就是不适于格式不符的XML文件。 2、对象关系映射(Object—rRelationa1 Mapping) 所有支持x M L的关系型数据库和某些中 间件都可以使用对象关系的映射方式。它将 XMI 文件中的数据视为特定的对象树的模型。 在这个模型【11,元素及其类型、元素内容或混 合内容(复合元素类型)通常被视为类。只具 有PCDATA内容的元素(简单元素类型)、属性 以及PCDATA都被当作简单属性。然后通过传 统的对象关系映射技术或SQL 3#a对象视图 将该模型映射到关系型数据库。也就是说,类 被映射到表格,简单属性被映射到字段,而值 为对象属性被映射为成对的主键/外键(primaw key/foreign key)。 理解这种映射所用的对象模型的时 候要知道,这个对象模型不是文件对象模型 (DOM)。所有xML文件fl0DOM都是一样的,, 而上述描述文件数据的模型对于每个DTD所 定义的XML文件都不一样,例如,上述销售 i『单的模型是一个由四个类所组成的对象树 import java.sq1. ; im P 01’t 0 r a cl e.xm1.sq1.dm1. 0racleXMLSave; public claSS testXMLlnsert public static void main(String args[]) tlnrows SQLException : C 0nn ecti0n conn= OracleXMLSave sav=new getConnection(”yly”,”yly”); OracleXMi Save(corm,”yly.FXTRADE”); //Aasume that the user passes in this document as 0 arg sav.insertXML(args[0]); sav.close(); 如果XML和住数据库中的对象关系模 型是同步的则一tJJ正常,但是如果不同呢?在 这种情况下你有两种选择。 调整对象炎系模型 可以构造一个 可修改的对象关系视图来完成多表修改;或 者,作为替代,使用XSLT,可以把 XML SalesOrder,Customer,Item,{NPart, 如 文档分解成一组”平坦的”子文档。XSU不允许 r图所示: 属性值的仔储;它缱议你把 f生转换成元素。 Sales0rder 本文阐述了xML与一般关系数据库之间 Customer “em Item 的数据转换,以及在0rac1e数据巾如何有效地 存fi ̄XMI 数据。由丁篇幅有限,本文只列出较 Part Part 在 川 个文 的DOM}・,埘缘柑的自¨£是几桌、 性 I文书 为重要的原代6马,而是把重点破在描述XML 与一般戈系数据片数据交换的原理与流程上。 儿奈…裙 【SalesOrder1cSONumber) 相信XMl 在未来的EDi(Electronic Document interChange)I川 发挥主流作用,不久的将来 各行业邯 定会…现广1己的通用的XML标记语 儿采 之牛 儿索 儿采 言,XML的应用也会越求越广泛,它最终将取 (Custome r)(OrderDate)(Item) (Item) 代一股标}已性语占,如I{TMI ,在网络信息革 命的主导地何。