一种CIM模型的数据结构化处理方法及装置与流程

文档序号:27821497发布日期:2021-12-04 13:14阅读:294来源:国知局
一种CIM模型的数据结构化处理方法及装置与流程
一种cim模型的数据结构化处理方法及装置
技术领域
1.本发明涉及数据结构化处理技术领域,尤其涉及一种cim模型的数据结构化处理方法及装置。


背景技术:

2.通用信息模型(common information model,cim)作为能量管理系统应用程序接口,为电力系统数据交互提供标准规范,具有重要应用价值。基于cim模型建立结构化的数据结构是工程应用的基础;但cim模型基础资料多为pdf格式,如iec 61968、iec 61970标准,且cim模型包含类、属性众多,且类与类之间、类与属性之间关联关系复杂,直接手动建模工作量十分巨大,而且容易出现转化错误。


技术实现要素:

3.本发明提供了一种cim模型的数据结构化处理方法及装置,用于解决现有的cim模型建立结构化的数据结构基于手动建模工作量巨大,容易出现转化错误的技术问题。
4.本发明提供了一种cim模型的数据结构化处理方法,包括:
5.获取预设cim模型的配套建模工具文件eap文件;
6.将所述eap文件转化为文档结构描述xsd文件;
7.基于所述xsd文件搭建开发环境配置依赖项;
8.基于所述开发环境配置依赖项建立cim结构化数据模型;
9.创建数据转化类,并基于所述所述数据转化类对所述cim结构化数据模型中的字段进行命名编号;
10.创建xld文件对象,并创建全局工作簿对象wb和所述wb的工作表对象sheet;
11.从所述cim结构化数据模型中获取目标xsd文件;
12.将所述目标xsd文件添加进所述sheet中;
13.将所述wb的数据输入到所述xld对象对应的xld文件中。
14.可选地,所述将所述目标xsd文件添加进所述sheet中的步骤,包括:
15.加载所述目标xsd文件,获取根节点;
16.从所述目标xsd文件中提取包名,基于所述根节点获取包注释;
17.将所述包名和所述包注释写入所述sheet中;
18.基于所述根节点获取类数据,并将所述类数据写入所述sheet中;
19.基于所述根节点获取枚举数据,并将所述枚举数据写入所述sheet中。
20.可选地,所述基于所述根节点获取类数据,并将所述类数据写入所述sheet中的步骤,包括:
21.获取所述根节点的复合型complextype元素;
22.获取所述complextype元素的类名和类注释;
23.将所述类名和所述类注释写入所述sheet中。
24.可选地,所述基于所述根节点获取枚举数据,并将所述枚举数据写入所述sheet中的步骤,包括:
25.获取所述根节点的简单类型simpletype元素;
26.获取所述simpletype元素的属性类型,并将所述属性类型写入所述sheet中。
27.本发明还提供了一种cim模型的数据结构化处理装置,包括:
28.eap文件获取模块,用于获取预设cim模型的配套建模工具文件eap文件;
29.xsd文件转化模块,用于将所述eap文件转化为文档结构描述xsd文件;
30.开发环境配置依赖项构建模块,用于基于所述xsd文件搭建开发环境配置依赖项;
31.cim结构化数据模型建立模块,用于基于所述开发环境配置依赖项建立cim结构化数据模型;
32.数据转化类创建模块,用于创建数据转化类,并基于所述所述数据转化类对所述cim结构化数据模型中的字段进行命名编号;
33.xld文件对象创建模块,用于创建xld文件对象,并创建全局工作簿对象wb和所述wb的工作表对象sheet;
34.目标xsd文件获取模块,用于从所述cim结构化数据模型中获取目标xsd文件;
35.添加模块,用于将所述目标xsd文件添加进所述sheet中;
36.输入模块,用于将所述wb的数据输入到所述xld对象对应的xld文件中。
37.可选地,所述添加模块,包括:
38.根节点获取子模块,用于加载所述目标xsd文件,获取根节点;
39.包名和包注释获取子模块,用于从所述目标xsd文件中提取包名,基于所述根节点获取包注释;
40.包名和包注释写入子模块,用于将所述包名和所述包注释写入所述sheet中;
41.类数据写入子模块,用于基于所述根节点获取类数据,并将所述类数据写入所述sheet中;
42.枚举数据写入子模块,用于基于所述根节点获取枚举数据,并将所述枚举数据写入所述sheet中。
43.可选地,所述类数据写入子模块,包括:
44.complextype元素获取单元,用于获取所述根节点的复合型complextype元素;
45.类名和类注释获取单元,用于获取所述complextype元素的类名和类注释;
46.类名和类注释写入单元,用于将所述类名和所述类注释写入所述sheet中。
47.可选地,所述枚举数据写入子模块,包括:
48.simpletype元素获取单元,用于获取所述根节点的简单类型simpletype元素;
49.属性类型写入单元,用于获取所述simpletype元素的属性类型,并将所述属性类型写入所述sheet中。
50.本发明还提供了一种电子设备,所述设备包括处理器以及存储器:
51.所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
52.所述处理器用于根据所述程序代码中的指令执行如上任一项所述的cim模型的数据结构化处理方法。
53.本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程
序代码,所述程序代码用于执行如上任一项所述的cim模型的数据结构化处理方法。
54.从以上技术方案可以看出,本发明具有以下优点:本发明通过获取预设cim模型的配套建模工具文件eap文件;将所述eap文件转化为文档结构描述xsd文件;基于所述xsd文件搭建开发环境配置依赖项;基于所述开发环境配置依赖项建立cim结构化数据模型;创建数据转化类,并基于所述所述数据转化类对所述cim结构化数据模型中的字段进行命名编号;创建sheet;从所述cim结构化数据模型中获取目标xsd文件;将所述目标xsd文件添加进所述sheet中。简化了cim模型转化为结构化数据的过程。
附图说明
55.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
56.图1为本发明实施例提供的一种cim模型的数据结构化处理方法的步骤流程图;
57.图2为本发明实施例提供的一种cim模型的数据结构化处理装置的结构框图。
具体实施方式
58.本发明实施例提供了一种cim模型的数据结构化处理方法及装置,用于解决现有的cim模型建立结构化的数据结构基于手动建模工作量巨大,容易出现转化错误的技术问题。
59.为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
60.请参阅图1,图1为本发明实施例提供的一种cim模型的数据结构化处理方法的步骤流程图。
61.本发明实施例提供的一种cim模型的数据结构化处理方法,包括:
62.步骤101,获取预设cim模型的配套建模工具文件eap文件;
63.步骤102,将eap文件转化为文档结构描述xsd文件;
64.在本发明实施例中,可以使用enterprise architect软件将cim配套eap数据文件转化为xsd文件。如使用enterprise architect软件打开cim的配套eap数据文件iec61970cim17v23_iec61968cim13v11_iec62325cim03v14.eap;在左侧project区域展开并依次选择每一个包,针对每一个包:点击develop菜单,在schema modeling菜单区域点击“export xsd”,在弹出的对话框中选择encoding方式,指定生成文件的位置,点击generate按钮生成xsd文件。
65.步骤103,基于xsd文件搭建开发环境配置依赖项;
66.在实际应用中,可以根据实际的开发环境,搭建开发环境配置依赖项;如基于java平台,使用eclipse开发环境;搭建maven依赖项管理环境,创建maven project;在pom.xml
文件中配置dom4j依赖以支撑读取xml格式的xsd文件,配置poi依赖以支撑读写excel的xls文件,配置jna以支撑相关插件。
67.步骤104,基于开发环境配置依赖项建立cim结构化数据模型;
68.在本发明实施例中,在搭建了开发环境配置依赖项后,可以建立cim结构化数据模型,其字段包括包名、类名、基类、属性名、属性类型、属性最小数量、属性最大数量、值和注释。
69.步骤105,创建数据转化类,并基于数据转化类对cim结构化数据模型中的字段进行命名编号;
70.在本发明实施例中,在建立了cim结构化数据模型后,可以创建数据转化类eaxsd2xls。如声明静态整型变量行数rownum并初始化为0,对cim结构化数据字段进行命名编号,如包名(pac_name_idx=0)、类名(cla_name_idx=1)、基类(base_idx=2)、属性名(pro_name_idx=3)、属性类型(pro_type_idx=4)、属性最小数量(pro_min_idx=5)、属性最大数量(pro_max_idx=6)、值(value_idx=7)和注释(ann_idx=8)。
71.步骤106,创建xld文件对象,并创建全局工作簿对象wb和wb的工作表对象sheet;
72.在本发明实施例中,在创建了数据转化类后,可以创建xls文件对象。依赖poi,创建全局hssfworkbook对象wb,基于wb创建全局hssfsheet对象sheet并设置表单名称如“cim”;设置表头,如将cim结构化数据字段依次添加到sheet第一行,静态整型变量行数rownum自增1。
73.步骤107,从cim结构化数据模型中获取目标xsd文件;
74.接着获取指定目录下的所有xsd文件。如基于输入xsd文件目录,依次遍历每一个子目录,针对子目录使用递归方法,最终找出所有的目标xsd文件。
75.步骤108,将目标xsd文件添加进sheet中;
76.在确定了目标xsd文件后,可以将的目标xsd文件写入sheet中。
77.其中,步骤108可以包括以下子步骤:
78.s11,加载目标xsd文件,获取根节点;
79.s12,从目标xsd文件中提取包名,基于根节点获取包注释;
80.s13,将包名和包注释写入sheet中;
81.s14,基于根节点获取类数据,并将类数据写入sheet中;
82.s15,基于根节点获取枚举数据,并将枚举数据写入sheet中。
83.进一步地,步骤s14可以包括以下子步骤:
84.s141,获取根节点的复合型complextype元素;
85.s142,获取complextype元素的类名和类注释;
86.s143,将类名和类注释写入sheet中。
87.步骤s15可以包括以下子步骤:
88.s151,获取根节点的简单类型simpletype元素;
89.s152,获取simpletype元素的属性类型,并将属性类型写入sheet中。
90.在实际应用中,将每一个xsd文件数据写入到sheet中,具体包括以下步骤:
91.1)使用文件路径与sheet构造eaxsd2xls实例,依赖dom4j创建saxreader对象reader,使用reader的read()方法加载xsd文件到document实例中,通过document实例获
取根节点rootelement。
92.2)写入包名和包注释。基于文件路径,提取末端文件夹名称即为包名;基于rootelement嵌套获取annotation的documentation元素即为包注释。基于sheet创建行,分别创建包名及包注释单元格对象,并将包名和包注释分别添加到单元格中;静态整型变量行数rownum自增1。
93.3)写入类数据。使用元素列表,获取根节点rootelement中的所有complextype元素,遍历元素列表,使用步骤5)对元素进行处理。
94.4)写入枚举数据。使用元素列表,获取根节点rootelement中的所有simpletype元素,遍历元素列表,使用步骤5)对元素进行处理。
95.5)写入类名和类注释。获取元素属性name的值即为类名;基于元素嵌套获取annotation的documentation元素即为类注释。基于sheet创建行,分别创建类名及类注释单元格对象,并将类名及类注释分别添加到单元格中;静态整型变量行数rownum自增1。
96.写入继承类属性。基于元素嵌套获取complexcontent的extension子元素并存储在ext变量中,获取ext属性base的值即为继承类。基于sheet创建行,创建继承类单元格对象,并将继承类添加到单元格中;静态整型变量行数rownum自增1。基于ext嵌套获取sequence的element的元素列表,遍历元素列表,使用步骤6)对其元素进行处理。
97.写入非继承类。基于元素嵌套获取sequence的element元素列表,遍历元素列表,使用步骤6)对其元素进行处理。
98.写入枚举类。获取元素的子元素restriction并存储到变量res中,获取res的base属性值即为属性类型,基于sheet创建行,创建属性类型单元格对象,并将属性类型添加到单元格中;静态整型变量行数rownum自增1。基于res获取enumeration的元素列表,遍历元素列表,使用步骤6)对其元素进行处理。
99.返回调用。
100.6)处理基本元素。基于sheet创建行。
101.若元素包含name属性,则创建属性名单元格对象,并将属性值作为单元格内容;若元素包含type属性,则创建属性类型单元格对象,并将属性值作为单元格内容;若元素包含minoccurs属性,则创建属性最小数量单元格对象,并将属性值作为单元格内容;若元素包含maxoccurs属性,则创建属性最大数量单元格对象,并将属性值作为单元格内容;若元素包含value属性,则创建值单元格对象,并将属性值作为单元格内容。
102.基于元素嵌套获取annotation的documentation元素即为属性注释,创建注释单元格并设置其值;静态整型变量行数rownum自增1。
103.返回调用。
104.步骤109,将wb的数据输入到xld对象对应的xld文件中。
105.在实际应用中,可以指定xls文件存储路径和名称,据此创建文件输出流,调用poi中将hssfworkbook对象wb的write()方法将数据输出到文件输出流中,之后依次关闭文件输出流和wb,完成cim数据的结构化xls文件存储。
106.本发明通过获取预设cim模型的配套建模工具文件eap文件;将eap文件转化为文档结构描述xsd文件;基于xsd文件搭建开发环境配置依赖项;基于开发环境配置依赖项建立cim结构化数据模型;创建数据转化类,并基于数据转化类对cim结构化数据模型中的字
段进行命名编号;创建sheet;从cim结构化数据模型中获取目标xsd文件;将目标xsd文件添加进sheet中。简化了cim模型转化为结构化数据的过程。
107.请参阅图2,图2为本发明实施例提供的一种cim模型的数据结构化处理装置的结构框图。
108.本发明实施例提供了一种cim模型的数据结构化处理装置,包括:
109.eap文件获取模块201,用于获取预设cim模型的配套建模工具文件eap文件;
110.xsd文件转化模块202,用于将eap文件转化为文档结构描述xsd文件;
111.开发环境配置依赖项构建模块203,用于基于xsd文件搭建开发环境配置依赖项;
112.cim结构化数据模型建立模块204,用于基于开发环境配置依赖项建立cim结构化数据模型;
113.数据转化类创建模块205,用于创建数据转化类,并基于数据转化类对cim结构化数据模型中的字段进行命名编号;
114.xld文件对象创建模块206,用于创建xld文件对象,并创建全局工作簿对象wb和wb的工作表对象sheet;
115.目标xsd文件获取模块207,用于从cim结构化数据模型中获取目标xsd文件;
116.添加模块208,用于将目标xsd文件添加进sheet中;
117.输入模块209,用于将wb的数据输入到xld对象对应的xld文件中。
118.在本发明实施例中,添加模块208,包括:
119.根节点获取子模块,用于加载目标xsd文件,获取根节点;
120.包名和包注释获取子模块,用于从目标xsd文件中提取包名,基于根节点获取包注释;
121.包名和包注释写入子模块,用于将包名和包注释写入sheet中;
122.类数据写入子模块,用于基于根节点获取类数据,并将类数据写入sheet中;
123.枚举数据写入子模块,用于基于根节点获取枚举数据,并将枚举数据写入sheet中。
124.在本发明实施例中,类数据写入子模块,包括:
125.complextype元素获取单元,用于获取根节点的复合型complextype元素;
126.类名和类注释获取单元,用于获取complextype元素的类名和类注释;
127.类名和类注释写入单元,用于将类名和类注释写入sheet中。
128.在本发明实施例中,枚举数据写入子模块,包括:
129.simpletype元素获取单元,用于获取根节点的简单类型simpletype元素;
130.属性类型写入单元,用于获取simpletype元素的属性类型,并将属性类型写入sheet中。
131.本发明实施例还提供了一种电子设备,设备包括处理器以及存储器:
132.存储器用于存储程序代码,并将程序代码传输给处理器;
133.处理器用于根据程序代码中的指令执行本发明实施例的cim模型的数据结构化处理方法。
134.本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行本发明实施例的cim模型的数据结构化处理方法。
135.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
136.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
137.本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
138.本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
139.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
140.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
141.尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
142.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
143.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1