软件技术报告-XML数据转换的研究.doc

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件技术报告 XML数据转换的研究 修订历史 编号 日期 修订内容 签名 目录 1. 摘要 1 2. 引言 2 2.1. 目标 2 3. 问题陈述 3 4. 详细内容 4 4.1. 方法 4 4.2. 结果 4 4.3. 相关工作及比较 4 4.4. 讨论 4 5. 结论和建议 5 6. 参考文献 6 7. 附录 7 摘要 本文首先对XML的转换技术XSLT做了简要的介绍。然后分析了关系数据库和面向对象类图两个领域间进行数据转换的的映射规则,另外文中还分别分析了XSD文件和XMI文件标准化和本地化的映射规则,最后介绍了采用的XSLT转换器接口。 引言 本文主要通过XSLT处理器来处理XSLT指令,因此此处简要的介绍XSLT处理器如何进行转换。X S LT操作的是文档的模型而不是语法。源和目标格式都是X ML的应用,并且两个的分级命令都是一棵树。另外X S L样式表是一个X M L文档,所以它也可以用一棵树来表示。所以, X S LT处理器一共有三棵树。XS LT是一种公布的语言,意思是你来指定结果的显示,或者说它如何被转换,并且这就是为什么我们使用X S L处理器来做这件工作。X S L样式表是由模板组成,它指定了源树中的每个节点在结果中应如何显示。下图说明了XSLT处理器的工作原理: 在这里面我们可以看到有三个命令。记住源和结果命令都是文档的抽象表现。处理器遍历源树林,从根开始,查找与在样式表中模板相匹配的节点。当找到一个,它使用在模板中的规则在结果树中写出结果的抽象表示。然后,在源文档中继续移动,一个节点接着一个节点,根据前导的X S LT指令xsl;apply-template/在样式表中查找相应的匹配。如果没有可匹配的模板,它就移动到下一个命令。我们可以说它执行一个缺省模板,不输出任何结果。然后,结果树被转换成一个XML文档、文本、HTML文档或希望的结果。 目标 面向对象的应用程序开发日前己经是信息技术的主流,同时大多数面向对象的软件项目都从关系数据库中访问数据。这一事实对软件设计师和开发人员来说既有积极的含义又有消极的含义。从积极的方面看,面向对象技术和关系数据库都各有几十年的发展,它们都通过实践证明了它们的可用性。从消极的方面看,对象模型和关系型数据库模式之间映射很困难。人们已经把大量的努力投入到了面向对象软件系统中对象模型和关系数据库的关系模型之间的映射中,最后得到的仍然是混合结果。 针对这一现状,本文拟着眼于面向对象系统中类及其实例与关系数据库中表的映射对对象/关系映射这一课题进行探讨和研究。本文的主要目标是分析和研究对象/关系映射的原理、存在的困难、相应的解决方法、对象/关系映射策略。 问题陈述 为了做到sql到mdl文件间的相互转换,需要进行一系列的数据转换: 1.从sql到mdl 首先把从sql转换过来的中间格式xsd文件转换成标准的xsd文件,然后把标准的xsd文件转换成标准的xmi文件,最后把标准的xmi文件本地化成mdl文件; 2. 从mdl到sql 首先把从mdl转换过来的中间格式xmi文件转换成标准的xmi文件,然后把标准的xmi文件转换成标准的xsd文件,最后把标准的xsd文件本地化成sql文件; 详细内容 方法 对xsd文件和xmi文件进行数据转换最主要的就是确定映射规则,规则确定了之后对数据的转换只需要编写相应的xsl程序即可,然后调用XSLT转换器接口,就可以实现不同xml文件的数据转换了。 4.1.1中间格式XSD(标准XSD的映射规则 在对中间格式标准化时,首先要创建元素xsd:element name=ROOT,描述所有表包含的外键信息。然后针对每个表创建两个xsd:element元素,一个元素名为表名_TABLE,一个元素名为表名,分别用来描述表的主键信息和表的属性信息。 ?由于中间格式xsd文件的结构是以TABLE元素构成,所有进行相应的转换需要对这些元素的内部信息进行检测: 1.当TABLE包含PRIMARY子节点时,则创建属性名为name,值为表名_TABLE的xsd:element元素,每一个PRIMARY子节点的值转换成xsd:element元素的子孙节点xsd:field xpath= /中属性xpath的值。 ?2.当TABLE既不包含PRIMARY子节点,也不包含FOREIGN子节点时,则创建属性名为name,值为表名的xsd:element元素,TABLE包含的每一个元素都转换成xsd:element name=,属性name的值为TABLE包含的元素名,元素值转换成xsd:restriction base= / ,属性base的值与元素值相对应,并且需要在不同的领域内做一定的转换。 ?3.创建属性名为name,值为R

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档