模式匹配的XML文件格式与关系数据库转换的处理方法技术

技术编号:15051542 阅读:88 留言:0更新日期:2017-04-05 22:47
本发明专利技术公开了模式匹配的XML文件格式与关系数据库转换的处理方法,包括:步骤1,通过分析XML文件格式,识别出XML文件中的数据模式,将其编写为数据模式配置文件;步骤2,读取并解析XML文件,将其与数据模式配置文件中的数据模式进行匹配,形成树型的数据结构,识别出数据项;步骤3,利用识别的数据项,将数据项转换为对应的数据库表和数据库字段,组装成SQL语句,完成对数据操作,实现XML文件与关系数据库的转换。

【技术实现步骤摘要】

本专利技术属于计算机数据处理
,本专利技术是模式匹配的XML文件格式与关系数据库转换的处理方法
技术介绍
可扩展标记语言(eXtensibleMarkupLanguage,XML)作为一种计算机技术虽然表面上非常简单,但对计算机软件、数据库管理和B2B通信世界的广泛适用性和深远影响令人惊讶。这种基于标记的可扩展语言提供强大的功能,不但可以为构建数据提供一种高度结构化而且易于处理的方式,而且能够存储、交换关于数据意义的信息,是跨平台的信息交换的主要途径。要应用XML进行数据交换,首先要解决XML文档的解析问题,对其语义进行明确解读。W3C及XML_DEV邮件列表的成员分别提出了两个标准的应用程序接口:DOM(DocumentObjectModel,文档对象模型)和SAX(SimpleAPIforXML,XML简单编程接口),其主要实现了对XML文件的访问接口,并未提供数据转换机制。要进一步实现数据字段的识别处理需要针对每一数据项编写源代码进行识别处理,对于数据接口的更新操作需要源代码级的修改,缺乏灵活性。在已有的XML与关系数据库转换实现方法上,基本上都是基于XML文件中的DTD和XMLSchema(DTD和XMLSchema是用于对XML文档进行约束、确定XML文档的结构、元素及属性的名称和类型)实现数据转换,然而现实中大多数情况下XML接口文件中是没有XMLSchema和DTD的。(胡华,邵君,基于XML关系数据库转换策略研究与实现.微计算机信息.2008.24(5-3))XED(XML-EnabledDBMS)是在原有数据库基础上扩展了XML支持模块,完成XML数据和数据库之间的格式转换和传输,通常使用“基于表单”的映射方法。它将XML文档看作是一个表单或者一套表单。也就是说XML文档的结构必须遵循指定的结构,如果XML文档没有遵循该结构规则时,这种映射不可用。(马明,XML数据库技术初探.电脑与电信.2011.)
技术实现思路
本专利技术的目的在于提供模式匹配的XML文件格式与关系数据库转换的处理方法,实现从XML文件到数据库表的映射处理方法,在扩充XML文件接口的时候,仅需通过修改配置即可完成对新接口内容的解析处理。实现本专利技术目的技术解决方案为:一种模式匹配的XML格式与关系数据库转换的处理方法,本专利技术包括以下步骤:步骤1,通过分析XML文件格式,根据数据组织方式的不同将XML文件中的数据分为四类数据组,根据XML文件的节点名称及数据组织方式,将其描述为四类数据模式,并储存在模式配置文件中;步骤2,读取并解析XML文件,将其与数据模式配置文件中的数据模式进行匹配,形成与数据模式中数据项一一对应的内存数据;步骤3,根据内存数据与数据模式中数据项的对应关系,将内存数据与对应数据库字段一一对应,组装成SQL语句,完成对数据库的操作,实现XML文件与关系数据库的转换。步骤1包括如下步骤:步骤1-1,分析XML文件的数据格式,根据数据组织方式的不同(节点名称不同、节点之间的逻辑关系不同)将XML文件中的数据分为四类数据组,包括:第一类数据组,是整个XML文件的一组说明性元素,该数据组中各叶节点的上级节点为根节点,且其节点下没有子节点,并在整个XML文件中仅出现一次;第二类数据组,在XML文件中最多仅出现一次,在该数据组中枝节点为A的情况下,枝节点A的上级节点为根节点,则枝节点A仅出现一次或不出现,其子节点全部为叶节点;第三类数据组,是在XML文件中具有相同结构,并出现两次以上的数据组,在该数据组中枝节点为B1的情况下,枝节点B1的上级节点为根节点,枝节点B1仅出现一次或不出现,其子节点为可出现两次以上的枝节点B2,则枝节点B2的子节点全部为叶节点;第四类数据组,是在XML文件中具有相同结构,并出现两次以上的数据组,在该数据组中枝节点为C的情况下,枝节点C的上级节点为根节点,枝节点C中不包含枝节点和叶节点,枝节点C允许出现两次以上或不出现,枝节点C包含两个以上的属性;上述四类数据模式中各节点的根节点和各枝节点名称不重复。除第一类外,其他三类通过变更改变节点名称,可在同一个数据文件中包含多组数据且不影响程序识别,因此可以用此方法扩充数据交互接口。步骤1-2,将四类数据组定义为四类数据模式,并通过配置文件具体描述每类数据模式,每一数据模式包含节点路径名,对应的数据库用户名、密码、表名、数据库主键、数据库唯一键、数据库操作策略以及每一数据项对应的数据库字段名、字段类型和字段长度,用来支持对XML文件内容的识别。本专利技术步骤2包括如下步骤:步骤2-1,以每一字段的最大长度作为元素长度(一般设为4000字节,因ORACLE支持最大字段为4000字节),以数据模式配置文件中的数据模式可包含的数据项最大数为元素个数(一般指定为64),定义二维数组;步骤2-2,读取步骤1-2生成的数据模式配置文件,在内存中形成数据模式结构树;步骤2-3,读取XML文件,在内存中形成XML结构树;步骤2-4,将步骤2-3生成的XML结构树中每一节点名称和到根节点的完整路径与按照步骤2-2生成的数据模式结构树中的所有数据模式进行匹配,找出与模式匹配的XML结构树中的数据组。如果有匹配的数据模式,执行步骤2-5;如果没有匹配的数据模式则结束解析。步骤2-5,利用步骤2-1定义的二维数组动态申请内存,并用0初始化内存,用来存储从XML文件中解析的数据结果。如果已存在相同数据模式的解析数据则将申请的内存附在上一组数据后面,形成数据链表;如果不存在,则作为链表的头节点。步骤2-6,将步骤2-4中找出的XML结构树中的数据组中每一叶节点名称与相匹配的数据模式中的每一数据项名称进行对比,如果名称匹配,将字符串数据值按照数据模式中数据项顺序存储在步骤2-5生成的二维数组中;如果找不到匹配项则丢弃该数据值。循环比对直至XML结构树中的数据组无数据项,跳转到步骤2-4。步骤3包括如下步骤:步骤3-1,循环检查步骤2-6生成的解析结果数据与对应的数据模式,判断数据模式是否需要删除已有数据。如果需要删除已有数据,从步骤2-6生成的数据链表中找出删除操作对应的数据值,剔除重复项,作为SQL删除(DELETE)语句的条件语句;如果不需要删除已有数据,直接执行步骤3-2;步骤3-2,判断对应的数据模式是否配置了唯一键。如果配置了唯一键,从步骤2-6生成的解析结果数据中找出唯一键对应的数据值并转换为SQL查询语句,查询是否存在唯一键冲突数据,如果唯一键冲突,按照唯一键作为条件语句生成SQL的更新(UPDATE)语句,执行数据更新操作,如果唯一键不冲突,执行步骤3-3;如果未配置唯一键,直接执行步骤3-3;步骤3-3,判断解析结果数据对应的数据模式是否配置了主键,如果配置了主键,从步骤2-6生成的解析结果数据中找出对应的数据值并转换为SQL查询语句,查询是否存在主键冲突数据,如果存在主键冲突,按照主键作为条件语句生成SQL的更新(UPDATE)语句,执行数据更新操作;如果主键不冲突,生成SQL的插入(INSERT)语句插入数据;如果未配置主键,生成SQL的插入(INSERT)语句插入数据。步骤3-4,如果存在没有处理的解析结果数据,跳转到步骤3-1;否则结束处理。有本文档来自技高网
...

