XML报文重组方法及装置与流程

文档序号:25723297发布日期:2021-07-02 21:08阅读:201来源:国知局
XML报文重组方法及装置与流程

本发明涉及计算机技术领域,尤其是计算机技术在金融行业中应用,具体涉及一种xml报文重组方法及装置。



背景技术:

现有技术中,在支付清算领域,机构之间进行信息交换的报文有较大比例采用xml格式进行描述。xml报文元素类型复杂,规范类型多样化,如何在支付清算系统中对xml报文进行合法性检测,是所有支付清算机构必须面对的技术问题。现行的支付系统xml报文检测方法有:

方法一、使用每个报文对应的schema文件进行比对检测。schema文件中包含了对应报文的各个字段的语法要求,但并不包含各个字段的语义要求。这种检测方法,仅涉及报文语法检测(即格式检测),未涉及报文语义检测(即业务检测)。

方法二、使用定义固定元素类型的配置文件实现自动比对检测。这种检测方法的元素类型固定且分散,一旦报文标准发生变化即需要重新定义配置文件。同时,这种检测方法同样仅涉及报文语法检测(即格式检测),未涉及报文语义检测(即业务检测)。

方法三、为了应对方法一、方法二不能检测语义的缺陷,在研发过程中测试人员为了确保报文格式、业务数据符合报文标准,往往采用人工检测的方法,对报文结构与业务逻辑进行检查。人工检测不仅检测效率低,并且由于报文格式标准经常变化,检测过程中的出错率非常高。

综上所述,如何将xml报文进行重组,以进行更快、更准的进行合法性检测是亟需解决的问题。



技术实现要素:

针对现有技术中的问题,本发明解决了现有技术中,xml报文检测方法只能检测报文语法(即报文格式),不能检测报文语义(即报文业务逻辑)的问题,实现xml报文语法、语义同时检测。

为解决上述技术问题,本发明提供以下技术方案:

第一方面,本发明提供一种xml报文重组方法,包括:

根据目标系统中的xml报文对应的公用语法库生成所述xml报文的正则表达式库;

解析待测试xml报文;

根据所述公用语法库生成解析后xml报文的正则表达式;

根据所述正则表达式重组所述待测试xml报文。

一实施例中,xml报文重组方法还包括:

根据目标系统中xml报文的数据类型建立所述xml报文的公用语法库;

根据所述xml报文中语义字段生成所述公共语义库。

一实施例中,所述解析待测试xml报文包括:

根据所述xml报文中语义字段生成公共语义库;

根据所述公共语义库解析所述待测试xml报文。

一实施例中,所述根据所述公用语法库生成解析后xml报文的正则表达式包括:

当公共语义库包括解析后的待测试xml报文的语义结构时,根据所述公用语法库生成所述正则表达式;

当公共语义库不包括解析后的待测试xml报文的语义结构时,确定所述解析后xml报文中的具有逻辑关系的报文要素,以及

根据所述报文要素生成所述正则表达式。

一实施例中,在所述根据所述正则表达式重组所述待测试xml报文之后,还包括:

对重组后的所述待测试xml报文进行检测,以生成检测结果。

第二方面,本发明提供一种xml报文重组装置,该装置包括:

正则表达式库生成单元,用于根据目标系统中的xml报文对应的公用语法库生成所述xml报文的正则表达式库;

报文解析单元,用于解析待测试xml报文;

正则表达式生成单元,用于根据所述公用语法库生成解析后xml报文的正则表达式;

报文重组单元,用于根据所述正则表达式重组所述待测试xml报文。

一实施例中,xml报文重组装置还包括:

语法库生成单元,用于根据目标系统中xml报文的数据类型建立所述xml报文的公用语法库;

语义库生成单元,用于根据所述xml报文中语义字段生成所述公共语义库;

报文检测单元,用于对重组后的所述待测试xml报文进行检测,以生成检测结果。

