采用中间件技术实现关系数据模型到XML文档的转换

资源类型:pdf 资源大小:25.00KB 文档分类:工业技术 上传者:叶承

文档信息

【作者】 张冰 

【关键词】Web服务 中间件技术 序列化 反序列化 

【出版日期】2005-04-01

【摘要】关系数据模型到XML文档的转换的方法是Web服务中的关键问题这是Web服务的关键问题,本文介绍了相关的理论,描述了采用中间件技术实现关系数据模型到XML文档的转换方法.

【刊名】中国科技信息

全文阅读

Web服务程序数据存储模块返回的是关系数据库,而Web服务程序的方法返回的是序列化的XML文档。这必然涉及到关系数据库模式到XML文档的转换。针对这一问题本文采用了中间件技术作转换所谓中间件就是用来在XML文档和数据库之间进行处理和转化的软件。主要应用于以数据为中心的应用里面,它可以用各种各样的语言编写,尽管它可以通过Internet进行是数据的传输,但是一般它都是通过Web服务器来实现数据的传输。1,XML文档结构和数据库结构之间的映射为了在数据库和XML文档之间传递数据,必须在文档结构和数据库结构之间建立映射,这种映射可以有两个分类:模板驱动和模型驱动。基于模板驱动的映射:没有预先定义文档结构和数据库结构之间的映射关系,而是使用将命令语句内嵌入模板的方法,让数据传输中间件来处理该模板。其缺陷是必须先建立XML模板,XML文档形式比较简单,对于复杂类型的XML文档缺乏有效的手段,且需要专用的软件产品。基于模型驱动的映射:也就是说把数据从数据库传送到XML文档是用一个具体的模型实现的,这样,XSL可以被结合到基于模型映射的产品上。在XML文档中,两种模型是很常见的:表格模型(table model)和数据专用对象模型(data-specific object model)。表格模型:用表格模型在XML文档和关系数据库之间传递数据。它把XML文档表示为一个单一的表格或者是表格的集合。这样,一个X M L文档的结构可以用如下的形式表示:<database><table><row><column1>...</column1><column2>...</column2>...</row>...</table>...</database>这里关键字"talbe"在把数据从数据库传递到XML文档的时候,表示一个单一的结果集,把数据从XML文档传递到数据库的时候,表示一个单一的表格或者视图。但是,当结果集合不只一个的时候,或者当XML文档包括多个复杂嵌套的时候,这种传递方式就不能适应了。数据专用的对象模型:把一个XML文档表示为由数据对象构成的树,每一个元素类型和对象相对应。主要在面向对象和层次数据库中使用,通过传统的关系-对象模型也可以映射到关系数据库中。注意这种模型并不是文档对象模型(DOM),DOM是对文档本身进行建模,而不是对文档中的数据。比如,考试信息可以被看成一个对象树,其中包括七个类:TestPaper(试题)、QuestionID(试题标示)、QuestionItem(试题内容)、Option1(选项1)、Option2(选项2)、Option3(选项3)和Option4(选项4)。如图1所示。图1一个考试信息的对象树当把一个XML文档看成是一个以数据为中心的对象树的时候,元素不一定和对象相对应,比如,一个元素只包含PCDATA,它能够被当成一个属性,它包括一个单一的标量值。实际上在XML和数据库之间进行数据转化的时候,需要考虑两个过程:一个是从数据库模式中产生DTD,另外一个是根据DTD生成数据库模式。2,中间件技术的流程解决我们采用需要采用数据专用的对象模式做转换,具体实现的思想如图2所示。首先,把关系模式的数据转换成对象模式的数据。其次,在对象模型内部,依据规则,对所得的数据进行加工处理、转换成XML文档的形式。最后,对XML文档的数据进行有效的验证,以确定起是否满足XML Schema的定义要求。若满足,则序列化输出XML文档;否则,进行例外处理。图2中XML序列化将对象的公共字段和属性值序列化为X M L流,然后使用H T T P通过Internet在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。生成的X M L流符合W W W联合会(w w w.w3.org)XML架构定义语言(XSD)1.0建议。另外,生成的数据类型符合标题为“XML SchemaPart2:Datatypes”(XML架构第二部分:数据类型)的文档。XML序列化的好处是:只要生成的XML流符合给定的架构,则对于所开发的应用程序就没有任何约束,从而可以在任何的可以识别X M L文档的机器上运行所设计的系统。图2网络传输中中间件技术流程对XML文档的数据进行有效的验证,XML文档验证的目的是检验该文档是否符合XML大纲定义的要求。因为,定义XML文档的结构以及它的元素关系、数据类型和内容约束,需要使用XML大纲。如果XML文档满足World WideWeb Consortium(W3C)Extensible MarkupLanguage(XML)1.0Recommendation(WWW联合会(W3C)可扩展标记语言(XML)1.0建议)所定义的所有语法要求,它就被认为是格式正确的,但是,如果它不能同时满足格式正确和符合X M L大纲所定义的约束的这两个要求,那么它仍被认为是无效的。因此,虽然所有有效的XML文档都是格式正确的,但并不是所有格式正确的XML文档都是有效的。3,结论数据库表达的信息是完全结构化的信息,所表达的信息非常有规则,但无法表达一些层次的数据,而XML文档表达的是半结构化的信息,特别适合表达层次型数据,在灵活性上更好。正是数据库和XML文档存在结构化和半结构化的区别主要是非层次和层次型的区别导致了两者之间进行数据转换的困难,采用中间件技术实现关系数据模型到X M L文档的转换方法.可以有效解决这类问题,对从事Web服务的计算机工作者来说,有一定的借鉴价值。采用中间件技术实现关系数据模型到XML文档的转换@张冰$营口职业技术学院计算机系!115003Web服务;;中间件技术;;序列化;;反序列化关系数据模型到XML文档的转换的方法是Web服务中的关键问题这是Web服务的关键问题,本文介绍了相关的理论,描述了采用中间件技术实现关系数据模型到XML文档的转换方法.1、吴少华.eb数据库开发与应用[M]北京:科学出版社,2001. 2、张健飞著.ML实用培训教程[M]北京:科学出版社,2003. 3、张维明主编.语义信息模型及应用[M]北京:电子工业出版社,2002,148-154. 4、郑小平编著.Net精髓—Web服务原理与开发[M]北京:人民邮电出版社,2002,229-258.

1

引证文献

问答

我要提问