程亞安
國網信通股份公司安徽繼遠軟件有限公司 安徽 合肥 230088
XMI是由W3C(萬維網聯盟)開發的一種CI17標記語言,用于描述數據文件中數據的組織和布局。XMI II是為存儲和交換數據而設計的,它提供了一種描述和交換結構化數據的統一方法,即自描述XMI 跨越操作系統,不受編程語言的限制,實現了不同系統間的數據交互,是物聯網設備配置文件的理想選擇。
XMI二文檔是一種樹形結構。他有且只有一個根元素,該元素是其他所有元素的父元素。所有元素均可擁有子元素、文本內容和屬性,元素用于定義配置項,屬性用于添加額外描述信息,文本內容存儲實際的配置參數。
以一個具有普遍代表意義的配置為例,包括3種常見的類型參數[1]:整數、浮點和字符串。在配置中,“iteml ~ item3”定義了3個參數的名稱,第一個參數是整數,第二個參數是浮點數,第三個參數是字符串。參數值為“000,10.00,null”。相應的XML文件如下:
當配置使用二進制表示時,約定:3個參數按“item1 ~item3”的順序組織,第一個參數用帶符號整數(int)表示。第二個參數由單精度實數類型表示,第三個參數由單精度實數類型表示,并由4字節字符數組表示。相應的二進制配置的內容如表1所示。

表1 二進制配置示例表
在上面的示例中,XML配置為171字節(包括不可見的選項卡和回車),二進制配置為12字節;XML配置易于閱讀,但機器識別更為復雜;二進制配置可以通過訪問地址直接訪問,但必須參照上述約定進行解釋;XML配置和二進制配置可以相互轉換。
在傳統的二進制配置方法中,首先需要開發一個專有的配置工具,將配置規則固化到該工具中,然后使用配置工具生成二進制配置。對于XML設置,您只需要使用普通的文本編輯工具來直接編輯文件。
利用XML和二進制配置各自的優點以及二者相互轉換的特點,提出了一種基于XML的二進制配置管理方法[2]。通過文本編輯工具生成XML配置,將其與相應的XML配置規則一起導入統一的配置工具,生成二進制配置,并將二進制配置下載到Power Internet計算機上運行。相反,在維護配置時,從設備中提取二進制配置,將其與相應的XML配置規則一起導入統一配置工具,生成XML配置,然后通過文本編輯工具進行維護,或執行更完整的配置信息生命周期管理。
該方法的特點是二進制配置和XML配置之間存在一一對應關系;物聯網電源設備只需分析制造商定義的二進制配置,配置內容包括所需的或行業標準的配置項和制造商的設備專利配置項;XML配置用于標準化配置和全生命周期管理。
該方法的關鍵是實現XML配置規則和統一的配置工具。XML配置規則是配置的一部分,不同的配置會產生不同的配置規則。統一配置工具與特定配置項的內容無關。它只根據XML配置規則對配置進行解析,在XML配置和二進制配置之間進行一對一的轉換,可以應用于所有設備的不同配置。
XML配置規則是實現XML配置與二進制配置相互轉換的橋梁。合理設計XML配置規則和XML配置可以生成任何結構的二進制目標配置[3]。XML配置規則包括三個元素:配置元素的結構和順序;XML配置中配置元素的元素名稱;以及二進制配置中配置元素的數據類型。
XML配置規則采用XML文件格式。根元素稱為
XML配置規則的示例如下。

由“type”屬性定義的數據類型如表1所示,包括幾種常見的數據類型。除了“str-n”,其他數據類型都是基本類型。str-n是一種結構類型,由多個“char”類型組成,它們表示一個“length”字符串。

表2 數據類型定義
統一配置工具是用QT開發的,可以在Linux或Windows維護工作站上實現。Qt的QtXML模塊是一個成熟的XML數據處理套件,它為處理XML文檔中的數據提供了三個不同的應用程序編程接口:QXMLStream Reader、DOM、SAX。其中,DOM(Document Object Model)可以按任意順序遍歷XML文檔的表示樹,實現了多路徑分析算法,成為作者的首選。
從XML配置轉換為二進制配置的過程如圖1所示:統一配置工具遍歷XML配置規則樹的根節點

圖1 XMI.配置轉換二進制配置流程
如圖,parseElementdo函數(element.r,element.c)通過
本理論基于XML生成二進制配置的管理方法,不僅利用了XML便于管理和信息交換的特點,而且保證了物聯網設備能夠快速方便地進行分析。這樣解決了配置工具的維護問題。當配置內容較少時,可以直接使用XML配置;當配置內容較大時,使用該方法的效果更為明顯。