一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

报文转换代码的生成方法、相关装置及计算机存储介质与流程

2022-11-28 09:59:43 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别涉及一种报文转换代码的生成方法、相关装置及计算机存储介质。


背景技术:

2.自2012年国际航空运输协会(international air transport association,iata)提出新分销能力(new distribution capability,ndc)以来,受到了行业密切关注。随着互联网的发展,越来越多国家的民航公司开始支持ndc协议,基于ndc协议的新分销系统也逐渐落地,“ndc能力”成为了航空公司合作伙伴的一项重要指标。
3.目前,iata推行ndc策略是与全球分销系统(global distribution system,gds)合作,目的是使gds成为了ndc架构下的aggregator(内容集成商)角色。当客户端请求gds查询机票信息时,aggregator肯定要向其他内容供应商(航空公司或其他gds)发起对应的报价(offer,航空公司的机票报价产品,可以包括机票、各种附加服务等多种服务报价打包的结果)请求,根据客户提供的信息进行实时搜索和询价,同时还可以选择打包酒店、地接交通、目的地活动等预订服务,然后汇集各航空公司的offer信息,最后呈现给终端客户进行选择。所以,aggregator一定会接收ndc的xml(可扩展标记语言,标准通用标记语言的子集,简称xml。是一种用于标记电子文件使其具有结构性的标记语言。xml被设计用来传输和存储数据)报文,并对返回报文进行解析处理,以完成聚合功能。
4.然而,ndc协议也在持续发展中,其版本每年都在更新,不同的it供应商落地ndc协议时所采用的版本可能有所差异,而这给aggregator带来了一些麻烦。aggregator需要将ndc每个业务接口,实现不同版本的ndc报文适配并转换统一的ndc版本给请求客户端。传统的记录版本差异、转换规则的方法是文字描述,再由开发人员理解确认后,书写代码实现;然而,面对ndc协议中大量的xml节点,复杂的层级关系,以及逻辑转换关系,这样的方式,不易被阅读理解,而且很容易出现节点对应关系错误,丢失,也无形中会增加了很多测试和沟通成本。


技术实现要素:

