基于泛型编程和反射机制的IEC61968标准文档生成系统及方法技术方案

技术编号:13375717 阅读:48 留言:0更新日期:2016-07-20 22:34
本发明专利技术涉及一种基于泛型编程和反射机制的IEC61968标准文档生成系统及方法,IEC61968标准文档生成系统包括Xsd处理模块、配置文件处理模块、XML生成模块、数据查询模块和XML文档输出模块;Xsd处理模块分别与配置文件处理模块和XML文档输出模块传递数据;XML生成模块与配置文件处理模块、数据查询模块和XML文档输出模块传递数据。本发明专利技术是在配电网IEC61968标准基础上,使用泛型编程和反射机制技术,生成符合IEC61968标准的XML文档通用方法。使用此方法可避免为配电个应用系统重复开发文档转换程序,统一数据交换文档格式,降低配电各个应用集成的实施难度及实施成本,推进配电信息化的建设,提高配电信息化工作效率和正确性,从而提高配电网运行水平。

【技术实现步骤摘要】

本专利技术涉及一种电力系统及其自动化的生成系统及方法,具体涉及一种基于泛型编程和反射机制的IEC61968标准文档生成系统及方法
技术介绍
对于IEC61968标准的CIM模型及XMLSchema:目前,大部分配电网企业使用IEC61968所定义的配电网通用信息模型(DistributionCommonInformationModel,以下简称CIM模型),描述配电网的主要对象,尤其是和电网运行有关的数据。IEC61968所制定的CIM模型,是用面向对象技术定义的类(Class)的集合。每一个配电网中的设备、行为,事件,原则上都可以用CIM模型中的一个或若干个类的实例来表述。而配电网中的业务,可以通过多个类的实例的顺序组合表达。虽然IEC61968尚在制定和完善过程中,此标准已成为配电企业信息集成公认的规范。IEC61968所关注的是配电网业务应用间的集成,希望通过此标准规范各个应用间交换数据的方式,方法。由于配电网在信息化过程中,缺乏统一的规划和管理,各个业务部门开发的应用系统采用不同的专有数据格式及数据接口,阻碍了各个应用系统的互联互通。IEC61968标准为促进各个配电应用系统的集成,在IEC61970标准的CIM模型的基础上,定义了配电业务数据的统一模型,并推荐使用XMLSchema标准(http://www.w3.org/2001/XMLSchema)作为规范数据交换格式的标准。因此,符合IEC61968标准的交换数据文档应该是以某个XMLSchema文档为约束的XML文档,其中的语义内容是由IEC61968标准所定义的CIM模型,即面向对象的类的实例来表达。配电业务系统之间交换的数据要以基于IEC61968的XMLSchema为格式约束,才能符合IEC61968标准的要求。XMLSchema一般用后缀为“.xsd”的文件进行存储,因此XMLSchema通常也被称为Xsd,在本文中,XMLSchema和Xsd两个术语将不加区别的等同使用。依此标准,配电网的原有业务系统须将原有的数据接口改造为可输出或接受以XMLSchema文档为约束的XML文档。在本案中,将讨论将配电网数据转换为以某个XMLSchema文档为约束的XML文档的通用方法。此问题可总结为:依据现有的业务数据生成遵从某个IEC61968标准子集的XMLSchema(Xsd)的XML。具体到IT技术上,即是由Xsd(XMLschema)文件生成具体的XML的问题,可也定义为:由一个Xsd(其中可包含对其他Xsd文件的引用),及原有业务数据(可包括关系型数据库中关系数据,xml文件,xml数据库中记录及其他类型数据),生成一个符合Xsd约束的合法xml文件。Xsd文件实际上是一种规则的集合,而符合这种规则的XML实例文件可以有无穷多个,根据Xsd文件生成XML相当于实现的映射关系。显然要实现这种映射,必须辅以实际的数据和具体的生成算法。形象的说,IEC61968标准定义的CIM模型中的类可看作工业生产的标准部件,如轴承,曲轴等;而符合IEC61968规范的某个Xsd,可看作一件产品的装配图;而生成XML的过程,就是产品组装的过程。目前在业界中使用Xsd生成XML的方法,在Java编程技术中有XMLbeans和jaxb技术,这两项技术的基本思想都是将Xsd转换为Java的类,并使用此代码生成XML文件,这种方法的局限性在于对每一个Xsd都要生成Java源代码,这种方式形成了Java源代码与Xsd的绑定,一旦Xsd发生变化,Java代码就要发生相应改变,并重新编译才能工作;程序被绑定在某几个固定的Java类中,难以适应需处理较多Xsd及Xsd经常发生变化的情况。C#及其他编程语言的情况与Java类似。而在配电业务系统可能使用的基于IEC61968的Xsd会相当多,如配电自动化系统所使用的Xsd可达上百个,而且会因为业务安排的变化而变化,显然使用此类方法难以处理配电业务中的XML生成问题。对于泛型编程:Java,C++,C#是最广泛使用的编程语言,这些语言对数据类型的严格检查,导致同一算法需针对不同数据类型开发不同的函数(如排序算法,需针对整形,浮点型,字符型等数据类型开发不同函数),增加了编程的复杂性。泛型编程技术则允许数据类型作为一种参数传递到函数中,这使得使用同一函数处理多个数据类型的相同算法成为可能。泛型编程以迭代器(Iterators)和容器(Containers)为基础,是一种泛型算法(GenericAlgorithms)技术,容器可容纳类型参数指定的数据类型的集合,使这些泛型算法有东西可以操作。其中的泛型算法(algorithms)、泛型迭代器(iterators)、泛型容器(containers)以及函数对象(functionobjects)等技术不仅使多个数据类型可共享通用函数,而且使程序结构更加简洁,合理,直观易懂。IEC61968CIM模型中的类(Class)数以千计,大多数类派生自一个基本类(IdentifiedObject),而且都有相似的结构和属性,在业务逻辑中的地位和作用相似度很高,因此很适合用泛型编程方式通用化处理。对于JAVA反射机制:Java反射机制(Reflection)是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或调用其methods。反射机制的动态加载,探知、使用编译期间完全未知的Class本专利有重要作用,程序在处理Xsd时,可无须在编译时了解Xsd的具体结构和组成,就能在运行时动态生成Xsd中的元素所对应的CIM模型类,并设置模型类的属性,调用模型类的函数,使XML生成程序的编写摆脱了对Xsd结构,组成的依赖。目前,符合IEC61968标准的XML文档是配电业务系统之间规范数据交换的必要条件。而传统的生成XML的方法不具有通用性,需单独为各个配电业务系统开发相应的生成程序,而且难以应对业务流程改变带来的Xsd的变化。
技术实现思路
为解决上述现有技术中的不足,本专利技术的目的是提供一种基于泛型编程和反射机制的IEC61968标本文档来自技高网
...

【技术保护点】
一种基于泛型编程和反射机制的IEC61968标准文档生成系统,其特征在于,所述IEC61968标准文档生成系统包括Xsd处理模块、配置文件处理模块、XML生成模块、数据查询模块和XML文档输出模块;所述Xsd处理模块分别与配置文件处理模块和XML文档输出模块传递数据;所述XML生成模块与配置文件处理模块、数据查询模块和XML文档输出模块传递数据。

【技术特征摘要】
1.一种基于泛型编程和反射机制的IEC61968标准文档生成系统,其特征在于,所述
IEC61968标准文档生成系统包括Xsd处理模块、配置文件处理模块、XML生成模块、数据
查询模块和XML文档输出模块;所述Xsd处理模块分别与配置文件处理模块和XML文档输
出模块传递数据;所述XML生成模块与配置文件处理模块、数据查询模块和XML文档输出
模块传递数据。
2.如权利要求1所述的IEC61968标准文档生成系统,其特征在于,所述Xsd处理模块
用于解析Xsd文件结构,获得Xsd命名空间,简单数据类型,可用于XML根元素的复杂数
据类型,以及此xsd文件所引用的其他Xsd文件;所述配置文件处理模块用于读取、解析配
置文件,获得要生成的XML文件的根元素名称,CIM类与数据类型的映射关系,对复杂数
据类型生成元素的条件限定,包括此数据类型的子元素生成的数目限制,复杂数据类型元素
的嵌套层数限制;
所述XML生成模块的功能是根据Xsd处理模块获得的命名空间,数据类型,及配置文
件处理模块的获得的配置信息,首先生成根元素,随后递归生成根元素的多个子元素,直至
生成符合Xsd所规范的顺序结构的XML结构体;所述数据查询模块根据当前的数据类型以
及对应的CIM类,获得当前处理元素的实际数据记录;
所述XML文档输出模块负责将XML生成模块生成的数据结构体中数据依此写入XML
文档对象,并输出为文件。
3.如权利要求1-2中任一项所述的基于泛型编程和反射机制的IEC61968标准文档通用
生成系统的生成方法,其特征在于,
所述方法包括下述步骤:
(1)根据Xsd文件集合,配置XML生成参数;
(2)读取配置,获得要生成的XML文件的根元素名称,并从Xsd文件集合中获得根元
素的定义;
(3)针对当前处理的根元素名称,获得相应的IEC61968CIM模型类的名称,使用JAVA
语言的反射机制生成CIM模型类的实例;
(4)通过数据查询接口获得当前处理元素的实际数据记录,并依据实际数据记录的数据
设置步骤(3)生成的CIM模型类的实例属性;
(5)如果当前生成元素是由其他更基本的元素派生出来,即面向对象技术中的继承关系,
则将此...

【专利技术属性】
技术研发人员:王立岩吕广宪刘鹏陆一鸣刘海涛赵江河
申请(专利权)人:中国电力科学研究院国家电网公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1