《能源互联网 应用JSON格式交换数据模型.docx》由会员分享,可在线阅读,更多相关《能源互联网 应用JSON格式交换数据模型.docx(18页珍藏版)》请在三一办公上搜索。
1、ICS27.010F10T/CEC电力企业联合会标准T/CECXXXX-20XX能源互联网应用JSON格式交换数据模型(征求意见稿)Energyinternet一applicationofJSONformatexchangedatamodel20XX-XX-XX 实施20XX-XX-XX发布中国电力企业联合会发布目次前言III1范围12规范性引用文件13术语和定义14技术原则25精简的JSON语法35.1 JSON的数据类型35.2 JSON的字符集45.3 JSON的两种结构45.4 JSON的缩进格式56与CIM的映射56.1 数据类型的映射56.2 CIM类的映射56.3属性的映射5附录
2、A(规范性附录)与CIM/RDF格式的映射8A.1命名空间的映射8A.2元素的映射8A.3多个重复标签的元素映射81.1 4注释元素的映射9附录B(规范性附录)与ClM/E格式的映射101.2 1元素的映射101.3 横表式结构的映射101.4 纵表式结构的映射101.5 注释的映射111.6 系统声明的映射11附录C(资料性附录)CIM/RDF映射为JSON样例(部分)12本文件按照GB/T1.1-2020标准化工作导则第1部分:标准化文件的结构和起草规则的规定起草。请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。本文件由中国电力企业联合会提出。本文件由中国电力企业
3、联合会能源互联网标准化技术委员会(CEC/TC13)归口。本文件起草单位:本文件主要起草人:本文件为首次发布。本文件在执行过程中的意见或建议可反馈至中国电力企业联合会标准化管理中心(北京市白广路二条一号,100761)。能源互联网应用JSON格式交换数据模型1范围本文件规定了能源互联网JSON格式数据模型的技术原则、语法、与建模语言的映射及与现行数据格式的映射等主要技术要求。本文件适用于能源互联网的数据交互、检验、格式转换、数据处理等工作。2规范性引用文件下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单
4、)适用于本文件。DL/T890.2能量管理系统应用程序接口(EMS-APD第2部分:术语DLZT1080.2电力企业应用集成配电管理的系统接口第2部分:术语IEC61968-2:2011术语(Glossaiy)IETFRFC6901JavaScriptObjectNotation(JSON)PointerApril2013IETFRFC3986UniformResourceIdentifier(URI):GenericSyntaxJanuary2005IETFRFC6596TheCanonicalLinkRelationApril2012IETFJSONschemaSpecificationI
5、nternetDraft(draft-07)March2019IETFJSONschemaSpecificationInternetDraft(draft2019-09;formerlydraft-08)September2019SemanticAnnotationsforWSDLandXMLSchemaW3CRecommendation28August2007IETFRFC6901JavaScriptObjectNotation(JSON)PointerApril2013IETFRFC3986UniformResourceIdentifier(URI):GenericSyntaxJanuar
6、y2005IETFRFC6596TheCanonicalLinkRelationApril2012IETFJSONschemaSpecificationInternetDraft(draft-07)March2019ISO8601-信息交换-日期和时间的表示法3术语和定义DLzT890.2、DLZT1080.2和IEC61968-2:2011界定的及下列术语和定义适用于本文件。3.1公共信息模型commoninformationmodel(CIM)一种描述电力企业中与电力运行有关的主要对象逻辑结构和关系的信息模型。3.2统一建模语言unifiedmodelinglanguage(UML)一种在
7、软件工程领域中,通用的、标准的和可视化的面向信息系统分析设计的信息建模语言。3.3主题域(包)package一种基于业务管理内容和过程的耦合度对业务管理对象进行分类的集合。3.4通用信息模型/资源描述框架CIM/RDF(CommonInformationModelResourceDescriptionFramework)是将CIM数据模型表示为RDF(ResourceDescriptionFramework)格式的一种方式。通常是XML(可扩展标记语言)文件。3.5可扩展标记语言XMLXML(ExtensibleMarkupLanguage)是一种可扩展标记语言,用于描述数据的结构和内容。它是
8、一种纯文本格式,由标签和文本组成,并且具有自定义的标签。3.6元素Element元素(EIelnent)是XML的基本组成单元。一个元素由以下几部分组成:1)开始标签(StartTag):用于标识元素的开始,并指定元素的名称。它是以尖括号Y开始,紧接着是元素名称,然后以尖括号”结束。2)结束标签(EndTag):用于标识元素的结束。它与开始标签的格式相似,但在元素名称前加上斜杠V3)元素内容(ElementContent):位于开始标签和结束标签之间的部分,包含了元素所表示的实际数据或其他嵌套的子元素。4)属性(Attributes):可选的属性为元素提供附加的信息。属性出现在开始标签中,由属
9、性名和属性值组成。属性名和属性值之间由等号”=连接,并用引号包围。5)命名空间声明(NamespaceDeclaration):可选的命名空间声明用于给元素和其子元素的命名空间提供唯一标识符。命名空间声明通常位于开始标签的属性列表中。3.7JSON(JavaScriptObjectNotation)一种轻量级的数据交换格式,使用键值对的方式组织数据,其中键和值之间使用冒号进行分隔,不同的键值对之间使用逗号分隔。键通常为字符串类型,值可以是字符串、数字、布尔值、数组、对象或者null。3.8键值对Key-ValuePair一种常见的数据组织方式,用于将一个值与一个唯一的标识符(键)关联起来。键K
10、ey键是用于标识和访问值的唯一标识符。在JSON中,数据类型应为字符串。值Value值是与键相关联的数据。它可以是字符串、数字、布尔值、数组、对象或者null。4.1简单性原则使用直观且易读的键值对结构,减少复杂性。4. 2独立性原则JSON是独立于任何编程语言的文本格式。4.3 可读性原则JSON使用人类可读的UniCOde字符,并使用缩进和换行符进行格式化,提高可读性。4.4 兼容性原则与建模语言的映射尽量采用建模语言的术语,命名空间。5精简的JSON语法5.1 JSoN的数据类型5. 1.1字符串字符串是双引号包围的字符序列。在字符串中,可以使用反斜杠进行转义,以表示特殊字符或插入引号。
11、示例:Hello,World!”“Thisstringcontainsdoublequotes.Newline:n,Tab:t5.1.2 数字数字是以常规的数值格式表示的,包括整数和浮点数,浮点数可用科学计数法表示,不应包含千位分隔符、货币符号或任何其他非数字字符。示例:整数:10,-15浮点数:-3.14,le65.1.3 布尔值布尔值只有两个取值:true和false。5.1.4 nulInull表示为空值或缺失值。null是JSON的关键字。5.1.5 对象对象是一组键值对,对象是由花括号包围的,每个键值对之间使用逗号分隔。示例:keyl:valuel”,“key2:value2”,“k
12、ey3:value3”5.1.6 数组数组表示为方括号口包裹的有序值序列。每个值之间使用逗号分隔。示例1:valuel,value2,value3”数组中的值可具有不同的类型,也可以包含嵌套的数组,从而创建多维数组的结构。示例2:apple,“banana”,orange,grape,melonJ,“pineapple”5.2JSON的字符集JSON使用Unicode字符集表示文本数据。5. 3JSON的两种结构JSON有两种结构,一种是键值对的集合,一种是有序列表。6. 3.1键值对集合键应为字符串类型,键区分大小写字母。键中不宜使用特殊字符或汉字。值可以是字符串、数字、布尔值、数组、对象或
13、者IWl1。键值对的集合是无序的,各个键值对之间应以逗号分隔。示例1:值为字符串:mRID:VL_01示例2:值为数字:voltage:10示例3:值为对象:nVoltageLevel:(mRID:nVL_01,namen:nVL_42_l)7. 3.2有序列表有序列表即为数组,数组表示为一个以方括号口包围的元素列表,其中的元素按顺序被定义和排列。5.4JSON的缩进格式宜使用空格或制表符来缩进层级,增强可读性。每一层宜缩进相同数量的空白字符。6与CIM的映射6.1 数据类型的映射CIM模型的基本数据类型可以下表方式映射为相应的JSON数据类型CIM基本数据类型映射的JSON数据类型Boole
14、an(布尔型)布尔值Decimal(数字型)数字Float(浮点型)数字Integer(整数型)数字Double(双精度浮点型)数字String(字符型)字符串Date(日期型)字符串DateTime(H期时间型)字符串Duration(时间间隔型)字符串Time(时间型)字符串MonthDay(月内日历型)字符串6.2 CIM类的映射CIM模型以类为基本数据单元,ClM模型数据向JSON数据格式的映射应以类的映射为基本映射结构。一个CIM类的实例,可映射为JSON的一个键值对,其中键应为其类名。其值应为对象,包含ClM类各个属性的映射。6.3属性的映射6.3.1简单属性的映射ClM类的简单属
15、性,即可用基本数据类型表示的属性。简单属性可直接映射为键值对。健应为相应的属性名,值为相应的属性值。示例:name”:变压器”6.3.2复杂属性的映射ClM类的笈杂属性,即用ClM模型自定义的数据类型表示的属性。复杂属性可直接映射为键值对。键应为相应的属性名,值为相应的属性值。属性值应满足ClM模型中定义的数据类型的限定。示例:g0ch:0.36.3.3关联属性的映射CIM类的关联属性,即用于定义CIM模型中的关联关系的属性。6.3.3.1可使用Link对象映射关联属性。1.ink对象定义如下:Link:relation”:CIM关联关系字符串,refID:关联类实例的id字符串c1assna
16、me”:关联类名字符串1其中,“Link键表示关联关系对象。relation键表示此关联关系在CTM中的定义位置,示例:VoltageLevel.BaseVoltage*表示此关联关系在VoltageLevel类的BaseVoltage属性中定义。refID”键表示与此属性关联的Cnl类实例的id。此id可为ClM类的mRID属性,也可为其他可标识类实例的其他id属性。“classname”键表示关联类映射到JSON的名字。6.3.3.2关联关系中有一种特殊关系,包含关系。ClM类成为了一个容器,即一个关联属性包含了多个类的实例。此时,可将键refID”改为refIDs”,对应的值改为包含多个
17、关联类实例的id字符串的数组。1.ink对象定义如下:Link:relation:ClM关联关系字符串、refIDs”:关联类实例的id字符串,关联类实例的id字符串,classname:关联类名字符串)如果一个关联属性包含了多个不同类的实例,可参照下节分割为多个包含相同类的关联属性进行映射。6.3.3.3如CTM类有多个关联属性,可使用Links数组表示多个关联属性。1.inks数组定义如下:“Links”:Link:1.ink对象实例,Link:1.ink对象实例)6.3.3.4如程序只关心关联属性所关联的类实例的id或某一属性值。可简化表示这一关联属性。此时,可用“CIM关联关系字符串:
18、关联类实例id或某一属性值表示此关联属性。其中“CIM关联关系字符串”即为关联关系在CIM中的定义位置。示例:Terminal.COnneCtiVityNOde:#142834117”附录A(规范性附录)与CIM/RDF格式的映射A.1命名空间的映射A.1.1命名空间定义的映射ClM/RDF文件头部的命名空间定义,可通过键值对进行映射。命名空间的前缀映射为键,命名空间的URl映射为值。示例:可映射为如下键值对集合。“xmlns:rdf:http:www.w3.org19990222rdf-synta-nstt*,xmlns:cim:http:iec.chTC572017CIM-SChema-C
19、iInl7#,“xmlns:md:http:/iec.chTC5761970-552/MOdeIDeSCriPtiOn/1#,“xmlns:SgCCdX:httpA.1.2命名空间前缀的映射可将CIM类的命名空间前缀映射为JSON类的前缀。示例:CIM/RDF文件中的CinKBreaker类,映射为键名为cim:Breaker对象。A.2元素的映射CIM/RDF文件中的元素可映射为JSoN中的键值对,元素名称应映射为键,元素内容应映射为JSON的对象。A.2.1属性的映射属性应映射为JSoN中的键值对。属性名应映射为键,属性值应映射为值。A.2.2子元素的映射子元素的映射与元素的映射相同。A.
20、3多个重复标签的元素映射可将CIM/RDF中多个重复标签的元素映射为JSON的有序列表。列表的键为标签名末尾添加s”后缀。列表内容为重复标签的元素。示例:724891005CN0DE_724891005724889928CN0DE-724889928映射为:“cim:COnneCtiVityNOdes”:rdf:ID:724891005”,z,cim:IdentifiedObject.mRID:724891005”,zzCimiIdentifiedObject.name:CNODE_724891005”,z,cim:ConnectivityNode.ConnectivityNodeContai
21、ner*:#1OOOO100-72864”,(rdf:ID:724889928”,“cim:IdentifiedObject.InRID:724889928”,*cim:IdentifiedObject.name:CNODE_724889928”,z,cim:ConnectivityNode.ConnectivityNodeContainer:#10000100-72864”)A. 4注释元素的映射可将ClM/RDF中的注释映射为键值对。键可为rdf_c。Inments,值为注释元素中的内容,映射类型可为字符串。附录B(规范性附录)与CIM/E格式的映射1.1 元素的映射CIM/E文件中的元素
22、可映射为JSON中的键值对,元素名称应映射为键,元素内容应映射为JSON的对象。B. 1.1属性的映射属性应映射为JSON中的键值对。属性名应映射为键,属性值应映射为值。B.1.2子元素的映射子元素的映射与元素的映射相同。B2横表式结构的映射横表式结构应映射为有序列表。B.2.1横表式结构的键可为horizontal”,值为有序列表。其中有序列表的第一个元素为横表式结构的数据块头映射的有序列表,第二个元素为横表式结构的第一行数据映射的有序列表。第n个元素为横表式结构的第nT行数据映射的有序列表。B.2.2横表式结构的数据块头应以如下方式映射为JSON有序列表:第n列映射为有序列表的第n个元素。
23、所有的列都应映射为字符串。8. 2.3横表式结构的数据块的每一行应以如下方式映射为有序列表:第n列映射为有序列表的第n个元素。每个元素之间以逗号分隔。其中第1列映射为字符串,其他列依据其数据类型,转换为相应JSON数据类型。B.3纵表式结构的映射纵表式结构应映射为有序列表。B.3.1纵表式结构的键可为vertical,值为有序列表。其中有序列表的第一个元素为纵表式结构的数据块头映射的有序列表,第二个元素为纵表式结构的第一行数据映射的有序列表。第n个元素为纵表式结构的第n-1行数据映射的有序列表。8. 3.2纵表式结构的数据块头应以如下方式映射为JSON有序列表:第n列映射为有序列表的第n个元素
24、。每个元素之间以逗号分隔。所有的列都映射为字符串。纵表式结构的数据块的每一行应以如下方式映射为有序列表:第n列映射为有序列表的第n个元素。每个元素之间以逗号分隔。其中第1列映射为字符串,其他列依据其数据类型,转换为相应JSON数据类型。B.4注释的映射B.4.1单独成行注释的映射可将单独成行的注释映射为键值对。键可为cimeOmmCnts”,值为注释的内容,映射类型可为字符串。8. 4.2行的后部注释的映射注释为纵表式结构或横表式结构某一行的最后部分,可依据8.2节或8.3节,映射为字符串,成为当前行映射的有序列表的最后元素。B.5系统声明的映射系统声明可映射为键值对的集合。系统声明中的属性名
25、映射为键,其属性值映射为值,其类型为字符串。示例:可映射为(System:XX,“Version:1.02,Code:UTF-8”,Type:全模型,Time:2021.10.22-10:34:45,345”)附录C(资料性附录)CIM/RDF映射为JSON样例(部分)yzXmlns*:rdf:http:WwW.w3.org19990222-rdf-syntaxnszz,cim:http:iec.chTC572016CIM-SChema-CinIl7#,md:http:iec.chTC57/61970-552/ModelDescription/l#),rdf:RDF:*md:Ful!Model
26、*:“rdf:ID:Xllllllllll,;d:Model.created:2019-12-29113:33:40,“md:ModeLdescription*:“Equipment”,z,md:Model,modelingAuthoritySet:http:WW.Cr,“md:Model,profile”:“http:SgC“rdf:ID:GeographicalRegion”,*cim:IdentifiedObject.DIRlD:GeographicalRegion”,*cim:IdentifiedObject.name*:地理区域”,“cim:GeOgraPhiCaIRegion”:“
27、rdf:ID:4c54a90a-4054Tle7-95b9-OOO61bde7879GE0”,*cim:IdentifiedObject.mRTDzx:4c54a90a-4054-lle7-95b9-00061bde7879,*cim:TdentifiedObject.name:宁波市区),cim:SUbStatiOr:rdf:ID:30000000T13394359”,cim:TdentifiedObject.mRID:30000000-113394359”,“cim:TdentifiedObject.name:乐海变,“cim:SUbStation.Region”:rdf:resource
28、:tt4c54a90a-4054-l1e7-95b9-00061bde7879”,*cim:PowerSystemResource.PSRType”:rdfiresource*:#SUbStation”,zCimiSubstation.NormalEnergizingFeederz,:“rdf:resource:#10000100-72864”“ciBay”:(rdf:ID:38000000-1516642677,cim:IdentifiedObjeCt.mRID:38000000T516642677”,cim:IdentifiedObject.name:海峰H553线G01”,“cim:Ba
29、y.VoltageLevel:22,z,cim:PowerSystemResource.PSRType”:rdf:resource:#PWBayPSR”),“cim:Bay.Substation”:rdf:resource:#32400000-103119957”),“cimiACLineSegment”:rdf:ID”:20100000-1002315093,z,cim:Conductor,length:562.0”,cim:IdentifiedobjeCt.mRID:201000OOToO2315093”,z,cim:IdentifiedObject.name:“球峰联线EG200线”,z
30、cim:ConductingEquipnicnt.BaseVoltagez,:(rdf:resource:#BV-22),z,cImrEquipment.EqUiPmentCOntainer”:rdf:resource:#10000100-72864”,z,cim:PowerSystemResource.PSRType”:“rdf:resource:#PwCabIeSeCPSR”,z*cim:ConductingEquipment.Terminalzz:rdf:resource:#20100000-1002315093,“ciHKConductingEquipment.Termina,:rdf
31、:resource:#20100000-1002315093_2),“cim:POWerTranSfOrmer”:rdf:ID:30200002Tl703310”,cim:IdentifiedobjeCt.mRID:30200002-11703310”,z,cim:IdentifiedObject.name:合宅村4号公变”,z,cim:ConductingEquipment.BaseVoltage*:rdf:resource:#BV-22”),z,cImrEquipment.EqUiPmentCOntainer”:zzrdf:resource:#32300000-113641604,*cim
32、:PowerSystemResource.PSRType”:“rdf:resource*:“#PWTranSfOrmerPSR”),“cim:COndUCtingEqUiPmerit.Terlnina1”:rdf:resource:#30200002-U703310”,*cimIConductingEquipment.Terminal*:“rdf:resource:#30200002-11703310_2,*cim:Breaker:“rdf:ID:“30500000-39837314”,CimrIdentifiedObject.mRTDzx:30500000-39837314”,cim:Ide
33、ntifiedObject.name:待用EG826G04断路器”,cimIConductingEquipment.BaseVoltage7z:“rdf:resource*:#BV-22”),z,cim:Equipment.EquipmentContainer:“rdf:resource:#32400000-11372521,*cim:PowerSystemResource.PSRType”:“rdf:resource*:“#PWBreakerPSR”,“cim:SWitCh.normalOpen:“false”,*cimiConductingEquipment.Terminal:rdf:re
34、source:#30500000-39837314”,*ciIiiiConductingEquipment.Terminal*:rdf:resource:#30500000-39837314.2),“cim:Termina1”:rdf:ID:30900000-10988242_2_junc_r,CimiIdentifiedObject.name:30900000-10988242_T0_704478172,Unc”,*cim:Terminal.ConductingEquipment”:“rdf:resource:#30900000-10988242_2_junc”,*cim:Terminal.ConnectivityNodez,:“rdf:resource:#704478172