5.有鉴于此,本技术提供了一种报文转换代码的生成方法、相关装置及计算机存储介质,从而自动生成转换代码,辅助开发工作,又能在开发阶段前的需求确认阶段中,作为ndc接口版本间转换的需求设计工具和团队工作时的需求分析讨论模板,其树形显示xsd结构,可视化双树节点连线功能,直观、精确的展示了同一接口的两个版本间的需求差异点;其保存连线功能,也便于需求的调整,二次开发等等应用场景,为航空公司it供应商们在进行aggregator开发时的提供了技术保障。
6.本技术第一方面提供了一种报文转换代码的生成方法,包括:
7.读取xml模式定义源文件和目标xml模式定义文件;其中,所述xml模式定义源文件和目标xml模式定义文件的内容为文本信息;
8.分别解析xml模式定义源文件和目标xml模式定义文件,得到xml模式定义源文件对象树和目标xml模式定义文件对象树;其中xml模式定义源文件对象树和目标xml模式定义文件对象树的节点对象均包括以下信息节点标识、节点名称、节点类型、数据类型、是否必须标志、节点路径以及子节点对象集合;
9.将xml模式定义源文件对象树和目标xml模式定义文件对象树转化为预设格式;其中,所述预设格式为前端技术可识别的数据格式;
10.根据预设格式的xml模式定义源文件对象树,生成第一超文本标记语言树;
11.根据预设格式的目标xml模式定义文件对象树,生成第二超文本标记语言树;
12.向用户展示所述第一超文本标记语言树以及所述第二超文本标记语言树;
13.接收用户编辑的所述第一超文本标记语言树中的节点和所述第二超文本标记语言树中的节点的映射关系组;其中,映射关系数组为对象数组,映射关系数组中每个元素标识一对连线关系节点;
14.根据所述第一超文本标记语言树中的节点和所述第二超文本标记语言树中的节点的映射关系组,生成报文转换代码。
15.可选的,所述分别解析xml模式定义源文件和目标xml模式定义文件,得到xml模式定义源文件对象树和目标xml模式定义文件对象树,包括:
16.根据所述xml模式定义源文件中的xml代码,按照xml模式定义文件语法规则,采用面向对象的编程语言构建得到xml模式定义源文件对象树;
17.根据所述目标xml模式定义文件中的xml代码,按照xml模式定义文件语法规则,采用面向对象的编程语言构建得到目标xml模式定义文件对象树。
18.可选的,所述报文转换代码的生成方法,还包括:
19.将所述第一超文本标记语言树中的节点和所述第二超文本标记语言树中的节点的映射关系组进行保存,并进行持久化。
20.可选的,所述报文转换代码的生成方法,还包括:
21.接收用户的查询请求;其中,所述查询请求包括目标信息;
22.在已保存的节点映射关系组中进行查询所述目标信息,得到查询结果并向用户进行展示。
23.可选的,所述报文转换代码的生成方法,还包括:
24.接收用户的编辑请求;其中,所述编辑请求包括待编辑信息;
25.根据所述待编辑信息在所述节点映射关系组中进行编辑,并向用户进行展示。
26.本技术第二方面提供了一种报文转换代码的生成装置,包括:
27.读取单元,用于读取xml模式定义源文件和目标xml模式定义文件;其中,所述xml模式定义源文件和目标xml模式定义文件的内容为文本信息;
28.解析单元,用于分别解析xml模式定义源文件和目标xml模式定义文件,得到xml模式定义源文件对象树和目标xml模式定义文件对象树;其中xml模式定义源文件对象树和目标xml模式定义文件对象树的节点对象均包括以下信息节点标识、节点名称、节点类型、数据类型、是否必须标志、节点路径以及子节点对象集合;
29.转化单元,用于将xml模式定义源文件对象树和目标xml模式定义文件对象树转化为预设格式;其中,所述预设格式为前端技术可识别的数据格式;
30.第一生成单元,用于根据预设格式的xml模式定义源文件对象树,生成第一超文本标记语言树;
31.第二生成单元,用于根据预设格式的目标xml模式定义文件对象树,生成第二超文本标记语言树;
32.第一展示单元,用于向用户展示所述第一超文本标记语言树以及所述第二超文本标记语言树;
33.第一接收单元,用于接收用户编辑的所述第一超文本标记语言树中的节点和所述第二超文本标记语言树中的节点的映射关系组;其中,映射关系数组为对象数组,映射关系数组中每个元素标识一对连线关系节点;
34.第三生成单元,用于根据所述第一超文本标记语言树中的节点和所述第二超文本标记语言树中的节点的映射关系组,生成报文转换代码。
35.可选的,所述解析单元,包括:
36.第一解析子单元,用于根据所述xml模式定义源文件中的xml代码,按照xml模式定义文件语法规则,采用面向对象的编程语言构建得到xml模式定义源文件对象树;
37.第二解析子单元,用于根据所述目标xml模式定义文件中的xml代码,按照xml模式定义文件语法规则,采用面向对象的编程语言构建得到目标xml模式定义文件对象树。
38.可选的,报文转换代码的生成装置,还包括:
39.保存单元,用于将所述第一超文本标记语言树中的节点和所述第二超文本标记语言树中的节点的映射关系组进行保存,并进行持久化。
40.可选的,报文转换代码的生成装置,还包括:
41.第二接收单元,用于接收用户的查询请求;其中,所述查询请求包括目标信息;
42.查询单元,用于在已保存的节点映射关系组中进行查询所述目标信息,得到查询结果并向用户进行展示。
43.可选的,报文转换代码的生成装置,还包括:
44.第三接收单元,用于接收用户的编辑请求;其中,所述编辑请求包括待编辑信息;
45.编辑单元,用于根据所述待编辑信息在所述节点映射关系组中进行编辑,并向用户进行展示。
46.本技术第三方面提供了一种电子设备,包括:
47.一个或多个处理器;
48.存储装置,其上存储有一个或多个程序;
49.当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如第一方面任意一项所述的报文转换代码的生成方法。
50.本技术第四方面提供了一种计算机存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如第一方面任意一项所述的报文转换代码的生成方法。
51.由以上方案可知,本技术提供一种报文转换代码的生成方法、相关装置及计算机存储介质,所述报文转换代码的生成方法包括:首先,读取xml模式定义源文件和目标xml模式定义文件;其中,所述xml模式定义源文件和目标xml模式定义文件的内容为文本信息;然后,分别解析xml模式定义源文件和目标xml模式定义文件,得到xml模式定义源文件对象树和目标xml模式定义文件对象树;其中xml模式定义源文件对象树和目标xml模式定义文件
对象树的节点对象均包括以下信息节点标识、节点名称、节点类型、数据类型、是否必须标志、节点路径以及子节点对象集合;再将xml模式定义源文件对象树和目标xml模式定义文件对象树转化为预设格式;根据预设格式的xml模式定义源文件对象树,生成第一超文本标记语言树;根据预设格式的目标xml模式定义文件对象树,生成第二超文本标记语言树;向用户展示所述第一超文本标记语言树以及所述第二超文本标记语言树;接收用户编辑的所述第一超文本标记语言树中的节点和所述第二超文本标记语言树中的节点的映射关系组;其中,映射关系数组为对象数组,映射关系数组中每个元素标识一对连线关系节点;最终,根据所述第一超文本标记语言树中的节点和所述第二超文本标记语言树中的节点的映射关系组,生成报文转换代码。从而达到自动生成转换代码的目的,进而可以辅助开发工作,又能在开发阶段前的需求确认阶段中,作为ndc接口版本间转换的需求设计工具和团队工作时的需求分析讨论模板,其树形显示xsd结构,可视化双树节点连线功能,直观、精确的展示了同一接口的两个版本间的需求差异点;其保存连线功能,也便于需求的调整,二次开发等等应用场景,为航空公司it供应商们在进行aggregator开发时的提供了技术保障。
附图说明
52.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
53.图1为本技术实施例提供的一种报文转换代码的生成方法的具体流程图;
54.图2为本技术另一实施例提供的一种构建对象树的具体流程图;
55.图3为本技术另一实施例提供的一种xml模式定义源文件对象树的示意图;
56.图4为本技术另一实施例提供的一种目标xml模式定义文件对象树的示意图;
57.图5为本技术另一实施例提供的一种通过连线方式连接源报文的html树中的节点与目标报文的html树中的节点的示意图;
58.图6为本技术另一实施例提供的一种报文转换代码的生成装置的示意图;
59.图7为本技术另一实施例提供的一种实现报文转换代码的生成方法的电子设备的示意图。
具体实施方式
60.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
61.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
62.需要注意,本技术中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单
元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
63.需要注意,本技术中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
64.本技术实施例提供了一种报文转换代码的生成方法,如图1所示,具体包括以下步骤:
65.s101、读取xml模式定义源文件和目标xml模式定义文件。
66.其中,xml模式定义源文件和目标xml模式定义文件的内容为文本信息。
67.需要说明的是,xml模式定义文件(xml schema definition,xsd)是定义一份xml文档的合法组件群,用于描述xml文档的结构。作用与文档类型定义(dtd)相同,并可以替代dtd。一份xsd定义了:可以出现在文档里的元素;可以出现在文档里的属性;哪些元素是子元素;子元素的顺序;子元素的数量;一个元素应是否能包含文本,或应该是空的;元素和属性的数据类型;元素和属性的默认值和固定值。
68.具体的,以xml模式定义源文件(xsd源文件)为例,选择本地xsd源文件获得xsd源文件的路径,根据选择的xsd源文件的路径读取文件流获得xsd源文件的内容。
69.s102、分别解析xml模式定义源文件和目标xml模式定义文件,得到xml模式定义源文件对象树和目标xml模式定义文件对象树。
70.其中,xml模式定义源文件对象树和目标xml模式定义文件对象树的节点对象均包括以下信息节点标识、节点名称、节点类型、数据类型、是否必须标志、节点路径以及子节点对象集合。
71.节点id(id):identity,表示当前节点在整个xsd对象树(上文中的xml模式定义源文件对象树和目标xml模式定义文件对象树)中的唯一标识。
72.节点名称(lable):表示当前节点的英文名。
73.节点级别(level):表示当前节点是根节点(root)、子节点(child)、还是叶子节点(leaf)。
74.节点类型(type):表示当前节点是xml对象树所描述的结构中的一个元素(element),还是一个属性(attribute)。
75.数据类型(datatype):表示当前节点的数据结构,包括字符串型(string),表示当前节点的内容仅包含文本;对象型(object),表示节点下包含子节点集合对象,且不为空,长度》=1;数组型(array),表示当前节点结构为数组;对象数组型(arraylist),表示当前节点结构为数组,且数组内每个元素为一个对象型节点(object)。
76.是否必须标志(ismust):表示该节点是否必须存在。
77.节点路径(path):表示从根节点开始遍历到当前节点所经过的所有节点名称。
78.子节点对象集合(children):是一个数组,包含当前节点的所有子节点对象(子节点对象就是当前节点的子树)。
79.可选的,在本技术的另一实施例中,步骤s102的一种实施方式,如图2所示,包括:
80.s201、根据xml模式定义源文件中的xml代码,按照xml模式定义文件语法规则,采用面向对象的编程语言构建得到xml模式定义源文件对象树。
81.具体的,在本技术的具体实现过程中,可以按照图3中的xml结构分别创建每个节点的实例,进一步的,通过为每个节点的成员变量赋值,构建出整个xml模式定义源文件对
象树的实例。
82.s202、根据目标xml模式定义文件中的xml代码,按照xml模式定义文件语法规则,采用面向对象的编程语言构建得到目标xml模式定义文件对象树。
83.具体的,在本技术的具体实现过程中,可以按照图4中的xml结构分别创建每个节点的实例,进一步的,通过为每个节点的成员变量赋值,构建出整个目标xml模式定义文件对象树的实例。
84.s103、将xml模式定义源文件对象树和目标xml模式定义文件对象树转化为预设格式。
85.其中,预设格式为前端技术可识别的数据格式。例如前端技术为javascript技术,那么预设格式就为json。
86.可以理解的是,将xml模式定义源文件对象树和目标xml模式定义文件对象树转化为预设格式后,并不会改变xml模式定义源文件对象树和目标xml模式定义文件对象树中的内容,且预设格式的xml模式定义源文件对象树与xml模式定义源文件对象树中的节点一一对应;预设格式的目标xml模式定义文件对象树与目标xml模式定义文件对象树中的节点一一对应。
87.javascript技术是一种属于网络的高级脚本语言,已经被广泛用于web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常javascript脚本是通过嵌入在html中来实现自身的功能的。
88.html全称为超文本标记语言,是一种标记语言。它包括一系列标签。通过这些标签可以将网络上的文档格式统一,使分散的internet资源连接为一个逻辑整体。它通过标记符号来标记要显示的网页中的各个部分;“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。
89.json(javascript object notation,js对象简称)是一种轻量级的数据交换格式。简洁和清晰的层次结构使得json成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
90.json可以将javascript对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式。
91.具体实现方式可以但不限于如下所示:
92.93.94.[0095][0096]
s104、根据预设格式的xml模式定义源文件对象树,生成第一超文本标记语言树。
[0097]
其中,第一超文本标记语言(html)树包括至少一个html节点,且xml模式定义源文件对象树与第一html数中的节点存在关联关系。
[0098]
s105、根据预设格式的目标xml模式定义文件对象树,生成第二超文本标记语言树。
[0099]
其中,第二超文本标记语言(html)树包括至少一个html节点,且目标xml模式定义文件对象树与第二html数中的节点存在关联关系。
[0100]
s106、向用户展示第一超文本标记语言树以及第二超文本标记语言树。
[0101]
具体的,可以从网页上向用户展示第一超文本标记语言树以及第二超文本标记语言树,并且用户可以对第一超文本标记语言树以及第二超文本标记语言树进行编辑。
[0102]
例如:通过连线方式连接源报文的html树中的节点与目标报文的html树中的节点,如图5所示(左侧17.2airshoppingrs的version属性节点拉起线头,至右侧18.2airshoppingrs的versionnumber元素节点放下线头),建立两xml报文节点间的节点映射关系,并将连线关系记录到映射关系数组中。映射关系数组为对象数组,其每个元素标识一对连线关系节点。
[0103]
s107、接收用户编辑的第一超文本标记语言树中的节点和第二超文本标记语言树中的节点的映射关系组。
[0104]
其中,映射关系数组为对象数组,映射关系数组中每个元素标识一对连线关系节点。
[0105]
具体的,映射关系数组的结构可以如下所示:
[0106][0107]
可选的,在本技术的另一实施例中,报文转换代码的生成方法的一种实施方式,还包括:
[0108]
将第一超文本标记语言树中的节点和第二超文本标记语言树中的节点的映射关系组进行保存,并进行持久化。
[0109]
可选的,在本技术的另一实施例中,报文转换代码的生成方法的一种实施方式,还包括:
[0110]
接收用户的查询请求。
[0111]
其中,查询请求包括目标信息。
[0112]
在已保存的节点映射关系组中进行查询目标信息,得到查询结果并向用户进行展示。
[0113]
续接上述实例,可从存储中读取已保存过的节点映射关系,包括:xml模式定义源文件对象树和目标xml模式定义文件对象树(js数据格式),以及双方已连线的节点信息,重新在网页进行展示。
[0114]
可选的,在本技术的另一实施例中,报文转换代码的生成方法的一种实施方式,还包括:
[0115]
接收用户的编辑请求。
[0116]
其中,编辑请求包括待编辑信息。
[0117]
根据待编辑信息在节点映射关系组中进行编辑,并向用户进行展示。
[0118]
续接上述实例,在网页上重新编辑连线以修改节点映射关系。
[0119]
s108、根据第一超文本标记语言树中的节点和第二超文本标记语言树中的节点的映射关系组,生成报文转换代码。
[0120]
具体的,按照编程语言的语法,将节点映射关系翻译成xml报文转换程序代码。其中,节点映射关系生成xml报文节点转换逻辑代码,其他,如根节点、命名空间等非转换逻辑语法要求,则采用默认值自动生成,以保证程序可运行的最小要求。
[0121]
在申请的具体实现过程中遍历目标报文的xsd对象树结构,逐个节点生成xml标签或xlst代码。生成具体规则如下:
[0122]
1、节点级别(level)是叶子节点,同时在节点映射关系数组中作为target时,没有连线关系的节点不生成;
[0123]
2、节点数据结构(datatype)是element,则生成xml标签,标签名取自节点的lable值;节点内容生成规则为:
[0124]
1)如果当前节点类型是string型或array型,则生成如下语法,其中path取值来自节点映射关系数组中,当前节点为targe时,source节点的path值:
[0125]
《节点lable》
[0126]
《xsl:value-ofselect="$path"/》
[0127]
《/节点lable》
[0128]
2)如果当前节点类型(type)是object类型,则继续生成该节点xml标签;
[0129]
3)如果当前节点类型(type)是arraylist型,则生成如下语法,其中path取值来自映射关系数组中,当前节点为targe时,source节点的path值;该节点的每个元素在xsl:for-each标签下生成:
[0130]
《xsl:for-eachselect="$path"》
[0131]
元素对象节点在此生成
[0132]
《/xsl:for-each》
[0133]
3、节点数据结构(datatype)是attribute,则生成如下语法,其中lable为当前节点lable值,path为映射关系数组中,当前节点为targe时,source节点的path值:
[0134]
《xsl:attributename="$lable"》
[0135]
《xsl:value-ofselect="$path"/》
[0136]
《/xsl:attribute》
[0137]
4、如果节点的是否必须标志(ismust)是必填,则直接生成xml标签;否则,判断该节点id在节点映射关系数组中作为target节点时对应的soure节点的ismust值,当其ismust是必填时直接生成xml标签,否则,需要在生成的该节点xml标签外层,增加xsl:if语法,其中path取值来自source节点的path值,如下:
[0138][0139]
5、xslt文件除上述逻辑语句,还需要在外层定义样式表的根元素、命名空间等其他信息,具体情况需要参见xslt相应版本的语法规则进行调整,如下示例仅供参考:
[0140][0141]
按照上述实施方式,本示例最终生成xlst代码如下所示:
[0142]
[0143][0144]
由以上方案可知,本技术提供一种报文转换代码的生成方法:首先,读取xml模式定义源文件和目标xml模式定义文件;其中,xml模式定义源文件和目标xml模式定义文件的内容为文本信息;然后,分别解析xml模式定义源文件和目标xml模式定义文件,得到xml模式定义源文件对象树和目标xml模式定义文件对象树;其中xml模式定义源文件对象树和目标xml模式定义文件对象树的节点对象均包括以下信息节点标识、节点名称、节点类型、数据类型、是否必须标志、节点路径以及子节点对象集合;再将xml模式定义源文件对象树和目标xml模式定义文件对象树转化为预设格式;根据预设格式的xml模式定义源文件对象树,生成第一超文本标记语言树;根据预设格式的目标xml模式定义文件对象树,生成第二超文本标记语言树;向用户展示第一超文本标记语言树以及第二超文本标记语言树;接收用户编辑的第一超文本标记语言树中的节点和第二超文本标记语言树中的节点的映射关系组;其中,映射关系数组为对象数组,映射关系数组中每个元素标识一对连线关系节点;最终,根据第一超文本标记语言树中的节点和第二超文本标记语言树中的节点的映射关系组,生成报文转换代码。从而达到自动生成转换代码的目的,进而可以辅助开发工作,又能在开发阶段前的需求确认阶段中,作为ndc接口版本间转换的需求设计工具和团队工作时的需求分析讨论模板,其树形显示xsd结构,可视化双树节点连线功能,直观、精确的展示了同一接口的两个版本间的需求差异点;其保存连线功能,也便于需求的调整,二次开发等等应用场景,为航空公司it供应商们在进行aggregator开发时的提供了技术保障。
[0145]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0146]
本技术实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
[0147]
可以以一种或多种程序设计语言或其组合来编写用于执行本技术的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如python、java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务
器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0148]
本技术的另一实施例提供了一种报文转换代码的生成装置,如图6所示,具体包括:
[0149]
读取单元601,用于读取xml模式定义源文件和目标xml模式定义文件。
[0150]
其中,所述xml模式定义源文件和目标xml模式定义文件的内容为文本信息。
[0151]
解析单元602,用于分别解析xml模式定义源文件和目标xml模式定义文件,得到xml模式定义源文件对象树和目标xml模式定义文件对象树。
[0152]
其中,xml模式定义源文件对象树和目标xml模式定义文件对象树的节点对象均包括以下信息节点标识、节点名称、节点类型、数据类型、是否必须标志、节点路径以及子节点对象集合。
[0153]
转化单元603,用于将xml模式定义源文件对象树和目标xml模式定义文件对象树转化为预设格式。
[0154]
其中,所述预设格式为前端技术可识别的数据格式。
[0155]
第一生成单元604,用于根据预设格式的xml模式定义源文件对象树,生成第一超文本标记语言树。
[0156]
第二生成单元605,用于根据预设格式的目标xml模式定义文件对象树,生成第二超文本标记语言树。
[0157]
第一展示单元606,用于向用户展示所述第一超文本标记语言树以及所述第二超文本标记语言树。
[0158]
第一接收单元607,用于接收用户编辑的所述第一超文本标记语言树中的节点和所述第二超文本标记语言树中的节点的映射关系组。
[0159]
其中,映射关系数组为对象数组,映射关系数组中每个元素标识一对连线关系节点。
[0160]
第三生成单元608,用于根据所述第一超文本标记语言树中的节点和所述第二超文本标记语言树中的节点的映射关系组,生成报文转换代码。
[0161]
本技术上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,如图1所示,此处不再赘述。
[0162]
可选的,在本技术的另一实施例中,解析单元602的一种实施方式,具体包括:
[0163]
第一解析子单元,用于根据所述xml模式定义源文件中的xml代码,按照xml模式定义文件语法规则,采用面向对象的编程语言构建得到xml模式定义源文件对象树。
[0164]
第二解析子单元,用于根据所述目标xml模式定义文件中的xml代码,按照xml模式定义文件语法规则,采用面向对象的编程语言构建得到目标xml模式定义文件对象树。
[0165]
本技术上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,如图2所示,此处不再赘述。
[0166]
可选的,在本技术的另一实施例中,报文转换代码的生成装置的一种实施方式,还包括:
[0167]
保存单元,用于将所述第一超文本标记语言树中的节点和所述第二超文本标记语
言树中的节点的映射关系组进行保存,并进行持久化。
[0168]
本技术上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,此处不再赘述。
[0169]
可选的,在本技术的另一实施例中,报文转换代码的生成装置的一种实施方式,还包括:
[0170]
第二接收单元,用于接收用户的查询请求。
[0171]
其中,所述查询请求包括目标信息。
[0172]
查询单元,用于在已保存的节点映射关系组中进行查询所述目标信息,得到查询结果并向用户进行展示。
[0173]
本技术上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,此处不再赘述。
[0174]
可选的,在本技术的另一实施例中,报文转换代码的生成装置的一种实施方式,还包括:
[0175]
第三接收单元,用于接收用户的编辑请求。
[0176]
其中,所述编辑请求包括待编辑信息。
[0177]
编辑单元,用于根据所述待编辑信息在所述节点映射关系组中进行编辑,并向用户进行展示。
[0178]
本技术上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,此处不再赘述。
[0179]
由以上方案可知,本技术提供一种报文转换代码的生成装置:首先,读取单元601读取xml模式定义源文件和目标xml模式定义文件;其中,xml模式定义源文件和目标xml模式定义文件的内容为文本信息;然后,解析单元602分别解析xml模式定义源文件和目标xml模式定义文件,得到xml模式定义源文件对象树和目标xml模式定义文件对象树;其中xml模式定义源文件对象树和目标xml模式定义文件对象树的节点对象均包括以下信息节点标识、节点名称、节点类型、数据类型、是否必须标志、节点路径以及子节点对象集合;转化单元603将xml模式定义源文件对象树和目标xml模式定义文件对象树转化为预设格式;第一生成单元604根据预设格式的xml模式定义源文件对象树,生成第一超文本标记语言树;第二生成单元605根据预设格式的目标xml模式定义文件对象树,生成第二超文本标记语言树;第一展示单元606向用户展示第一超文本标记语言树以及第二超文本标记语言树;第一接收单元607接收用户编辑的第一超文本标记语言树中的节点和第二超文本标记语言树中的节点的映射关系组;其中,映射关系数组为对象数组,映射关系数组中每个元素标识一对连线关系节点;最终,第三生成单元608根据第一超文本标记语言树中的节点和第二超文本标记语言树中的节点的映射关系组,生成报文转换代码。从而达到自动生成转换代码的目的,进而可以辅助开发工作,又能在开发阶段前的需求确认阶段中,作为ndc接口版本间转换的需求设计工具和团队工作时的需求分析讨论模板,其树形显示xsd结构,可视化双树节点连线功能,直观、精确的展示了同一接口的两个版本间的需求差异点;其保存连线功能,也便于需求的调整,二次开发等等应用场景,为航空公司it供应商们在进行aggregator开发时的提供了技术保障。
[0180]
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例
如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
[0181]
本技术另一实施例提供了一种电子设备,如图7所示,包括:
[0182]
一个或多个处理器701。
[0183]
存储装置702,其上存储有一个或多个程序。
[0184]
当一个或多个程序被一个或多个处理器701执行时,使得一个或多个处理器701实现如上述实施例中任意一项的报文转换代码的生成方法。
[0185]
本技术另一实施例提供了一种计算机存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现如上述实施例中任意一项的报文转换代码的生成方法。
[0186]
在本技术的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0187]
需要说明的是,本技术上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
[0188]
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
[0189]
本技术另一实施例提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于执行上述任一项的报文转换代码的生成方法。
[0190]
特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可
读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从rom被安装。在该计算机程序被处理装置执行时,执行本技术实施例的方法中限定的上述功能。
[0191]
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
[0192]
虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本技术的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
[0193]
以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献