一种基于xsd结构的通用数据交换方法

文档序号:6378858阅读:575来源:国知局
专利名称:一种基于xsd结构的通用数据交换方法
技术领域
本发明涉及以一种数据交换方法,尤其涉及一种基于XSD规范的XML数据交换平台,以某个业务数据为单元,来满足行业数据的交换以及集中需求。
背景技术
由于各行业内使用的业务系统不统一,为数据的统一和交换造成了壁垒,而数据分析又需要将数据统一后加工处理,所以数据交换就孕育而生,现行通用的数据交换基本都基于XML结构文档。而XSD作为描述XML (Extensible Markup Language可扩展标记语言)结构的描述文档,作为交换的规范,实现各家软件开发商的数据能够满足行业的规范。考虑到数据交换的多样性以及变化性,本发明以分层模型方式处理XSD结构文档,以及扩展满足交换的需求。

发明内容
所要解决的技术问题针对以上问题本发明提供为了一种实用性和通用性强的基于XSD结构的通用数据交换方法。技术方案为了解决以上问题本发明提供了一种基于XSD结构的通用数据交换方法,其特征在于包括以下步骤
第一步、XSD解析管理器预处理XSD“XML Schemas Definition,描述XML文档结构”文档,解析并建立XSD模型库;
第二步、实体管理器定义和管理实体“业务的结构、关系”的数据库模型,包括表、字段、主键、外键等信息,以及管理与XSD绑定映射,为数据交换提供依据;
第三步、交换出库器将存储在数据库中的业务数据生成满足XSD文档要求的XML文
档;
第四步、交换入库器将交换满足XSD文档要求的XML文档数据存储到数据库中。所述的第一步包括
①读取一组具有业务关系”层次关系或者依赖关系”的XSD文档到解析器的文件缓存区内;
②使用DOM“Document Object Model文档对象模型”解析器将这组XSD文档的层次和依赖关系解析存储到数据库;
③依次将所有的XSD文档的结构中的元素、属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或者属性的默认和固定值定义解析存储到数据库;
④根据步骤②和③解析存储的数据库信息内容,迭代计算将元素、子元素分解则最小数据类型“基本数据类型字节、数值、字符、字符串”;
⑤将前4步的所存储在数据库的数据进行必要的维护、建立XSD模型库。所述的第二步包括①根据业务结构信息在数据库中建立实体模型信息,将业务结构抽象实体模型管
理;
实体模型包括业务元素层次关系“主从关系”、依赖关系“外键关系”、以及主键、字段信
息;
②对解析XSD文档模型中的元素和实体模型的元素进行映射管理;映射后业务数据库和XSD数据交换文档之间就建立关系,在数据交换中就可自动的找到相应的内容并且自动的输入输出。所述第三步包括
①按照实体模型中对应的业务的主键信息以及主从关系,确定交换的业务数据范围, 然后从数据库中将主业务“基本信息,从该信息可以获取所有子信息”信息读取到交换器缓冲区内;
②根据实体模型生成对应的数据检索脚本;
③找到与实体模型对应的XSD模型,将映射关系读取后记载到缓存表内;
④逐行遍历缓存区内的业务信息记录,然后根据②生成的检索脚本将数据检索出来后存储到高速缓存中,按照步骤③的映射关系遍历XSD文档模型,将高速缓存中存储的数据合并输出到XML文档;
⑤校验输出XML文档是否满足XSD格式要求,如满足则输出文档,否则删除该文档。所述第四步包括
①根据交换的需求,找到实体模型中对应的业务模型“具体的实体定义”;
②根据实体模型与XSD模型的关系,找出对应的XSD文档“需要按步骤I预处理解析的XSD文档”,进行数据规则、内容的完整性校验;如果校验成功则执行步骤③,否则结束任务;
③根据实体模型和XSD模型的映射关系“步骤2中定义的映射关系”,生成数据库的执行脚本;生成脚本按照实体模型库中数据库表字段的粘合度“按同表的数据字段合并为一条脚本的方式,减少脚本的执行数量”优化生成;
④建立数据交换入库线程池以及N,N>I个交换前置库“工作线程数量等于前置库的数量”;线程调度轮序算法”依次为线程分配一个文档处理任务,循环多次直到任务分配结束”自动分配任务给工作线程;线程根据XSD模型中的定义信息,通过DOM解析器遍历XML文档的元素和属性,将获取的数据“键值”存储到高速缓存中,然后按照③生成的数据库脚本合并产生最终可执行的脚本,提交给前置数据库进行执行;
⑤等所有的线程任务完成后,使用数据库管道技术“关系数据库自带的数据传输技术”,将N前置库的数据同步到目标数据库,然后清除前置库的临时数据,完成一次数据交换。有益效果本发明的实用性和通用性强。


