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

一种基于XSD配置的安全平台数据生成方法与流程

2022-02-22 04:53:14 来源:中国专利 TAG:

一种基于xsd配置的安全平台数据生成方法
技术领域
1.本发明涉及数据处理技术领域,特别涉及一种基于xsd(xml schema definition,可扩展标记语言框架)配置的安全平台数据生成方法。


背景技术:

2.在轨道交通信号设备系统中,为了使系统正常运行,需要将车站设备的配置数据烧录到系统硬件板卡flash中,如果采用传统方式来生成配置数据,会存在以下问题:(1)直接读取输入文件并解析使用,该方法仅适用于小输入数据量的情况,当输入数据量增大之后,输入数据的解析难度呈几何倍数增加,会耗费大量时间;(2)不存在定义的输出数据摸板,该方法导致每份输出文件都需要使用代码搭建各自的框架,填充完框架内字段后再生成文件,代码会因此变得冗长臃肿,不利于平日维护;(3)每个项目的代码都只适用于各自工程,无法做到通用性;且项目代码的拓展性较差,项目迭代更新导致输入和输出文件变动,使读取以及输出部分都需增加大量代码。


技术实现要素:

3.本发明针对轨道交通信号系统设备的数据配置提供了一种基于xsd配置的安全平台数据生成方法,该安全平台数据生成方法包含两个部分,第一部分为类生成工具,以可执行jar包(java archive,java归档)形式存在,其功能是读取xsd规则配置文件并输出包含输入文件配置信息的jar包;第二部分为数据处理平台,此部分是以不可独立运行的jar包的形式存在,需要开发者将数据处理平台jar包以及第一部分生成的配置文件信息jar包导入至项目中,即可调用提供的各种格式的安全平台数据的读取以及处理输出方法,目前支持多种格式的输入输出处理。
4.为实现上述目的,本发明提供一种基于xsd配置的安全平台数据生成方法,其包含如下步骤:步骤s1、读取模板输入文件,生成xsd配置文件;步骤s2、读取并解析步骤s1中生成的xsd配置文件,得到xsd配置信息;步骤s3、将步骤s2中解析出的xsd配置信息写入class文件并生成配置信息jar包;步骤s4、读取项目待处理的实际输入文件,创建第一对象,并将实际输入文件中包含的数据存储于第一对象中;步骤s5、基于步骤s3生成的配置信息jar包中的class文件,创建第二对象,并将所述第一对象中的数据填充至第二对象;步骤s6、根据用户需要生成的文件格式,输出包含有步骤s5填充完成第二对象的配置数据文件。
5.其中,步骤s1所述的生成xsd配置文件具体包括:根据项目需求对模板输入文件内字段的定义,将该模板输入文件内的字段配置为复杂类型元素或简单类型元素,并生成输出已填充数据的xsd配置文件;且同一类型的模板输入文件只需要配置一份xsd配置文件。
6.其中,步骤s2所述的读取解析xsd配置文件具体包括如下步骤:步骤s201、使用第三方工具读取步骤s1生成的xsd配置文件中存储的配置信息,将配置信息中的元素类型和属性类型存储在预设对象中;步骤s202、创建新定义的存储对象;步骤s203、将预设对象中的元素配置信息存储到步骤s202创建的存储对象中。
7.优选地,步骤s201所述的预设对象中元素类型和属性类型信息是以树形结构存储;所述树形结构的根节点为复杂类型元素或简单类型元素;所述根节点下面的节点均为子节点;若所述根节点为复杂类型元素,则该根节点下的子节点为简单类型元素或属性类型;若所述根节点为简单类型元素,则该根节点下的子节点为空。
8.其中,步骤s203所述的存储过程包括:步骤s231、从步骤s201中生成的预设对象的根节点开始递归遍历,获取所有元素类型和属性类型信息;步骤s232、根据预设对象中的树形结构的元素类型的上下层级,在存储对象中对应设置根节点与子节点之间的父子关系;步骤s233、若存在属性类型,则将属性类型存储到存储对象的子节点中;若不存在属性类型,则无需进行步骤s233,直至遍历完预设对象的所有元素类型。
9.其中,步骤s3所述的将xsd配置信息写入class文件并生成jar包,具体包括以下步骤:步骤s301、对步骤s203中的存储对象依次遍历;步骤s302、将步骤s301中遍历得到的元素类型进行判别得到复杂类型元素;步骤s303、标记步骤s302中的每个复杂类型元素,且每个复杂类型元素均单独生成一个class文件;步骤s304、将步骤s303生成的所有class文件汇总,并打包生成一个配置信息jar包。
10.优选地,步骤s303中标记的复杂类型元素中包含有对应的简单类型元素和属性类型。
11.优选地,步骤s303生成的class文件会根据当前class文件内包含的元素类型及属性类型生成一个填充接口函数,并将该填充接口函数保存在对应的class文件中。
12.其中,步骤s4所述的读取项目待处理的实际输入文件,具体包括以下步骤:步骤s401、将步骤s3生成的配置信息jar包和数据处理平台jar包导入至对应的项目中;步骤s402、根据项目实际输入文件的格式,创建一个对应的第一对象;步骤s403、调用数据处理平台jar包中的内部接口函数,将实际输入文件中的对象存储至第一对象中。
13.其中,步骤s5在创建第二对象时,依次调用步骤s3中生成的配置信息jar包中实际输入文件对应的所有class文件的填充接口函数;利用所述填充接口函数根据字段名到步骤s4所创建的第一对象中查找对应的元素并将该元素填充到第二对象中。
14.优选地,步骤s5填充对象的过中,在填充每一个元素前会先判断当前元素是否包含限制条件,若存在则作相应的检查,若检查正确则继续填充下一个元素;若检查错误则程序报错,停止填充过程。
15.其中,步骤s6所述的输出配置数据文件通过调用数据处理平台jar包内的与项目输出文件格式相匹配的内部接口函数,实现指定格式的配置数据文件的生成输出。
16.综上所述,与现有技术相比,本发明提供的一种基于xsd配置的安全平台数据生成方法,具有如下有益效果:
17.(1)本发明采用xsd配置输入输出文件数据结构,xsd文件所具有的良好拓展性方便后期更新维护;
18.(2)本发明将规则配置文件抽象为xsd文件并转换以元数据形式写入class文件,输出jar包形式供用户调用,提供的框架模板大大减少了处理输入及输出文件过程中的代码量,仅需调用本方法接口即可实现读取输出处理,方便用户集成;
19.(3)本发明通用性强,支持包括ini、xml、csv、par、bin等多种格式输入文件的读取和文件输出,可以满足不同产品用户的需要;
20.(4)本数据配置工具已集成至200t、vcu、tsp等信号项目的安全数据配置工具中,在实际使用过程中,极大提高了用户配置数据的效率,同时由于良好的可拓展性,后续维护更新相比传统方式也更加方便便捷。
附图说明
21.图1为本发明的基于xsd配置的安全平台数据生成方法的流程图;
22.图2本发明的基于xsd配置的安全平台数据生成方法的装置结构示意图。
具体实施方式
23.以下将结合本发明实施例中的附图1~附图2,对本发明实施例中的技术方案、构造特征、所达成目的及功效予以详细说明。
24.需要说明的是,附图采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施方式的目的,并非用以限定本发明实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
25.需要说明的是,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括明确列出的要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
26.xsd配置文件包含元素(element)和属性(attribute)两种基本类型;所述元素类型必定存在于xsd配置文件中,属性类型是否存在与输入文件的格式相关,例如ini格式输入文件里只有元素类型,而xml格式输入文件里有元素类型,同时也配置属性类型。通过第三方工具可以读取所述xsd配置文件,并输出一个带有根节点的树状结构数据对象。本发明提供了一种基于xsd配置的安全平台数据生成方法,该数据生成方法包含两个部分,一部分是以xsd配置文件为基础生成xsd配置信息jar包,另一部分是将所生成的配置信息jar包和数据处理平台jar包导入至项目中,并利用数据处理平台jar包内包含的多种接口函数生成对应的配置数据文件。如图1所示,该安全平台数据生成方法具体包括如下步骤:
27.步骤s1、读取模板输入文件,生成xsd配置文件;
28.步骤s2、读取并解析步骤s1中生成的xsd配置文件,得到xsd配置信息;
29.步骤s3、将步骤s2中解析出的xsd配置信息写入class文件并生成配置信息jar包;
30.步骤s4、读取项目待处理的实际输入文件,创建第一对象,并将实际输入文件中包含的数据存储于第一对象中;
31.步骤s5、基于步骤s3生成的配置信息jar包中的class文件,创建第二对象,并将所述第一对象中的数据填充至第二对象;
32.步骤s6、根据用户需要生成的文件格式,输出包含有步骤s5填充完成第二对象的配置数据文件。
33.其中,步骤s1所述的模板输入文件包括ini、xml、csv、par、bin格式文件,每种格式
文件的字段在xsd配置文件内对应的元素包含该字段名称、字段类型、字段最大出现次数、字段最小出现次数。
34.进一步地,所述元素分为简单类型元素和复杂类型元素,所述简单类型元素包括以下基本数据类型:string、byte、short、integer、double、boolean、long、date;若项目需求中对元素的范围作了限制,则需要在该元素下配置一个包含了限制条件的《annotation》子元素;所述限制条件的子元素包括:最大值、最小值、正则表达式、固定值、最大长度、最小长度、文件类型、可选性、枚举值、大小端存储、原始类型、默认值;除了上述简单类型元素以外的其他元素全部定义为复杂类型元素,所述复杂类型元素在生成配置文件时会单独生成class文件,所述class文件内包含有对应的简单类型元素,也就是说,简单类型元素不会单独生成输出文件,而是会被包含在复杂类型元素所生成的class文件中。
35.其中,步骤s1所述的生成xsd配置文件具体包括:根据项目需求对模板输入文件内字段的定义,将该模板输入文件内的字段配置为复杂类型元素或简单类型元素,并生成输出已填充数据的xsd配置文件;且同一类型的模板输入文件只需要配置一份xsd配置文件。
36.其中,步骤s2所述的读取解析xsd配置文件具体包括如下步骤:
37.步骤s201、使用第三方工具读取步骤s1生成的xsd配置文件中存储的配置信息,将配置信息中的元素类型和属性类型存储在预设对象中;
38.步骤s202、创建新定义的存储对象;
39.步骤s203、将预设对象中的元素配置信息存储到步骤s202创建的存储对象中。
40.其中,步骤s201所述的预设对象中元素类型和属性类型信息是以树形结构存储;所述树形结构的根节点为复杂类型元素或简单类型元素;所述根节点下面的节点均为子节点;若所述根节点为复杂类型元素,则该根节点下的子节点为简单类型元素或属性类型;若所述根节点为简单类型元素,则该根节点下的子节点为空,即不存在子节点。
41.进一步地,步骤s203所述的存储过程包括:
42.步骤s231、从步骤s201中生成的预设对象的根节点开始递归遍历,获取所有元素类型和属性类型信息;
43.步骤s232、根据预设对象中的树形结构的元素类型的上下层级,在存储对象中对应设置根节点与子节点之间的父子关系;
44.步骤s233、若存在属性类型,则将属性类型存储到存储对象的子节点中;若不存在属性类型,则无需进行步骤s233,直至遍历完预设对象的所有元素类型。
45.通过步骤s201~步骤s203可以使得存储对象中的元素层级关系与步骤s1所生成的xsd配置文件中的元素层级关系一致。
46.其中,步骤s3所述的将xsd配置信息写入class文件并生成jar包,具体包括以下步骤:
47.步骤s301、对步骤s203中的存储对象依次遍历;
48.步骤s302、将步骤s301中遍历得到的元素类型进行判别得到复杂类型元素;
49.步骤s303、标记步骤s302中的每个复杂类型元素,且每个复杂类型元素均单独生成一个class文件;
50.步骤s304、将步骤s303生成的所有class文件汇总,并打包生成一个配置信息jar包。
51.进一步,步骤s303中标记的复杂类型元素中包含有对应的简单类型元素和属性类型,即对应的简单类型元素和属性类型会被存储到所依附的复杂元素类型的class文件。同时,步骤s303生成的class文件会根据当前class文件内包含的元素类型及属性类型生成一个填充接口函数,并将该填充接口函数保存在对应的class文件中。
52.其中,步骤s4所述的读取项目待处理的实际输入文件,具体包括以下步骤:
53.步骤s401、将步骤s3生成的配置信息jar包和现有的数据处理平台jar包导入至对应的项目中;
54.步骤s402、根据项目实际输入文件的格式,创建一个对应的第一对象;
55.步骤s403、调用数据处理平台jar包中的内部接口函数,将实际输入文件中的对象存储至第一对象中。
56.其中,步骤s401中所述的数据处理平台jar包中包括多个用途不同的功能jar包;如获取各类路径的jar包、文件读取输出处理的jar包、运行数据处理平台的jar包等;每个所述功能jar包中存储有多种不同作用的内部接口函数。
57.其中,步骤s5在创建第二对象时,依次调用步骤s3中生成的配置信息jar包中实际输入文件对应的所有class文件的填充接口函数;利用所述填充接口函数根据字段名到步骤s4所创建的第一对象中查找对应的元素并将该元素填充到第二对象中;同时,在填充每一个元素过程前会先判断当前元素是否包含限制条件,若存在则作相应的检查,若检查正确则继续填充下一个元素,若检查错误则程序报错,停止填充过程。通过检查限制条件,可以确保元素填充与项目需求所给的规则范围格式一致。
58.其中,步骤s6所述的输出数据文件的过程包括:根据项目需求输出的文件格式调用数据处理平台jar包内的内部接口函数,实现指定格式的配置数据文件的生成输出。
59.具体地,以集成了本数据生成方法的200t安全计算机轨旁数据配置工具为例,基于该配置工具配置一个输入文件格式为ini的站点数据,以具体说明本方法的使用流程:
60.步骤s1、结合200t项目需求中对输入文件字段的定义以及ini格式输入文件(即模板输入文件)生成xsd配置文件。其中,将输入文件中包含的字段配置为复杂类型元素a;该字段内包含的元素标签配置为简单类型元素b,并将元素类型配置完成的xsd配置文件输出。由于本实施的输入文件格式为ini,所以在本实施例中不需要配置属性类型。
61.步骤s2、读取解析步骤s1生成的xsd配置文件。其中,步骤s201、使用第三方工具xsom读取步骤s1生成的xsd配置文件中存储的配置信息,将配置信息中的复杂类型元素a和简单类型元素b存储在预设对象1中;步骤s202、创建新定义的存储对象2;步骤s203、将预设对象1中的复杂类型元素a和简单类型元素b存储到步骤s202创建的存储对象2中。
62.进一步地,步骤s203包括:步骤s231、从步骤s201中生成的预设对象1的根节点开始递归遍历,获取所有复杂类型元素a和简单类型元素b的信息;步骤s232、根据复杂类型元素a和简单类型元素b的上下层级,在存储对象2中设置根节点与子节点之间的父子关系,本实施例的存储对象2中复杂类型元素a配置为parent节点(根节点),简单类型元素b配置为children节点(子节点);本实施例无属性类型,因此仅需遍历完预设对象1的所有元素即可。
63.步骤s3、将步骤s2所解析的xsd配置信息写入class文件并生成jar包;具体包括:步骤s301、对步骤s203创建的存储对象2中的元素依次遍历;步骤s302、将步骤s301中遍历
得到的元素信息再次进行判别得到复杂类型元素b;步骤s303、标记步骤s302中的复杂类型元素b,且将该复杂类型元素b单独生成一个class文件;步骤s304、将步骤s303生成的class文件打包生成一个配置信息jar包。其中,步骤s303生成的class文件会根据当前class文件内包含的元素类型生成对应的填充接口函数,并保存在该class文件中。
64.步骤s4、读取项目实际输入文件;具体为:步骤s401、将步骤s3生成的配置信息jar包和数据处理平台jar包导入至200t项目中;步骤s402、根据输入文件为ini格式,创建一个处理ini输入文件接口函数的ininode对象,并对ininode对象中的传入文件路径、文件前缀(用于读取时区分文件)、文件结构map(根据输入文件创建的map,key为节点名,value为该节点下包含的字段名称的list)进行参数初始化;步骤s403、调用数据处理平台jar包中的内部接口函数,将实际输入文件中的对象存储至ininode对象中,通过该内部接口函数,会返回包含有指定路径的ini文件内容的ininode对象,所述ininode对象中的数据结构与输入文件的map数据结构一致。
65.步骤s5、根据步骤s4读取的ini文件,从导入的步骤s3生成的配置信息jar包找到class文件对应的填充接口函数,并创建最终待填充的第二对象,将步骤s4返回的包含有输入文件的各种元素类型信息的ininode对象作为第一传参,利用所述填充接口函数根据字段名到步骤s4所返回的ininode对象中查找对应的元素填充到第二对象中;并根据限制条件类型将该第二对象作为第二传参传至数据处理平台jar包中的范围检查接口,以最值检查为例,范围检查接口被调用后会从ininode对象中取得最大最小值信息,并与第二对象获取的字段值作比较,若出现非法数值则会报错提醒,否则按序往下运行,直至遍历完第二对象中的所有元素。
66.步骤s6、生成输出指定格式的配置数据文件;本实施例通过在数据处理平台jar包中创建一个iniwriter对象,即可调用iniwriter对象的writertofile接口。具体地,将步骤s5填充完毕返回的第二对象和输出路径作为传参,调用iniwriter对象的writertofile接口,该writertofile接口即可生成ini格式的输出文件。
67.用户生成安全平台数据的具体过程如图2所示,将xsd配置文件和实际输出文件导入至安全数据平台软件,通过步骤s1-s6生成站点数据文件,再由用户采用任一种存储工具(如u盘、光盘等)将安全数据平台软件生成的站点数据导入至现场设备中,即完成了车站设备配置数据的录入。
68.综上所述,与现有数据生成方法相比,本发明所提供的基于xsd配置的安全平台数据生成方法具有拓展性强、便于用户集成、维护简单等优势。
69.尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献