一实施例中,所述报文解析单元包括:

语义库生成模块,用于根据所述xml报文中语义字段生成公共语义库;

报文解析模块,用于根据所述公共语义库解析所述待测试xml报文;

所述正则表达式生成单元包括:

表达式生成第一模块,用于当公共语义库包括解析后的待测试xml报文的语义结构时,根据所述公用语法库生成所述正则表达式;

表达式生成第二模块,用于当公共语义库不包括解析后的待测试xml报文的语义结构时,确定所述解析后xml报文中的具有逻辑关系的报文要素,以及

根据所述报文要素生成所述正则表达式。

第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现xml报文重组方法的步骤。

第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现xml报文重组方法的步骤。

从上述描述可知,本发明实施例提供xml报文重组方法及装置,首先根据目标系统中的xml报文对应的公用语法库生成xml报文的正则表达式库;解析待测试xml报文;接着,根据公用语法库生成解析后xml报文的正则表达式;最后根据正则表达式重组待测试xml报文。本发明可实现了支付系统xml格式报文的格式合法性及业务逻辑的校验。可提高扩展性和工作效率,降低数据冗余。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的实施例中的xml报文重组方法的流程示意图一;

图2为本发明的实施例中的xml报文重组方法的流程示意图二;

图3为本发明的实施例中的xml报文重组方法步骤200的流程示意图;

图4为本发明的实施例中的xml报文重组方法步骤300的流程示意图;

图5为本发明的实施例中的xml报文重组方法的流程示意图三;

图6为本发明的具体应用实例中生成公用正则表达式库方法的流程示意图;

图7为本发明的具体应用实例中构建公用语义库结构方法的流程示意图;

图8为本发明的具体应用实例中xml报文的校验方法的流程示意图;

图9为本发明的实施例中的xml报文重组装置的结构示意图一;

图10为本发明的实施例中的xml报文重组装置的结构示意图二;

图11为本发明的实施例中的xml报文重组装置中报文解析单元20结构示意图;

图12为本发明的实施例中的xml报文重组装置中正则表达式生成单元30结构示意图;

图13为本发明的实施例中的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的实施例提供了一种xml报文重组方法的具体实施方式,参见图1,该方法具体包括如下内容:

步骤100:根据目标系统中的xml报文对应的公用语法库生成所述xml报文的正则表达式库。

具体地,枚举目标中xml报文标准中所有数据类型,定义出各种标准的数据类型(如:定长/变长文本、数字、日期、金额、数量、固定值域等)的公用语法库(即格式要求)。接着,为上述各种数据类型的公用语法要求配置对应的正则表达式,形成正则表达式库。

例如:报文要素1的数据格式要求为变长文本、最大15个字符;报文要素2的数据格式要求为变长文本、最大20个字符,则这类变长文本的公用语法要求可表达为“maxntext”。

所有公用语法要求表达式共同构成公用语法库。公用语法库可包括“maxntext”、“maxnnumerictext”、“exactntext”、“exactnnumerictext”、“isodatetime”“activecurrencyandamount”、“amounttext”等各类表达式。

步骤200:解析待测试xml报文。

优选地,将待测试xml报文解析为以下格式:{“报文要素”、“xml路径”、“属性(出现次数)”、“数据类型”、“逻辑说明”}。

步骤300:根据所述公用语法库生成解析后xml报文的正则表达式。

具体地,根据xml报文标准中所有数据类型,基于公用语法库,生成该类型的私有正则表达式。

步骤400:根据所述正则表达式重组所述待测试xml报文。

同样地,依据{“报文要素”、“xml路径”、“属性(出现次数)”、“数据类型”、“逻辑说明”}格式将待测试xml报文进行重组。

