• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于CIM/E的電網(wǎng)模型解析①

      2018-02-07 02:41:45王占國(guó)
      關(guān)鍵詞:文檔解析對(duì)象

      崔 麗,王占國(guó),吳 奕

      1(中國(guó)科學(xué)院大學(xué),北京 100049)2(中國(guó)科學(xué)院 沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 110168)

      隨著現(xiàn)代經(jīng)濟(jì)的高速發(fā)展,電力需求持續(xù)增加,電網(wǎng)的規(guī)模在不斷擴(kuò)大,電網(wǎng)形態(tài)也在逐漸變化[1].目前電力系統(tǒng)已經(jīng)不可否認(rèn)的發(fā)展成世界上最復(fù)雜的人造工業(yè)網(wǎng)絡(luò)之一,大電網(wǎng)安全問(wèn)題已經(jīng)成為人們關(guān)注的熱點(diǎn)問(wèn)題.保障電網(wǎng)經(jīng)濟(jì)、穩(wěn)定、安全的運(yùn)行是電力行業(yè)工作者一直以來(lái)追求的宗旨.周孝信院士于2011年在國(guó)家電網(wǎng)報(bào)上提出了三代電網(wǎng)理論[2],將電網(wǎng)和電力系統(tǒng)的發(fā)展分為三個(gè)階段,即第一代小型電網(wǎng),第二代大型互聯(lián)電網(wǎng),以及第三代智能電網(wǎng).關(guān)于電網(wǎng)的發(fā)展水平世界各國(guó)是有差異的,但總的來(lái)說(shuō),是處于第二代大型互聯(lián)電網(wǎng)過(guò)渡到第三代智能電網(wǎng)的階段.電網(wǎng)的穩(wěn)定、安全、高校運(yùn)行離不開(kāi)電網(wǎng)模型數(shù)據(jù)和運(yùn)行數(shù)據(jù)的支撐.應(yīng)用系統(tǒng)之間的信息共享和應(yīng)用集成逐漸成為迫切需要解決的問(wèn)題.

      電力系統(tǒng)的不斷發(fā)展和自動(dòng)化技術(shù)的提高,使電網(wǎng)調(diào)度自動(dòng)化系統(tǒng)得到廣泛的應(yīng)用.出現(xiàn)了變電站自動(dòng)化系統(tǒng)、電網(wǎng)能量管理系統(tǒng)(EMS)等各種自動(dòng)化系統(tǒng),涉及電力行業(yè)的各個(gè)環(huán)節(jié).這些系統(tǒng)通常由不同的廠家提供,可能采用不同的開(kāi)發(fā)平臺(tái)、數(shù)據(jù)庫(kù)技術(shù)和應(yīng)用接口,應(yīng)用間的信息共享成本很高,不能很好的實(shí)現(xiàn)系統(tǒng)之間的互聯(lián)互通.對(duì)此,美國(guó)電力科學(xué)研究院(EPRI)啟動(dòng)了CCAPI項(xiàng)目[3],主要目標(biāo)就是推動(dòng)由不同廠商開(kāi)發(fā)的EMS應(yīng)用之間,獨(dú)立開(kāi)發(fā)的完整EMS系統(tǒng)之間,以及EMS系統(tǒng)與有關(guān)電力系統(tǒng)運(yùn)行的其他系統(tǒng)之間的集成,并為數(shù)據(jù)交換提供方便.目前電力系統(tǒng)中對(duì)于CIM/XML的研究和解析技術(shù)已比較成熟,但對(duì)于CIM/E,在研究的過(guò)程中發(fā)現(xiàn)很少有針對(duì)CIM/E解析的研究介紹,缺乏對(duì)CIM/E的解析過(guò)程的詳細(xì)說(shuō)明,所以本文在研究CIM/E結(jié)構(gòu)的基礎(chǔ)上,提出了一種CIM/E文件的解析方案并詳細(xì)介紹了具體的解析過(guò)程,彌補(bǔ)該部分的空白,為實(shí)際的應(yīng)用提供一定的參考和指導(dǎo)價(jià)值.

      1 公共信息模型(CIM)

      1.1 IEC 61970簡(jiǎn)介

      美國(guó)電力科學(xué)研究院(EPRI)于1993年啟動(dòng)了“控制中心應(yīng)用接口”(Control Center Application Program Interface,CCAPI)研究項(xiàng)目(RP-3654-1),EPRI CCAPI項(xiàng)目的主要目標(biāo)是:減少向EMS中增加新應(yīng)用所需要的費(fèi)用和時(shí)間;保護(hù)對(duì)EMS中正在有效工作的現(xiàn)有應(yīng)用的投資.隨著各種組件軟件技術(shù)的出現(xiàn),1999年開(kāi)始確立了基于組件軟件的相對(duì)穩(wěn)定的CCAPI解決方案.

      基于EPRI CCAPI項(xiàng)目的工作,國(guó)際電工委員會(huì)57技術(shù)委員會(huì)與EPRI緊密合作,啟動(dòng)IEC EMS-AIP項(xiàng)目[4],制定了IEC 61970系列標(biāo)準(zhǔn),該系列標(biāo)準(zhǔn)定義了能量管理系統(tǒng)的應(yīng)用程序接口(EMS-API),包括導(dǎo)則和總體要求、術(shù)語(yǔ)表、公共信息模型(CIM)[5]、組件接口規(guī)范(CIS)和組件接口規(guī)范映射5大部分內(nèi)容.該協(xié)議提出為現(xiàn)有的應(yīng)用系統(tǒng)提供一個(gè)基于公共信息模型、公共體系結(jié)構(gòu)和組件技術(shù)的系統(tǒng)集成框架.各個(gè)EMS應(yīng)用內(nèi)部可以有各自的信息描述方式,但是只要在應(yīng)用程序接口語(yǔ)義級(jí)上基于公共的信息模型,不同廠商開(kāi)發(fā)的應(yīng)用程序或不同系統(tǒng)的應(yīng)用間就可以以同樣的方式訪問(wèn)公共數(shù)據(jù),實(shí)現(xiàn)應(yīng)用間的相互操作和插件兼容.通過(guò)定義應(yīng)用編程接口(API),使這些應(yīng)用或系統(tǒng)可以訪問(wèn)公共數(shù)據(jù)或進(jìn)行信息交換,而不依賴于信息的內(nèi)部表述形式.公共信息模型(CIM)規(guī)定了此信息交換內(nèi)容的語(yǔ)義.組件接口規(guī)范(CIS)規(guī)定的消息交換的內(nèi)容.

      1.2 公共信息模型(CIM)

      IEC 61970系列標(biāo)準(zhǔn)主要包括公共信息模型 (CIM)和組件接口規(guī)范 (CIS)兩方面內(nèi)容,其中CIM是整個(gè)協(xié)議的核心.公共信息模型 (CIM)是一個(gè)抽象模型,它描述電力企業(yè)的所有主要對(duì)象,用對(duì)象類和屬性及他們之間的關(guān)系來(lái)表示電力系統(tǒng)資源.通過(guò)定義一種基于CIM的公共語(yǔ)言 (即語(yǔ)法和語(yǔ)義),使得應(yīng)用或系統(tǒng)能夠不依賴于信息的內(nèi)部表示而訪問(wèn)公共數(shù)據(jù)和交換信息來(lái)實(shí)現(xiàn)系統(tǒng)間的集成.CIM中描述的對(duì)象類本質(zhì)上是抽象的,可以用于各種應(yīng)用.CIM的使用遠(yuǎn)遠(yuǎn)超出了它在EMS中應(yīng)用的范圍.應(yīng)當(dāng)把本標(biāo)準(zhǔn)理解為一種能夠在任何一個(gè)領(lǐng)域?qū)嵭屑傻墓ぞ?只要該領(lǐng)域需要一種公共電力系統(tǒng)模型,使得應(yīng)用和系統(tǒng)之間能夠?qū)崿F(xiàn)互操作和插入兼容性,而與任何具體實(shí)現(xiàn)無(wú)關(guān).

      由于完整的CIM的規(guī)模較大,所以將包含在CIM中的對(duì)象類分成了幾個(gè)邏輯包,每個(gè)邏輯包代表整個(gè)電力系統(tǒng)模型的某個(gè)部分.CIM規(guī)范使用統(tǒng)一建模語(yǔ)言(UML)表達(dá)方法,它將CIM定義成一組包.CIM中的每一個(gè)包包含一個(gè)或多個(gè)類圖,用圖形方式展示該包中的所有類及它們的關(guān)系.然后根據(jù)類的屬性及與其它類的關(guān)系,用文字形式定義各個(gè)類.IEC 61970-301內(nèi)容包括核心包、域包、發(fā)電包、發(fā)電動(dòng)態(tài)包、負(fù)荷模型包、量測(cè)包、停運(yùn)包、生產(chǎn)包、保護(hù)包、拓?fù)浒碗娋€包.每一個(gè)CIM包的類圖展示了該包中的所有的類及它們的關(guān)系.在與其它包中的類存在關(guān)系時(shí),這些類也展示出來(lái),而且標(biāo)以表明其所屬的包的符號(hào).CIM 301部分的包圖如圖1所示.

      2 電網(wǎng)模型交換標(biāo)準(zhǔn)

      2.1 CIM/XML

      通過(guò)CIM提出的電力系統(tǒng)信息交換標(biāo)準(zhǔn)可以實(shí)現(xiàn)不同系統(tǒng)間的互聯(lián)互通.但CIM模型是個(gè)抽象模型,它沒(méi)有定義模型數(shù)據(jù)庫(kù)的規(guī)范和數(shù)據(jù)交換格式,在具體的工程應(yīng)用中,對(duì)CIM模型的實(shí)現(xiàn)方式需要有明確、可行的規(guī)定.XML語(yǔ)言解決了這個(gè)問(wèn)題,CIM以XML語(yǔ)言為載體,使用CIM RDF模式作為元模型框架,并采用一個(gè)RDF語(yǔ)法的子集作為描述規(guī)則,描述電網(wǎng)靜態(tài)數(shù)據(jù)模型,構(gòu)建電力系統(tǒng)信息模型的XML文檔[6].

      圖1 IEC61970-301包結(jié)構(gòu)

      根據(jù)IEC 61970 501標(biāo)準(zhǔn)所描述的CIM RDF模式,一個(gè)EMS電力系統(tǒng)模型能被轉(zhuǎn)換導(dǎo)出為一個(gè)對(duì)應(yīng)的CIM XML文檔,CIM RDF模式提供了CIM XML文檔所使用的資源描述格式,最終的CIM XML模型文件能夠被解析,將其中的信息導(dǎo)入到另一個(gè)外部系統(tǒng).目前基于CIM/XML的數(shù)據(jù)導(dǎo)入導(dǎo)出是不同系統(tǒng)和軟件間進(jìn)行數(shù)據(jù)交換和信息共享的主要方式.

      2.2 CIM/E

      為了提高電力系統(tǒng)模型數(shù)據(jù)的描述效率和大量數(shù)據(jù)的在線交換的效率,出現(xiàn)了電力系統(tǒng)數(shù)據(jù)模型描述語(yǔ)言E[7],E來(lái)源于3個(gè)英文單詞的首字母:easy(簡(jiǎn)單)、efficiency(高效)、electric-power(電力).E 語(yǔ)言有XML的基本特點(diǎn)以和優(yōu)點(diǎn),使用它的特殊符號(hào)和描述語(yǔ)法,能實(shí)現(xiàn)電力系統(tǒng)中各種數(shù)據(jù)模型的高效描述,效率比XML高很多,而且更符合人類的表述習(xí)慣[8].

      E語(yǔ)言使用幾個(gè)英文半角符號(hào)位于文件每行開(kāi)頭的第1個(gè)與或第2個(gè)字符組合,表示不同的特定含義,比如:<,>,@,#,/等符號(hào),E語(yǔ)言有三種數(shù)據(jù)描述方式:衡表式,單列式和多列式.E語(yǔ)言出了基本功能,還有擴(kuò)展功能,可以用于表示類屬性的類型、單位、限值等.CIM/E文件的文件名格式為,區(qū)域_日期_時(shí)間.CIME,比如,馳宏站_20170330_141315.CIME.CIM/E文件按照E格式規(guī)范對(duì)電網(wǎng)物理模型的相關(guān)設(shè)備類屬性進(jìn)行組織.為了使電網(wǎng)調(diào)度自動(dòng)化系統(tǒng)的運(yùn)行要求得到滿足,應(yīng)對(duì)電網(wǎng)物理連接模型進(jìn)行描述,包含區(qū)域、負(fù)荷、間隔、廠站、變壓器、基準(zhǔn)電壓、母線段等各類對(duì)象,對(duì)各類對(duì)象包含的屬性項(xiàng)有相關(guān)的要求.

      3 CIM/E文件解析

      3.1 XML文檔解析分析

      XML文檔的解析[9]主要有兩種方式:DOM和SAX.DOM是由W3C制定的一套編寫(xiě)XML分析器的標(biāo)準(zhǔn)接口規(guī)范,SAX是XML_DEV郵件列表中的成員根據(jù)應(yīng)用的需求自發(fā)的定義的對(duì)XML文檔進(jìn)行操作的一套接口規(guī)范.這兩種接口規(guī)范各有長(zhǎng)短,互有側(cè)重,都有著廣泛的應(yīng)用.應(yīng)用程序并不是直接對(duì)XML文檔進(jìn)行操作的,先由XML分析器對(duì)XML文檔進(jìn)行分析,而后,應(yīng)用程序通過(guò)XML分析器所提供的DOM接口或SAX接口對(duì)分析結(jié)果進(jìn)行操作,從而間接的實(shí)現(xiàn)了對(duì)XML文檔的訪問(wèn),DOM和SAX在應(yīng)用程序開(kāi)發(fā)過(guò)程中的作用,如圖2所示.

      圖2 DOM和SAX在應(yīng)用程序中的作用

      文檔對(duì)象模型(DOM)的全稱為Document Object Model.DOM就是一個(gè)標(biāo)準(zhǔn)的對(duì)象化的接口規(guī)范,與具體語(yǔ)言和平臺(tái)無(wú)關(guān).在程序中,基于DOM的XML分析器首先將一個(gè)XML文檔轉(zhuǎn)換成一個(gè)DOM樹(shù)(對(duì)象模型的集合)放在內(nèi)存中,然后應(yīng)用程序以通過(guò)對(duì)該對(duì)象模型的操作而實(shí)現(xiàn)對(duì)XML文檔中數(shù)據(jù)的操作.利用DOM接口的解析機(jī)制被稱作隨機(jī)訪問(wèn)機(jī)制,因?yàn)橥ㄟ^(guò)DOM接口,應(yīng)用程序可以在任何時(shí)候訪問(wèn)XML文檔中的任何數(shù)據(jù),這種隨機(jī)訪問(wèn)方式對(duì)于應(yīng)用程序來(lái)說(shuō)是非常靈活的.

      要進(jìn)一步加深對(duì)監(jiān)督對(duì)象的了解。中央紀(jì)委要求各級(jí)紀(jì)委要全面掌握“森林”情況,正確處理好“森林”和“樹(shù)木”的關(guān)系。但當(dāng)前恰恰缺乏的是“森林”信息來(lái)源,了解監(jiān)督對(duì)象情況大多是從人事、稽核等相關(guān)部門(mén)間接獲得,缺少動(dòng)態(tài)化、實(shí)時(shí)的監(jiān)督數(shù)據(jù)支撐,特別在用人監(jiān)督方面,由于缺乏對(duì)其社會(huì)關(guān)系、思想變化、家庭生活等情況的及時(shí)掌握,難以有效發(fā)現(xiàn)和杜絕少數(shù)干部“帶病”上崗現(xiàn)象的發(fā)生。

      XML實(shí)際上是一種分層的結(jié)構(gòu),DOM使用樹(shù)模型來(lái)描述XML文檔信息非常有效,DOM接口提供通過(guò)分層對(duì)象模型的方式來(lái)訪問(wèn)XML文檔中的信息,根據(jù)XML文檔的結(jié)構(gòu),分層對(duì)象模型形成一顆節(jié)點(diǎn)樹(shù)的形式.解析形成的DOM樹(shù)是存儲(chǔ)在內(nèi)存中的,當(dāng)XML文檔比較復(fù)雜龐大時(shí),DOM解析器對(duì)內(nèi)存的要求就比較高.圖3描述了DOM解析器解析XML文檔形成內(nèi)存中的節(jié)點(diǎn)樹(shù)的過(guò)程.DOM首先將文檔加載進(jìn)內(nèi)存里,然后再內(nèi)存中構(gòu)造出一個(gè)與文檔對(duì)應(yīng)的一棵樹(shù),樹(shù)上的每個(gè)節(jié)點(diǎn)都是一個(gè)對(duì)象(Node類型),放在內(nèi)存里,訪問(wèn)是隨機(jī)的.

      圖3 DOM解析器功能

      XML簡(jiǎn)單應(yīng)用程序接口(SAX),全稱為Simple APIs for XML.支持DOM的解析器是W3C的官方標(biāo)準(zhǔn),而支持SAX的解析器是事實(shí)上的工業(yè)標(biāo)準(zhǔn).SAX不同于DOM,SAX不必將整個(gè)XML文檔事先加載到內(nèi)存當(dāng)中,它快速讀寫(xiě)XML數(shù)據(jù),是一種基于事件驅(qū)動(dòng)的順序的訪問(wèn)模式,不能重新訪問(wèn)已經(jīng)分析過(guò)的內(nèi)容.對(duì)XML文檔進(jìn)行分析的時(shí)候,會(huì)觸發(fā)一系列的事件,并激發(fā)相應(yīng)的事先定義好的事件處理回調(diào)函數(shù),應(yīng)用程序通過(guò)事件函數(shù)從而實(shí)現(xiàn)對(duì)XML文檔的處理和訪問(wèn).SAX只做了一些簡(jiǎn)單的工作,應(yīng)用程序要自己去做大部分的工作,SAX適用于只需要訪問(wèn)不要更改的XML文檔數(shù)據(jù)的應(yīng)用程序.文檔的讀入過(guò)程就對(duì)應(yīng)著SAX解析器的解析過(guò)程,圖4描述了SAX解析器解析XML文檔的過(guò)程.

      圖4 SAX解析器功能

      3.2 CIM/E文件解析方案

      XML文檔解析器實(shí)際上就是一段程序代碼,同樣CIM/E文檔的解析器在本文中也是一段Java程序代碼,它讀入一個(gè)CIM/E文件并分析其結(jié)構(gòu),在分析文檔的同時(shí),采用基于事件的方法在內(nèi)存中構(gòu)造出一個(gè)對(duì)應(yīng)的自定的文檔類型對(duì)象,該文檔類型實(shí)現(xiàn)了W3C標(biāo)準(zhǔn)中的Document接口.然后程序可以對(duì)該文檔對(duì)象進(jìn)行操作,將文檔中的元素的不同信息分別提取出來(lái)存儲(chǔ)到集合(ArrayList類型)中元素(TableEClass類型)的不同數(shù)據(jù)結(jié)構(gòu)中.

      其中TableEClass類型是構(gòu)造出的一個(gè)數(shù)據(jù)結(jié)構(gòu),用來(lái)存放從CIM/E文件解析出的元素?cái)?shù)據(jù)內(nèi)容,該類包含 tableName、columnNames、columnTypes、columnUnits、columnLimitValues、rowsData等屬性,分別存儲(chǔ)CIME文件中對(duì)應(yīng)的的類名、屬性名,與橫表式CIM/E文件中對(duì)應(yīng)的屬性類型、屬性單位、屬性限值和數(shù)據(jù)行的內(nèi)容.上述集合對(duì)象封裝了CIM/E文檔中的數(shù)據(jù)信息,有了該集合對(duì)象之后,就可以在該對(duì)象的基礎(chǔ)上進(jìn)行數(shù)據(jù)的入庫(kù)等操作,為后續(xù)的應(yīng)用做好準(zhǔn)備,List集合中的每個(gè)元素(TableE類型)對(duì)應(yīng)于數(shù)據(jù)庫(kù)中的一張表,并包含了表中的數(shù)據(jù).

      本解析方案根據(jù)CIM/E文件結(jié)構(gòu)特點(diǎn),在W3C提供的DOM接口和SAX接口的基礎(chǔ)上,針對(duì)CIM/E文件解析定義了一系列的節(jié)點(diǎn)類型等數(shù)據(jù)結(jié)構(gòu),文件中一個(gè)類對(duì)應(yīng)為一個(gè)元素,將類起始符合類結(jié)束符中間的內(nèi)容設(shè)置為該元素的內(nèi)容,在封裝數(shù)據(jù)的時(shí)候在具體分析取出.該解析方案主要分為基于事件的文檔對(duì)象的構(gòu)建與操作文檔進(jìn)行數(shù)據(jù)的封裝兩個(gè)功能,涉及到的主要類和方法如圖5所示.

      圖5 解析方案中的部分主要類和方法

      3.2.1 基于事件的文檔對(duì)象的構(gòu)建過(guò)程

      首先定義MainParseEFile類Document documentBuildRead (String pathStr)方法,通過(guò)CIM/E文件名來(lái)構(gòu)建一個(gè)與之對(duì)應(yīng)的自定義文檔對(duì)象Document.該方法的實(shí)現(xiàn)依賴于TheEDomSAXReader類型對(duì)象的documentBuildRead()方法,該類有個(gè)XMLReader類型的引用,該引用指向的對(duì)象的void parse(InputSource input)方法完成底層的文件的具體分析操作.

      TheEDomXMLReader類實(shí)現(xiàn)了XMLReader接口,而XMLReader接口的作用就是用于使用回調(diào)讀取XML文檔,所以定義了TheEDomSAXContentHandler類并在類中提供了各種回調(diào)函數(shù).parse()方法根據(jù)CIM/E文件中的標(biāo)識(shí)符號(hào)分析到文件的不同位置時(shí)會(huì)調(diào)用處理器類中定義的各種回調(diào)方法.這些回調(diào)方法在處理過(guò)程中借助于棧類型成員變量的進(jìn)棧、出棧、取棧頂元素操作來(lái)實(shí)現(xiàn)自定義文檔對(duì)象的構(gòu)建.

      最后在TheEDomSAXReader類型對(duì)象的documentBuildRead()方法中通過(guò)處理器類型引用的getThe-Document()方法返回自定義的文檔對(duì)象,如圖6所示.

      圖6 documentBuildRead()方法的片段代碼

      3.2.2 操作文檔進(jìn)行數(shù)據(jù)封裝

      MainParseEFile 類中的 List<TableEClass>documentOperate(Document document)方法實(shí)現(xiàn)了將由documentBuildRead()方法得到的文檔對(duì)象中的信息存儲(chǔ)到集合變量list中的操作.該方法首先取出文檔對(duì)象下的所有子元素,遍歷每個(gè)元素,生成一個(gè)TableEClass對(duì)象,將元素名對(duì)應(yīng)的類名設(shè)置為對(duì)象的tableName屬性值,并將該對(duì)象添加到ArrayList<TableEClass>類型變量中,同時(shí),根據(jù)元素內(nèi)容的的首行初始符號(hào)判斷元素的類型(即元素所屬CIM/E文件的結(jié)構(gòu)類型,是單列式、多列式、還是橫標(biāo)式),針對(duì)不同的文件結(jié)構(gòu)使用不同的解析方法將元素內(nèi)容填充到TableEClass對(duì)象中的不同屬性上.

      比如橫表式文件的解析,使用void parseHorizontalTableType(TableEClass classTable,String[]contentLines)方法.遍歷元素內(nèi)容的各行,將屬性引導(dǎo)符@引導(dǎo)的元素內(nèi)容第一行的各個(gè)屬性,設(shè)置到TableEClass對(duì)象的columnNames屬性上,針對(duì)其余的內(nèi)容行,若是以類型引導(dǎo)符“%”開(kāi)頭,則將該行的各個(gè)類型保存到TableEClass對(duì)象的columnTypes屬性上;若是以量綱引導(dǎo)符“$”開(kāi)頭,則將該行的各個(gè)單位保存到TableEClass對(duì)象的columnUnits屬性上;若是以限值引導(dǎo)符“:”開(kāi)頭,則將該行的各個(gè)限值保存到TableEClass對(duì)象的columnLimitValues屬性上;若是以數(shù)據(jù)引導(dǎo)符“#”開(kāi)頭,則將該行的各個(gè)數(shù)據(jù)追加到TableEClass對(duì)象的rowsData集合屬性中.

      documentOperate()遍歷完文檔中的每個(gè)子元素后,在方法的最后返回已填充數(shù)據(jù)的ArrayList<TableEClass>類型的對(duì)象,之后應(yīng)用程序即可在該對(duì)象基礎(chǔ)上進(jìn)行數(shù)據(jù)入庫(kù)等操作.

      4 實(shí)例解析測(cè)試

      下面以一個(gè)變電站的電網(wǎng)模型文件為例(CIM/E文件)進(jìn)行解析方案的實(shí)驗(yàn)驗(yàn)證,如圖7所示是導(dǎo)出的電網(wǎng)模型文件(CIM/E文件)的模擬片段.

      圖7 CIM/E文件片段

      XML文檔對(duì)象模型有根節(jié)點(diǎn)(Document)和根元素節(jié)點(diǎn)root,但電網(wǎng)模型文件CIM/E文件對(duì)應(yīng)的文檔模型是沒(méi)有根元素節(jié)點(diǎn)的,Document節(jié)點(diǎn)下就是各個(gè)并列的子元素.若將CIM/E文件導(dǎo)入關(guān)系型數(shù)據(jù)庫(kù)中,文件中的類名如ControlArea、BaseVoltage、Substation等應(yīng)該作為表存在,類中的屬性作為表的字段、數(shù)據(jù)作為表中記錄的相應(yīng)字段值.

      圖8和圖9是該CIM/E文件應(yīng)用該解析方案過(guò)程中在內(nèi)存中形成的自定義文檔對(duì)象和對(duì)應(yīng)的存儲(chǔ)數(shù)據(jù)的ArrayList集合對(duì)象.

      得到ArrayList形式的信息后,就可以對(duì)這個(gè)信息進(jìn)行操作和處理了,比如將其存儲(chǔ)到關(guān)系型數(shù)據(jù)庫(kù)[10].使用的是Java進(jìn)行數(shù)據(jù)庫(kù)操作,Java提供的單純的使用sql語(yǔ)句方式進(jìn)行編程的機(jī)制,即JDBC(Java Database Connectivity)技術(shù).使用純的Java代碼來(lái)去實(shí)現(xiàn)對(duì)應(yīng)的數(shù)據(jù)庫(kù)的編程,寫(xiě)相應(yīng)的SQL語(yǔ)句,調(diào)用相應(yīng)的語(yǔ)句把SQL代碼進(jìn)行執(zhí)行,把語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)端,讓數(shù)據(jù)庫(kù)端去執(zhí)行SQL代碼.比如執(zhí)行一條插入語(yǔ)句,數(shù)據(jù)庫(kù)中就具備了插入進(jìn)去的內(nèi)容.實(shí)際的大型應(yīng)用中后端一般會(huì)使用框架,比如Hibernate、MyBatis等.在程序中取得數(shù)據(jù)庫(kù)的連接,調(diào)用建表的方法,并填充字段的值,形成數(shù)據(jù)表結(jié)構(gòu)和數(shù)據(jù).如圖10所示為形成的ControlArea表結(jié)構(gòu)數(shù)據(jù).

      圖8 構(gòu)建的自定義Document文檔

      圖9 存儲(chǔ)數(shù)據(jù)的ArrayList集合對(duì)象

      5 結(jié)束語(yǔ)

      本文首先介紹了公共信息模型(CIM)和兩種電網(wǎng)模型交換標(biāo)準(zhǔn),然后分析了XML文件解析的方法及電網(wǎng)模型文件CIM/E的文件結(jié)構(gòu),之后描述了一種解析CIM/E文件方法的具體過(guò)程及將解析的數(shù)據(jù)入庫(kù),并通過(guò)電網(wǎng)模型數(shù)據(jù)文件CIM/E進(jìn)行了驗(yàn)證,該解析方法對(duì)電力系統(tǒng)中模型數(shù)據(jù)的解析具有一定的指導(dǎo)和參考意義,可以在此方案的基礎(chǔ)上完善各種擴(kuò)展形式的文件的解析、設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),提高解析效率等工作.

      圖10 ControlArea表結(jié)構(gòu)數(shù)據(jù)

      2 周孝信.第三代電網(wǎng)技術(shù)正在向我們走來(lái).國(guó)家電網(wǎng)報(bào),2011-05-05(005).

      3 王民昆.電力系統(tǒng)CIM模型描述及數(shù)據(jù)交換實(shí)現(xiàn)的研究[碩士學(xué)位論文].成都:四川大學(xué),2004.

      4 Draft IEC61970 Energy management system application program interface (EMS-API)-Part I:Guidelines and general requirements.Revision 5,2002.

      5 Draft IEC61970 Energy management system application program interface (EMS-API)-Part 301:Common information model (CIM)base.Revision 3,2004.

      6 謝淑菁.基于CIM的電力系統(tǒng)模型拼接的研究和設(shè)計(jì)[碩士學(xué)位論文].濟(jì)南:山東大學(xué),2010.

      7 辛耀中,陶洪鑄,李毅松,等.電力系統(tǒng)數(shù)據(jù)模型描述語(yǔ)言E.電力系統(tǒng)自動(dòng)化,2006,30(10):48–51,92.[doi:10.3321/j.issn:1000-1026.2006.10.010]

      8 米為民,辛耀中,蔣國(guó)棟,等.電網(wǎng)模型交換標(biāo)準(zhǔn)CIM/E和CIM/XML的比對(duì)分析.電網(wǎng)技術(shù),2013,37(4):936–941.

      9 劉芳,肖鐵軍.XML應(yīng)用的基石:XML解析技術(shù).計(jì)算機(jī)工程與設(shè)計(jì),2005,26(10):2823–2824,2839.[doi:10.3969/j.issn.1000-7024.2005.10.083]

      10 朱曉娟.基于關(guān)系的XML數(shù)據(jù)存儲(chǔ)技術(shù)研究.計(jì)算機(jī)與現(xiàn)代化,2009,(12):51–54.

      猜你喜歡
      文檔解析對(duì)象
      神秘來(lái)電
      睿士(2023年2期)2023-03-02 02:01:09
      有人一聲不吭向你扔了個(gè)文檔
      三角函數(shù)解析式中ω的幾種求法
      睡夢(mèng)解析儀
      攻略對(duì)象的心思好難猜
      意林(2018年3期)2018-03-02 15:17:24
      電競(jìng)初解析
      商周刊(2017年12期)2017-06-22 12:02:01
      基于RI碼計(jì)算的Word復(fù)制文檔鑒別
      基于熵的快速掃描法的FNEA初始對(duì)象的生成方法
      相機(jī)解析
      區(qū)間對(duì)象族的可鎮(zhèn)定性分析
      穆棱市| 丰都县| 大关县| 太白县| 饶阳县| 台东县| 莎车县| 镶黄旗| 富锦市| 县级市| 琼海市| 罗江县| 章丘市| 涡阳县| 砀山县| 淮滨县| 平湖市| 梓潼县| 五莲县| 沙坪坝区| 河间市| 慈溪市| 周至县| 娄烦县| 兴业县| 康平县| 马边| 余干县| 和政县| 金溪县| 棋牌| 慈利县| 巴塘县| 灵寿县| 烟台市| 万宁市| 南漳县| 古浪县| 开平市| 扎囊县| 南岸区|