图I为XSD解析器示意 图2为业务库结构意 图3为XSD与实体映射生成脚本示意图;图4为交换出库器意 图5为交换入库器意图。
具体实施例方式下面结合附图对本发明作进一步的描述。一种基于XSD结构的通用数据交换方法,包括以下步骤
第一步、XSD解析管理器如图I所不,预处理XSD (XML Schemas Definition,描述XML 文档结构)文档,解析并建立XSD模型库。①读取一组具有业务关系(层次关系或者依赖关系)的XSD文档(例如文档I描述了某业务的概括性的信息,其中某个集合或者元素的详细结构内容在文档2中做出详细解释)到解析器的文件缓存区内。②使用DOM(Document Object Model文档对象模型)解析器将这组XSD文档的层次和依赖关系解析存储到数据库。③依次将所有的XSD文档的结构中的元素、属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或者属性的默认和固定值等定义解析存储到数据库。④根据步骤②和③解析存储的数据库信息内容,迭代计算将元素、子元素分解则最小数据类型(基本数据类型字节、数值、字符、字符串等)。⑤将前4步的所存储在数据库的数据进行必要的维护、建立XSD模型库。考虑到前4步有计算机自动完成,可能存在一些误差,XSD模型库通过XDS管理程序可以修正、变更。第二步、实体管理器定义和管理实体(业务的结构、关系)的数据库模型,包括表、字段、主键、外键等信息,以及管理与XSD绑定映射,为数据交换提供依据。①根据业务结构信息(例如图2,数据库结构)在数据库中建立实体模型信息,将业务结构抽象实体模型管理。实体模型包括业务元素层次关系(主从关系)、依赖关系(外键关系)、以及主键、字段等信息。②对解析XSD文档模型中的元素和实体模型的元素进行映射管理。映射后业务数据库和XSD数据交换文档之间就建立关系,在数据交换中就可以自动的找到相应的内容并且自动的输入输出。第三步、交换出库器如图4所示,将存储在数据库中的业务数据生成满足XSD文档要求的XML文档。①按照实体模型中对应的业务的主键信息以及主从关系,确定交换的业务数据范围,然后从数据库中将主业务(基本信息,从该信息可以获取所有子信息如图2中的[主表])信息读取到交换器缓冲区内。②根据实体模型生成对应的数据检索脚本(如图3)。③找到与实体模型对应的XSD模型,将映射关系读取后记载到缓存表内。④逐行遍历缓存区内的业务信息记录,然后根据②生成的检索脚本将数据检索出来后存储到高速缓存中,按照步骤③的映射关系遍历XSD文档模型,将高速缓存中内存储的数据合并输出到XML文档。
⑤校验输出XML文档是否满足XSD格式要求,如满足则输出文档,否则删除该文档。
第四步、交换入库器如图5所示,将交换满足XSD文档要求的XML文档数据存储到数据库中。①根据交换的需求,找到实体模型中对应的业务模型(具体的实体定义)。②根据实体模型与XSD模型的关系,找出对应的XSD文档(需要按步骤I预处理解析的XSD文档),进行数据规则、内容的完整性校验。如果校验成功则执行步骤③,否则结束任务。③根据实体模型和XSD模型的映射关系(步骤2中定义的映射关系),生成数据库 的执行脚本。生成脚本按照实体模型库中数据库表字段的粘合度(按同表的数据字段合并为一条脚本的方式,减少脚本的执行数量)优化生成(如图3)。④建立数据交换入库线程池以及N (N ^ I)个交换前置库(工作线程数量同N前置库的数量)。线程调度轮序算法(依次为线程分配一个文档处理任务,循环多次直到任务分配结束)自动分配任务给工作线程。线程根据XSD模型中的定义信息,通过DOM解析器遍历XML文档的元素和属性,将获取的数据(键值)存储到高速缓存中,然后按照③生成的数据库脚本合并产生最终可执行的脚本,提交给前置数据库进行执行。使用前置库主要是解决数据库层面的锁和并发的问题,考虑到业务结构以及数据量较大时事务执行时间较长,将严重影响解析入库速度,通过前置数据库以及线程池可能大大提高解析入库效率。⑤等所有的线程任务完成后,使用数据库管道技术(关系数据库自带的数据传输技术),将N前置库的数据同步到目标数据库,然后清除前置库的临时数据,完成一次数据交换。此数据一般并非简单的将表数据的拷贝或者分发,本发明是基于具体业务结构,满足交换的通用的性、灵活性的前提下,保证了业务数据的完整性。以上所述仅为本发明的优选实施例而已,并不限制于本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
权利要求
1.一种基于XSD结构的通用数据交换方法,其特征在于包括以下步骤第一步、XSD解析管理器预处理XSD“XML Schemas Definition,描述XML文档结构” 文档,解析并建立XSD模型库;第二步、实体管理器定义和管理实体“业务的结构、关系”的数据库模型,包括表、字段、主键、外键等信息,以及管理与XSD绑定映射,为数据交换提供依据;第三步、交换出库器将存储在数据库中的业务数据生成满足XSD文档要求的XML文档;第四步、交换入库器将交换满足XSD文档要求的XML文档数据存储到数据库中。
2.根据权利要求I所述的一种基于XSD结构的通用数据交换方法,其特征在于所述的第一步包括①读取一组具有业务关系”层次关系或者依赖关系”的XSD文档到解析器的文件缓存区内;②使用DOM“Document Object Model文档对象模型”解析器将这组XSD文档的层次和依赖关系解析存储到数据库;③依次将所有的XSD文档的结构中的元素、属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或者属性的默认和固定值定义解析存储到数据库;④根据步骤②和③解析存储的数据库信息内容,迭代计算将元素、子元素分解则最小数据类型“基本数据类型字节、数值、字符、字符串”;⑤将前4步的所存储在数据库的数据进行必要的维护、建立XSD模型库。
3.根据权利要求I所述的一种基于XSD结构的通用数据交换方法,其特征在于所述的第二步包括①根据业务结构信息在数据库中建立实体模型信息,将业务结构抽象实体模型管理;实体模型包括业务元素层次关系“主从关系”、依赖关系“外键关系”、以及主键、字段信②对解析XSD文档模型中的元素和实体模型的元素进行映射管理;映射后业务数据库和XSD数据交换文档之间就建立关系,在数据交换中就可自动的找到相应的内容并且自动的输入输出。
4.根据权利要求I所述的一种基于XSD结构的通用数据交换方法,其特征在于所述第三步包括①按照实体模型中对应的业务的主键信息以及主从关系,确定交换的业务数据范围, 然后从数据库中将主业务“基本信息,从该信息可以获取所有子信息”信息读取到交换器缓冲区内;②根据实体模型生成对应的数据检索脚本;③找到与实体模型对应的XSD模型,将映射关系读取后记载到缓存表内;④逐行遍历缓存区内的业务信息记录,然后根据②生成的检索脚本将数据检索出来后存储到高速缓存中,按照步骤③的映射关系遍历XSD文档模型,将高速缓存中存储的数据合并输出到XML文档;⑤校验输出XML文档是否满足XSD格式要求,如满足则输出文档,否则删除该文档。
5.根据权利要求I所述的一种基于XSD结构的通用数据交换方法,其特征在于所述第四步包括①根据交换的需求,找到实体模型中对应的业务模型“具体的实体定义”;②根据实体模型与XSD模型的关系,找出对应的XSD文档“需要按步骤I预处理解析的XSD文档”,进行数据规则、内容的完整性校验;如果校验成功则执行步骤③,否则结束任务;③根据实体模型和XSD模型的映射关系“步骤2中定义的映射关系”,生成数据库的执行脚本;生成脚本按照实体模型库中数据库表字段的粘合度“按同表的数据字段合并为一条脚本的方式,减少脚本的执行数量”优化生成;④建立数据交换入库线程池以及N,N>I个交换前置库“工作线程数量等于前置库的数量”;线程调度轮序算法”依次为线程分配一个文档处理任务,循环多次直到任务分配结束”自动分配任务给工作线程;线程根据XSD模型中的定义信息,通过DOM解析器遍历XML 文档的元素和属性,将获取的数据“键值”存储到高速缓存中,然后按照③生成的数据库脚本合并产生最终可执行的脚本,提交给前置数据库进行执行;⑤等所有的线程任务完成后,使用数据库管道技术“关系数据库自带的数据传输技术”,将N前置库的数据同步到目标数据库,然后清除前置库的临时数据,完成一次数据交换。
全文摘要
本发明涉及一种基于XSD结构的通用数据交换方法,包括第一步、XSD解析管理器预处理XSD“XMLSchemasDefinition,描述XML文档结构”文档,解析并建立XSD模型库;第二步、实体管理器定义和管理实体“业务的结构、关系”的数据库模型,包括表、字段、主键、外键等信息,以及管理与XSD绑定映射,为数据交换提供依据;第三步、交换出库器将存储在数据库中的业务数据生成满足XSD文档要求的XML文档;第四步、交换入库器将交换满足XSD文档要求的XML文档数据存储到数据库中。本发明的实用性和通用性强。
文档编号G06F17/30GK102929664SQ201210391159
公开日2013年2月13日 申请日期2012年10月16日 优先权日2012年10月16日
发明者施健伟 申请人:南京通达海信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1