从上述描述可知,本发明实施例提供xml报文重组方法,首先根据目标系统中的xml报文对应的公用语法库生成xml报文的正则表达式库;解析待测试xml报文;接着,根据公用语法库生成解析后xml报文的正则表达式;最后根据正则表达式重组待测试xml报文。本发明解决了当前xml报文检测方法只能检测报文语法(即报文格式),不能检测报文语义(即报文业务逻辑)的问题,实现xml报文语法、语义同时检测,并且采用预设通用规则自动生成一套报文标准当中每个报文对应的检测规则(即用来检测报文的正则表达式以及业务逻辑规则适配方法)。

一实施例中,参见图2,xml报文重组方法还包括:

步骤500:根据目标系统中xml报文的数据类型建立所述xml报文的公用语法库;

步骤600:根据所述xml报文中语义字段生成所述公共语义库。

具体地,枚举目标系统xml报文标准中所有具有语义约束的字段,并定义公用语义库,公用语义库包含:固定语义库,如“禁止中文”、“禁止数字”、“禁止字母”、“固定填写[a]”、“固定值域{a1,a2,a3}”等。逻辑语义库。报文要素间有逻辑关系的业务约束,例如:

报文要素1的业务逻辑描述为“同[报文要素2]”(元素值等于另元素值)。定义格式为equ:[{路径1:路径2}](路径为报文要素所在路径主键);

报文要素1的业务逻辑描述为“当[报文要素2]等于[a1]时,则[报文要素1]的类型为[t1]/属性为[n..m]”。定义格式为ifcon:[{路径2:[{value:a1}]},{路径1:[{type:n..m},{tag:t1}]}]。

一实施例中,参见图3,步骤200进一步包括:

步骤201:根据所述xml报文中语义字段生成公共语义库;

步骤202:根据所述公共语义库解析所述待测试xml报文。

在步骤201以及步骤202中,依次将目标系统中每个报文要素形成如{“报文要素”、“xml路径”、“属性(出现次数)”、“正则表达式”、“语义结构”}的结构。其“语义结构”是报文间的逻辑业务约束定义,接着,根据报文要素间有逻辑关系的业务约束进行检测,并更新{“报文要素”、“xml路径”、“属性(出现次数)”、“正则表达式”、“语义结构”}相关的属性、正则表达式。以此检测解析后的xml报文的语法和语义是否符合报文标准。

一实施例中,参见图4,步骤300进一步包括:

步骤301:当公共语义库包括解析后的待测试xml报文的语义结构时,根据所述公用语法库生成所述正则表达式;

若逻辑说明包含“固定语义库”,则生成新的正则表达式。

步骤302:当公共语义库不包括解析后的待测试xml报文的语义结构时,确定所述解析后xml报文中的具有逻辑关系的报文要素,以及根据所述报文要素生成所述正则表达式。

若公共语义库不包括解析后的待测试xml报文的语义结构时,即逻辑说明包含“逻辑语义库”,则生成对应的逻辑语义结构,进而根据该逻辑语义结构生成正则表达式。

一实施例中,参见图5,xml报文重组方法还包括:

步骤700:对重组后的所述待测试xml报文进行检测,以生成检测结果。

具体地,将一个xml报文的所有报文元素的检测结果进行汇总,形成该xml报文的检测结果。

为进一步地说明本方案,本发明以支付系统为例,提供xml报文重组方法的具体应用实例,该具体应用实例具体包括如下内容。

由于支付系统xml报文标准中数据类型诸多,并存在报文间逻辑语义关系。结合图6所示,形成公用正则表达式库的步骤包括:

s101:定义各种标准数据类型,形成公用语法库。

分析归纳格式要求的各种标准数据类型,形成公用语法库。如报文数据类型为max10text、max25text等,语法库归类为maxntext,表示最少1,最多n位的字符串。公用语法库还包括“maxntext”、“maxnnumerictext”、“exactntext”、“exactnnumerictext”、“isodatetime”“activecurrencyandamount”、“amounttext”等。

