可扩展标记语言文件导出方法技术

技术编号:3520584 阅读:244 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种可扩展标记语言文件导出方法,包括步骤获取可扩展标记语言文件所属的可扩展标记语言文件模式;根据模式所定义的名称空间从模式表中读出可扩展标记语言文件的映射文件;根据映射文件找到存储该文档的所有复杂类型和出现不止一次的简单类型元素的数据库表;根据可扩展标记语言文件的文档实例标识从所述数据库表中读取属于该文件的记录,以及根据映射文件构造该文件的文档对象模型;将文档对象模型序列化成字符串以形成可扩展标记语言文件。采用本发明专利技术可扩展标记语言文件导出方法能够在不缺失任何可解析信息的情况下将存储在关系数据库表中的可扩展标记语言文件导出。

【技术实现步骤摘要】

本专利技术涉及可扩展标记语言领域,尤指一种。
技术介绍
随着Internet的迅猛发展,xml(Extensible Markup Language,可扩展标记语言)作为Internet上数据表示的新标准,以其具有的自描述性、灵活性、扩展性和平台无关性等优势,正在被广泛的应用于各种Web应用中。近年来许多研究工作致力于将数据库技术应用于xml文件的处理上。利用数据库成熟的技术来存储xml文件。目前主流的xml数据库形式是利用关系数据库来存储xml文件,例如Oracle9i、SQL Server 2000等关系数据库。利用关系数据库存储xml文件后,如何能够快速“完整”地将xml文件导出,即取出原存入的xml文件而不缺失任何可解析信息是当前研究的热点问题。
技术实现思路
本专利技术要解决的问题是提供一种能够不缺失任何可解析信息而将可扩展标记语言文件导出的。为了解决上述问题,本专利技术的技术方案包括下述步骤1)获取可扩展标记语言文件所属的可扩展标记语言文件模式;2)根据模式所定义的名称空间从模式表中读出可扩展标记语言文件的映射文件,所述模式表至少包括名称空间和映射文件两个字段;3)根据映射文件找到存储该文档的所有复杂类型和出现不止一次的简单类型元素的数据库表;4)根据可扩展标记语言文件的文档实例标识从所述数据库表中读取属于该文件的记录,以及根据映射文件构造该文件的文档对象模型;5)将文档对象模型序列化成字符串以形成可扩展标记语言文件。所述步骤1)又进一步细分为下述步骤10)获取可扩展标记语言文件的名称空间;11)通过名称空间获取相应的可扩展标记语言模式并验证模式的有效性。所述步骤2)又细分为下述步骤20)通过名称空间获取引用的名称空间;21)对每一个名称空间获取其对应的映射文件并组装成一个完整的映射文件。所述步骤4)进一步细分为下述步骤 40)根据可扩展标记语言文件的文档实例标识从所述数据库表中读取属于该文件的记录;41)根据记录中元素的基本信息、父子关系以及元素在文件中出现的顺序,依照映射文件构造出与其相应的元素节点;42)读取元素记录中的父节点信息以构造出该文件的文档对象模型。与现有技术相比,本专利技术的有益效果是一方面,由于采用将可扩展标记语言文件中的元素提取出来存放到关系数据库表中,并不对其标签等进行存储,故所占用的存储空间小。另外,本专利技术可扩展标记语言文件将每一个复杂类型元素、全局元素以及出现不止一次的简单类型元素分别生成一个与其对应的关系数据库表,不考虑该元素是由哪个xml schema所引用。这样使生成的表不依赖于引用该元素的xmlschema,而只依赖于定义该元素的xml schema。因而使所有相同类型的元素一定共享相同的数据库结构。当不同来源的元素导入数据库时,它们会在这里汇集,存储在一起,成为一个个数据团,这样在查询某一元素时,只查询与其对应的表即可,而不必在考虑与其有关的xml schema,从而可实现对xml文件数据的高效查询。另一方面,由于在存储xml文档时记录了元素的文档索引和在文档中出现的顺序,在导出文档时可以根据这些信息在数据库中快速定位并读出所需记录,然后可以根据Schema的映射模板按照顺序构造xml元素,使得序列化出的xml文档不损失任何可解析的信息。因此本专利技术可扩展标记语言导出方法既可以实现xml快速有效的导出,同时又能保证“完整”的导出xml文档,不缺失任何可解析信息。附图说明图1是本专利技术流程图;图2是图1中步骤1)进一步划分的流程图;图3是图1中步骤2)进一步划分的流程图;图4是图1中步骤4)进一步划分的流程图;图5是实施例中四个模式的依赖关系示意图。具体实施例方式在介绍本专利技术的技术方案之前,先将xml文件存入关系数据库表中,然后再采用本专利技术对存入关系数据库表中的xml文件导出。本例的xml文件有四个模式。模式一company.xsd<?xml version=″1.0″encoding=″UTF-8″?> <xsschema targetNamespace=″http//org.xmldb.company″xmlnsxs=″http//www.w3.org/2001/XMLSchema″xmlns=″http//org.xmldb.company″xmlnspcr=″http//org.xmldb.pcrsonncl″clcmcntFormDcfault=″qualificd″attributeFormDefault=″unqualified″>依赖模式personal.xsd<xsimport namespace=″http//org.xmldb.personnel″schemaLocation=″personal.xsd″/><xselement name=″company″> <xsannotation> <xsdocumentation>Comment describing your root element</xsdocumentation> </xsannotation> <xscomplexType> <xssequence> <xselement name=″employee″type=″employee″/> <xselement name=″department″> <xscomplexType> <xssequence> <xselement name=″manager″> <xscomplexType> <xssequence> <xselement name=″ran k″ type=″xsstring″/> <xselement ref=″perperson″/> </xssequence> </xscomplexType> </xselement> <xselement name=″name″type=″xsstring″/> </xssequence> </xscomplexType> </xselement> </xssequence> </xscomplexType></xselement><xscomplexType name=″employee″>本文档来自技高网...

【技术保护点】
一种可扩展标记语言文件导出方法,其特征在于,包括下述步骤:1)获取可扩展标记语言文件所属的可扩展标记语言文件模式;2)根据模式所定义的名称空间从模式表中读出可扩展标记语言文件的映射文件,所述模式表至少包括名称空间和映射文件两 个字段;3)根据映射文件找到存储该文档的所有复杂类型和出现不止一次的简单类型元素的数据库表;4)根据可扩展标记语言文件的文档实例标识从所述数据库表中读取属于该文件的记录,以及根据映射文件构造该文件的文档对象模型;5) 将文档对象模型序列化成字符串以形成可扩展标记语言文件。

【技术特征摘要】

【专利技术属性】
技术研发人员:李安渝严兵傅朝霞秦良娟丁蔚耿建光秦怀平董胜涛
申请(专利权)人:中国科学院软件研究所神州数码软件有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1