【技术保护点】
模式匹配的XML文件格式与关系数据库转换的处理方法,其特征在于,包括以下步骤:步骤1,通过分析XML文件格式,根据数据组织方式的不同将XML文件中的数据分为四类数据组,根据XML文件的节点名称及数据组织方式,将其描述为四类数据模式,并储存在模式配置文件中;步骤2,读取并解析XML文件,将其与数据模式配置文件中的数据模式进行匹配,形成与数据模式中数据项一一对应的内存数据;步骤3,根据内存数据与数据模式中数据项的对应关系,将内存数据与对应数据库字段一一对应,组装成SQL语句,完成对数据库的操作,实现XML文件与关系数据库的转换。

【技术特征摘要】
1.模式匹配的XML文件格式与关系数据库转换的处理方法,其特征在于,包括以下步骤:步骤1,通过分析XML文件格式,根据数据组织方式的不同将XML文件中的数据分为四类数据组,根据XML文件的节点名称及数据组织方式,将其描述为四类数据模式,并储存在模式配置文件中;步骤2,读取并解析XML文件,将其与数据模式配置文件中的数据模式进行匹配,形成与数据模式中数据项一一对应的内存数据;步骤3,根据内存数据与数据模式中数据项的对应关系,将内存数据与对应数据库字段一一对应,组装成SQL语句,完成对数据库的操作,实现XML文件与关系数据库的转换。2.根据权利要求1所述的方法,其特征在于,步骤1包括如下步骤:步骤1-1,分析XML文件的数据格式,根据数据组织方式的不同将XML文件中的数据分为四类数据组,包括:第一类数据组,是整个XML文件的一组说明性元素,该数据组中各叶节点的上级节点为根节点,且其节点下没有子节点,并在整个XML文件中仅出现一次;第二类数据组,在XML文件中最多仅出现一次,在该数据组中枝节点为A的情况下,枝节点A的上级节点为根节点,则枝节点A仅出现一次或不出现,其子节点全部为叶节点;第三类数据组,是在XML文件中具有相同结构,并出现两次以上的数据组,在该数据组中枝节点为B1的情况下,枝节点B1的上级节点为根节点,枝节点B1仅出现一次或不出现,其子节点为可出现两次以上的枝节点B2,则枝节点B2的子节点全部为叶节点;第四类数据组,是在XML文件中具有相同结构,并出现两次以上的数据组,在该数据组中枝节点为C的情况下,枝节点C的上级节点为根节点,枝节点C中不包含枝节点和叶节点,枝节点C允许出现两次以上或不出现,枝节点C包含两个以上的属性;上述四类数据组中各节点的根节点和各枝节点名称不重复;步骤1-2,将四类数据组定义为四类数据模式,并通过配置文件具体描述每类数据模式,每一数据模式包含节点路径名,对应的数据库用户名、密码、表名、数据库主键、数据库唯一键、数据库操作策略以及每一数据项对应的数据库字段名、字段类型和字段长度。3.根据权利要求2所述的方法,其特征在于,步骤2包括如下步骤:步骤2-1,以每一字段的最大长度作为元素长度,以数据模式配置文件中的数据模式可包含的数据项最大数为元素个数,定义二维数组;步骤2-2,读取步骤1-2生成的数据模式配置文件,在内存中形成数据模式结构树...

【专利技术属性】
技术研发人员:田振兴史慕志法晓宇滕达
申请(专利权)人:中国电子科技集团公司第二十八研究所
类型:发明
国别省市:江苏;32

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

1