进一步地,枚举支付系统xml报文标准中所有数据类型,定义各种标准数据类型(如:定长/变长文本、数字、日期、金额、数量、固定值域等)的公用语法库(即格式要求)。例如:报文要素1的数据格式要求为变长文本、最大15个字符;报文要素2的数据格式要求为变长文本、最大20个字符,则这类变长文本的公用语法要求可表达为“maxntext”。所有公用语法要求表达式共同构成公用语法库。公用语法库可包括“maxntext”、“maxnnumerictext”、“exactntext”、“exactnnumerictext”、“isodatetime”“activecurrencyandamount”、“amounttext”等各类表达式。

s102:为语法库类型配置对应的正则表达式

可以理解的是,该表达式是所属类型的通用语法规则。部分举例说明如表1所示:

表1

结合图7所示,构建公用语义库结构的步骤:

s201,组织语义库。

其中分成:1)固定语义:表示自身的数据约束;2)逻辑语义:表示报文要素间有逻辑关系的业务约束。

s202,将所有固定语义配置其对应的正则式。

本实施例中,部分举例说明,如:“禁止中文”为[^\u4e00-\u9fa5]、“禁止数字”为[^0-9]、“禁止字母”为[^a-za-z]、“固定值”填写[a]、“固定值域”为[a1|a2|a3]等。

s203,配置逻辑语义库数据结构。

例如:

1)报文要素1的业务逻辑描述为“同[报文要素2]”(元素值等于另元素值)。定义格式为equ:[{路径1:路径2}](路径为报文要素所在路径主键);

2)报文要素1的业务逻辑描述为“当[报文要素2]等于[a1]时,则[报文要素1]的类型为[t1]/属性为[n..m]”。定义格式为ifcon:[{路径2:[{value:a1}]},{路径1:[{tag:t1},{type:n..m}]}]

对待检测的标准报文,通过报文结构解析后,定义其数据结构为{“报文要素”、“xml路径”、“属性(出现次数)”、“数据类型”、“逻辑说明”}。

本发明实施例提供的自动检测方法,通过形成公用的报文格式语法库、以及报文业务逻辑语义库,将支付系统xml报文解析并定制其私有校验规则,完成对报文合法性检查。

在一种具体实施例中,xml报文的校验处理如图8所示。

s301,解析报文,每个报文元素,组织元素结构。

s302,根据解析的数据类型,结合公用正则表达式,生成该类型的私有正则表达式。

s303,根据解析的逻辑说明,结合定义的公用语义库,转换成相应的表达式或者逻辑结构。

s304,若逻辑说明包含“固定语义库”,则根据语义库定义的表达式,更新s302的私有正则式。

s305,若逻辑说明包含“逻辑语义库”,则根据语义库定义的结构,对报文间的元素值进行逻辑校验。

例如:1)报文要素1的业务逻辑描述为“同[报文要素2]”,结构为equ:[{路径1:路径2}]。则需获取路径2元素value,更新至路径1的正则表达式(固定值域)。

