可扩展标记语言文件存储及插入关系数据库表的方法技术

技术编号:2863044 阅读:254 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种可扩展标记语言文件存储方法,包括步骤将模式间的依赖关系存放在关系数据库系统表中;为可扩展标记语言文件中的每一个名称空间创建一个映射文件;为映射文件中每一个复杂类型、全局元素以及出现不止一次的简单类型元素分别生成一个与其对应的关系数据库表;将可扩展标记语言文件的元素值及其属性值插入与其对应的数据库表中。一种可扩展标记语言文件元素值插入关系数据库表的方法包括步骤获取可扩展标记语言文件所属的可扩展标记语言文件模式;根据模式所定义的名称空间从数据库中读出可扩展标记语言文件的数据库映射文件;遍历可扩展标记语言文件,将可扩展标记语言文件元素值插入相应的关系数据库表中。占用存储空间小且高效查询。

【技术实现步骤摘要】

本专利技术涉及可扩展标记语言领域,尤指一种。
技术介绍
随着Internet的迅猛发展,xml(Extensible Markup Language,可扩展标记语言)作为Internet上数据表示的新标准,以其具有的自描述性、灵活性、扩展性和平台无关性等优势,正在被广泛的应用于各种Web应用中。 如何对xml文件进行存储,才能有效地对其数据进行管理成为当今研究的热点。近年来许多研究工作致力于将数据库技术应用于xml文件的存储上,利用数据库成熟的技术来存储xml文件。目前主流的xml数据库形式是利用关系数据库来存储xml文件,例如Oracle9i、SQL Server 2000等关系数据库。 当前用关系型数据库存储xml文件最常见的有两种方法一种就是将xmlSchema(xml模式)映射到关系数据库模式;另一种方法就是将整个文件保存为一个CLOB(character large obiect,字符大对象)字段。两种方法各有优劣,采用前一种方法,xml Schema被映射为数据库中多个相互关联的表存储xml文件后对其进行查询时将导致多表连接,使得查询效率很低,并且在重组xml层次结构时不仅效率较低而且很难恢复原样,没有很好的“往返”性(存储的xml文档和返回的xml文档的一致性)。采用后一种方法存储xml文件,由于xml文件中使用了大量的标签,大量的标签会占用很多存储空间,因而采用该方法会浪费大量的存储空间,据统计,平均在40%左右,同时该方法虽然保存了xml文件的数据内容和层次结构,但SQL查询不能深入到文件的字段,查询文件部分的唯一方法是将整个文件返回,解析之后查询,不适合于文件较大或者多文件查询的情况。
技术实现思路
本专利技术要解决的问题是提供一种占用存储空间小而且能够高效查询的可扩展标记语言文件存储方法。 为了解决上述问题,本专利技术可扩展标记语言文件存储方法的技术方案包括下述步骤 10)将模式间的依赖关系存放在关系数据库系统表中; 20)为可扩展标记语言文件中的每一个名称空间创建一个映射文件,所述映射文件包括该模式中所有的复杂类型、简单类型、全局元素以及相应子元素; 30)为映射文件中每一个复杂类型、全局元素以及出现不止一次的简单类型元素分别生成一个与其对应的关系数据库表,其所包含子元素和出现小于等于一次的简单类型作为与其对应的关系数据库表中的字段; 40)将可扩展标记语言文件的元素值及其属性值插入与其对应的数据库表中。 所述步骤20)进一步细分为下述步骤 200)获取可扩展标记语言文件的模式对象模型; 201)根据模式对象模型获取每一个模式所对应的名称空间并为每一个名称空间创建一个映射文件; 重复步骤202)至208)填充每一个映射文件, 202)获取每个名称空间的全部全局元素和复杂类型; 203)为每一个全局元素生成一个可扩展标记语言元素映射节点,并设置与其相应的属性; 204)生成可扩展标记语言元素映射集合节点,且该集合节点包含步骤203)中生成的所有节点; 205)为每一个复杂类型生成一个可扩展标记语言类型节点,并设置与其相应的属性; 206)找出每一个复杂类型所包含的所有子元素; 207)为每一个子元素生成一个可扩展标记语言元素节点并将其放入其所属的复杂类型的扩展标记语言类型节点中; 208)生成可扩展标记语言类型集合节点,该集合节点包括步骤205)中生成的所有可扩展标记语言类型节点。 所述步骤30)进一步细分为下述步骤 300)为映射文件中的每一个可扩展标记语言类型节点生成一个关系数据库表,表名为其属性复杂类型标识; 301)将每一个可扩展标记语言类型节点所包含的所有属性和出现小于等于一次的简单类型元素作为与其相应的关系数据库表的字段; 302)为每一个出现不止一次的简单类型元素生成一个子关系数据库表,该表名为其属性元素标识; 303)为每一个关系数据库表建立公共字段。 本专利技术可扩展标记语言文件存储方法还包括步骤建立数据库系统表,所述数据库系统表包括 模式引用关系表,用于存放可扩展标记语言文件模式间的依赖关系; 模式表,用于存放可扩展标记语言文件模式与其对应的映射文件的对应关系; 文件实例表,用于存放可扩展标记语言文件存储标识。 所述步骤40)又进一步分为下述步骤 400)解析可扩展标记语言文件以获得文档对象模型; 对所述文档对象模型中的每一个节点,执行步骤401)至步骤404) 401)通过映射文件得到该节点的属性元素类别和类型; 402)若元素类别为简单类型,且出现次数小于等于一次,将该节点值插入其父节点对应的关系数据库表中; 403)若元素类别为简单类型,且出现至少一次,将该节点值插入其对应的关系数据库表中; 404)若元素类别为复杂类型,将该节点值插入其对应的关系数据库表中,且将该节点的属性值插入该关系数据库表中的相应字段中。 相应地,本专利技术可扩展标记语言文件元素值插入关系数据库表的方法的技术方案包括下述步骤 a)获取可扩展标记语言文件所属的可扩展标记语言文件模式; b)根据模式所定义的名称空间从数据库中读出可扩展标记语言文件的映射文件; c)遍历可扩展标记语言文件,将可扩展标记语言文件元素值插入相应的关系数据库表中。 与现有技术相比,本专利技术的有益效果是 由于采用将可扩展标记语言文件中的元素提取出来存放到关系数据库表中,并不对其标签等进行存储,故所占用的存储空间小。 另外,由于将每一个复杂类型、全局元素以及出现不止一次的简单类型元素分别生成一个与其对应的关系数据库表,不考虑该元素是由哪个xml schema所引用。这样使生成的表不依赖于引用该元素的xml schema,而只依赖于定义该元素的xml schema。因而使所有相同类型的元素一定共享相同的数据库结构。当不同来源的元素导入数据库时,它们会在这里汇集,存储在一起,成为一个个数据团,这样在查询某一元素时,只查询与其对应的表即可,而不必在考虑与其有关的xml schema,从而可实现对xml文件数据的高效查询。 附图说明 图1是本专利技术可扩展标记语言文件存储方法流程图; 图2是图1中步骤20)进一步划分的流程图; 图3是图1中步骤30)进一步划分的流程图; 图4是实施例中四个模式的依赖关系示意图; 图5是图1中步骤40)进一步划分的流程图; 图6是本专利技术可扩展标记语言文件元素值插入关系数据库表的方法流程图。 具体实施例方式 如图1所示,本专利技术可扩展标记语言文件存储方法包括下述步骤 10)将模式间的依赖关系存放在关系数据库系统表中; 20)为可扩展标记语言文件中的每一个名称空间创建一个映射文件,所述映射文件包括该模式中所有的复杂类型、简单类型、全局元素以及相应的子元素; 30)为映射文件中每一个复杂类型、全局元素以及出现不止一次的简单类型元素分别生成一个与其对应的关系数据库表,其所包含的子元素和出现小于等于一次的简单类型元素作为与其对应的关系数据库表中的字段。 40)将可扩展标记语言文件的元素值及其属性值插入与其对应的数据库表中。 通过为可扩展标记语本文档来自技高网
...

【技术保护点】
一种可扩展标记语言文件存储方法,其特征在于,包括下述步骤:10)将模式间的依赖关系存放在关系数据库系统表中;20)为可扩展标记语言文件中的每一个名称空间创建一个映射文件,所述映射文件包括该模式中所有的复杂类型、简单类型、全局 元素以及相应子元素; 30)为映射文件中每一个复杂类型、全局元素以及出现不止一次的简单类型元素分别生成一个与其对应的关系数据库表,其所包含子元素和出现小于等于一次的简单类型作为与其对应的关系数据库表中的字段;40)将可扩展标 记语言文件的元素值及其属性值插入与其对应的数据库表中。

【技术特征摘要】

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

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

1