可扩展标记语言类型至关系数据库表的映射方法技术

技术编号:2862256 阅读:213 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种可扩展标记语言类型至关系数据库表的映射方法,包括步骤10)将模式间的依赖关系存放在关系数据库系统表中;20)为可扩展标记语言文件中的每一个名称空间创建一个映射文件,所述映射文件包括该模式中所有的复杂类型、简单类型、全局元素以及相应子元素;30)为映射文件中每一个复杂类型、全局元素以及出现不止一次的简单类型元素分别生成一个与其对应的关系数据库表,其所包含子元素和出现小于等于一次的简单类型元素作为与其对应的关系数据库表中的字段。可以使得模式(模式定义了可扩展标记语言类型)所定义的一类可扩展标记语言文件共享一套数据库表,而无需就单独的可扩展标记语言文件进行数据库映射。

【技术实现步骤摘要】

本专利技术涉及可扩展标记语言领域,尤指一种。
技术介绍
随着Internet的迅猛发展,xml(Extensible Markup Language,可扩展标记语言)作为Internet上数据表示的新标准,以其具有的自描述性、灵活性、扩展性和平台无关性等优势,正在被广泛的应用于各种Web应用中。近年来许多研究工作致力于将数据库技术应用于xml文件上,将xml文件映射至关系数据库表内。如何将xml文件映射至关系数据库表中是目前本领域的重要研究课题之一。现有xml文件至关系数据库表的映射方法都是采用手工映射,并且有些映射方法只支持xml文件本身到数据库的映射,不支持模式(schema)的映射。R.Bourret、C.Bornhovd和A.Buchmann提出了利用一个实体来实现xml文件和关系数据库之间数据的转化。实体的形式表现为xml文件,而且还详细地描述了每个xml节点与关系数据库中的表、字段的对应关系。但是这个实体很繁复,查找实体中的节点来获得与关系数据库的对应关系的效率也很低。虽然可以利用表来存储xml节点与关系数据库中表与记录的对应关系,但是这样处理会导致不能灵活修改。而本专利技术提出了新的xml Schema到关系数据库模式的映射规则,基于此提出了映射模板的概念,这个模板可以直接使用去驱动数据库表的生成。
技术实现思路
本专利技术要解决的问题是提供一种基于模式的。为了解决上述问题,本专利技术的技术方案包括下述步骤10)将模式间的依赖关系存放在关系数据库系统表中;20)为可扩展标记语言文件中的每一个名称空间创建一个映射文件,所述映射文件包括该模式中所有的复杂类型、简单类型、全局元素以及相应子元素;30)为映射文件中每一个复杂类型、全局元素以及出现不止一次的简单类型元素分别生成一个与其对应的关系数据库表,将其所包含的子元素和出现小于等于一次的简单类型元素作为与其对应的关系数据库表中的字段。所述步骤20)可细分为下述步骤200)获取可扩展标记语言文件的模式对象模型; 201)根据模式对象模型获取每一个模式所对应的名称空间并为每一个名称空间创建一个映射文件;重复步骤202)至208)填充每一个映射文件,202)获取每个名称空间的全部全局元素和复杂类型;203)为每一个全局元素生成一个可扩展标记语言元素映射节点,并设置与其相应的属性;204)生成可扩展标记语言元素映射集合节点,且该集合节点包含步骤203)中生成的所有节点;205)为每一个复杂类型生成一个可扩展标记语言类型节点,并设置与其相应的属性;206)找出每一个复杂类型所包含的所有子元素;207)为每一个子元素生成一个可扩展标记语言元素节点并将其放入其所属的复杂类型的扩展标记语言类型节点中;208)生成可扩展标记语言类型集合节点,该集合节点包括步骤205)中生成的所有可扩展标记语言类型节点。所述与可扩展标记语言类型节点相应的属性为复杂类型标识,id,用于标识该复杂类型名称,name,用于表示该复杂类型的全局名称名字空间,namespace,用于表示该复杂类型的名字空间;与可扩展标记语言元素节点相应的属性为名称,name,用于表示该元素的全局名称原始名称,localName,用于表示由模式对象模型指定的该元素的原始名称元素类别,elementType,用于表示该元素的类别元素类型,type,用于表示该元素的类型元素标识,id,用于标识该元素。所述步骤30)可细分为下述步骤300)为映射文件中的每一个可扩展标记语言类型节点生成一个关系数据库表,表名为其属性复杂类型标识;301)将每一个可扩展标记语言类型节点所包含的所有属性和出现小于等于一次的简单类型元素作为与其相应的关系数据库表的字段;302)为每一个出现不止一次的简单类型元素生成一个子关系数据库表,该表名为其属性元素标识;303)为每一个关系数据库表建立下列字段记录序号,uuid_id,用于表示记录顺序实例元素名称,uuid_name,用于表示可扩展标记语言文件实例中该元素的名称实例标识,uuid_docid,用于标识可扩展标记语言文件实例父元素标识,uuid_parentid,用于标识该元素的父元素元素顺序,uuid_order,用于表示可扩展标记语言文件实例中元素出现的顺序。本专利技术还包括步骤建立数据库系统表,所述数据库系统表包括模式引用关系表,Schemacrossref,用于存放可扩展标记语言文件模式间的依赖关系;模式表,Schema,用于存放可扩展标记语言文件模式与其对应的映射文件的对应关系;文件实例表,DocInstance,用于存放可扩展标记语言文件存储标识。与现有技术相比,本专利技术的有益效果是由于采用为每一个名称空间生成一个映射文件,然后根据映射文件生成关系数据库表,可以使得模式(模式定义了可扩展标记语言类型)所定义的一类xml文件共享一套数据库表,而无需就单独的xml文件进行数据库映射。由于采用将可扩展标记语言文件的每一个复杂类型、全局元素以及出现不止一次的简单类型分别生成一个与其对应的关系数据库表,不考虑该元素是由哪个xml schema所引用。这样使生成的表不依赖于引用该元素的xmlschema,而只依赖于定义该元素的xml schema。因而使所有相同类型的元素都会存储在一起,这样在查询某一元素时,只查询与其对应的表即可,而不必再考虑与其有关的xml schema,从而可实现对xml文件数据的高效查询。附图说明图1是本专利技术流程图;图2是图1中步骤20)进一步划分的流程图;图3是图1中步骤30)进一步划分的流程图;图4是实施例中四个模式的依赖关系示意图。具体实施例方式如图1所示,本专利技术包括下述步骤10)将模式间的依赖关系存放在关系数据库系统表中;20)为可扩展标记语言文件中的每一个名称空间创建一个映射文件,所述映射文件包括该模式中所有的复杂类型、简单类型、全局元素以及相应的子元素;30)为映射文件中每一个复杂类型、全局元素以及出现不止一次的简单类型元素分别生成一个与其对应的关系数据库表,其所包含的子元素和出现小于等于一次的简单类型元素作为与其对应的关系数据库表中的字段。通过为每一个名称空间创建一个映射文件,然后根据映射文件将xml类型(复杂类型、全局元素以及出现不止一次的简单类型元素)映射成关系数据库表,从而实现了xml类型至关系数据库表的映射,因而可以利用关系数据库的成熟技术来处理(存储、检索等)xml文件。如图2所示,所述步骤20)细分为下述步骤200)获取可扩展标记语言文件的模式对象模型;201)根据模式对象模型获取每一个模式所对应的名称空间并为每一个名称空间创建一个映射文件;重复步骤202至步骤208)填充每一个映射文件202)获取每个名称空间的所有的全局元素和复杂类型;203)为每一个全局元素生成一个XmlMappingElement(可扩展标记语言元素)节点,并设置与其相应的属性;204)生成XmlMappingElements(可扩展标记语言元素集合)节点,XmlMappingElements节点包含步骤203)中生成的所有XmlMappingElement节点;205)为每一个复杂类型生成一个XmlMappingType(可扩展标记语言类型)节点,并设置与其相应的属本文档来自技高网...

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

【技术特征摘要】

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

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

1