2)报文要素1的业务逻辑描述为“当[报文要素2]等于[100]时,则[报文要素1]的类型为[max35text]”,定义格式为ifcon:[{路径2:[{value:100}]},{路径1:[{tag:max35text};或者“当[报文要素2]等于[100]时,则[报文要素1]的属性为[1..1]”,定义格式为ifcon:[{路径2:[{value:100}]},{路径1:{type:1..1}]}]。获取报文要素2元素value,若满足条件值为100,则更新s304中正则表达式为max35text。或更新属性为1..1。若不满足条件则不校验。

以此检测xml报文的语法和语义是否符合报文标准。最后将一个xml报文的所有报文元素的检测结果遍历进行汇总,形成该xml报文的检测结果。

从上述描述可知,本发明实施例提供xml报文重组方法,首先根据目标系统中的xml报文对应的公用语法库生成xml报文的正则表达式库;解析待测试xml报文;接着,根据公用语法库生成解析后xml报文的正则表达式;最后根据正则表达式重组待测试xml报文。本发明可实现支付系统xml格式报文的格式合法性及业务逻辑的校验。可提高扩展性和工作效率,降低数据冗余。

基于同一发明构思,本申请实施例还提供了xml报文重组装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于xml报文重组装置解决问题的原理与xml报文重组方法相似,因此xml报文重组装置的实施可以参见xml报文重组方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

本发明的实施例提供一种能够实现xml报文重组方法的xml报文重组装置的具体实施方式,参见图9,xml报文重组装置具体包括如下内容:

正则表达式库生成单元10,用于根据目标系统中的xml报文对应的公用语法库生成所述xml报文的正则表达式库;

报文解析单元20,用于解析待测试xml报文;

正则表达式生成单元30,用于根据所述公用语法库生成解析后xml报文的正则表达式;

报文重组单元40,用于根据所述正则表达式重组所述待测试xml报文。

一实施例中,参见图10,xml报文重组装置还包括:

语法库生成单元50,用于根据目标系统中xml报文的数据类型建立所述xml报文的公用语法库;

语义库生成单元60,用于根据所述xml报文中语义字段生成所述公共语义库;

报文检测单元70,用于对重组后的所述待测试xml报文进行检测,以生成检测结果。

一实施例中,参见图11,所述报文解析单元20包括:

语义库生成模块201,用于根据所述xml报文中语义字段生成公共语义库;

报文解析模块202,用于根据所述公共语义库解析所述待测试xml报文;

一实施例中,参见图12,所述正则表达式生成单元30包括:

表达式生成第一模块301,用于当公共语义库包括解析后的待测试xml报文的语义结构时,根据所述公用语法库生成所述正则表达式;

表达式生成第二模块302,用于当公共语义库不包括解析后的待测试xml报文的语义结构时,确定所述解析后xml报文中的具有逻辑关系的报文要素,以及

根据所述报文要素生成所述正则表达式。

从上述描述可知,本发明实施例提供xml报文重组装置,首先根据目标系统中的xml报文对应的公用语法库生成xml报文的正则表达式库;解析待测试xml报文;接着,根据公用语法库生成解析后xml报文的正则表达式;最后根据正则表达式重组待测试xml报文。本发明可实现了支付系统xml格式报文的格式合法性及业务逻辑的校验。可提高扩展性和工作效率,降低数据冗余。

本申请的实施例还提供能够实现上述实施例中的xml报文重组方法中全部步骤的一种电子设备的具体实施方式,参见图13,电子设备具体包括如下内容:

处理器(processor)1201、存储器(memory)1202、通信接口(communicationsinterface)1203和总线1204;

其中,处理器1201、存储器1202、通信接口1203通过总线1204完成相互间的通信;通信接口1203用于实现服务器端设备、获取设备以及用户端设备等相关设备之间的信息传输。

处理器1201用于调用存储器1202中的计算机程序,处理器执行计算机程序时实现上述实施例中的xml报文重组方法中的全部步骤,例如,处理器执行计算机程序时实现下述步骤:

步骤100:根据目标系统中的xml报文对应的公用语法库生成所述xml报文的正则表达式库;

步骤200:解析待测试xml报文;

步骤300:根据所述公用语法库生成解析后xml报文的正则表达式;

步骤400:根据所述正则表达式重组所述待测试xml报文。

本申请的实施例还提供能够实现上述实施例中的xml报文重组方法中全部步骤的一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的xml报文重组方法的全部步骤,例如,处理器执行计算机程序时实现下述步骤:

步骤100:根据目标系统中的xml报文对应的公用语法库生成所述xml报文的正则表达式库;

步骤200:解析待测试xml报文;

步骤300:根据所述公用语法库生成解析后xml报文的正则表达式;

步骤400:根据所述正则表达式重组所述待测试xml报文。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1