張旭,劉明明,趙霏霏,鄧志光,簡一帆,楊斐,田旭峰,陳起
(核反應堆系統設計技術重點實驗室,成都 610213)
XML即可擴展標記語言,與超文本標記語言(HT?ML)類似,XML也是一種標簽式語言[1]。XML主要解決的問題有兩個:其一是在文檔格式中引入標準的編碼認定機制,規范了多語言情況下的編碼轉換問題。其二是其語言規則簡單,適合機器處理,所以可以有較多的XML分析器存在。XML具有較為嚴謹的語法規則和相對于軟硬件的獨立性,這使得XML更加適合數據的存儲和傳遞。很多辦公軟件或工程軟件都可以使用XML進行配置,或將文檔、圖紙保存為XML形式輸出[2]。
XML的設計基于自我描述的原則,標簽本身沒有預定義,這為用戶設計一套適用于自身情況和工序流程的數據傳遞方案提供了便利,使用XM工技術實現數據信息在工程設計的各個階段的有效傳遞,既可以保證數據的安全準確性,又可以在工程的各個階段應用二次開發技術建立針對性更強的輔助工具,提高工程的效率。
諸多的工程設計軟件,如Eplan,都是以XML格式存儲配置信息的。對于參與人員眾多的大型工程,工程軟件的系統配置容易出現子項目之間、子系統或不同層級人員之間混亂的情況。針對這一情況,可以使用XML文檔導入配置信息,避免了上述混亂情況的產生,也可以在一定程度上實現項目用戶之間的標準化要求,降低了因為這種不必要的問題產生的時間和人員精力成本的損失。
在工程軟件Eplan中,配置文件分為“公司”、“工作站”、“用戶”三個層面,分別在從大到小的三個層級對軟件的使用配置進行從整體到細節的說明,例如同一工作站的不同用戶之間的“工作站”配置文檔是相同的,而“用戶”配置文檔是不同的。這有利于配置管理員對于整個項目乃至公司的配置文件的管理與發放工作順利進行。
圖1是一種基于“公司-項目-用戶”結構的配置文檔管理模型。公司文檔配置管理員承擔XML配置文件的制作、判定其是否屬于公司級配置文件的工作;項目配置管理員承擔其所在項目的配置文件篩選、錯誤分配糾正的工作;用戶自身作為用戶級配置文件管理員,承擔篩選符合自身需要的配置文件以及錯誤糾正工作。多級串聯的模型保證了每一份配置文件都能被有效識別,不會被忽略。

圖1 基于XML的公司-項目-用戶配置文檔管理模型

圖2 Eplan配置對話框
圖2是Eplan軟件的配置對話框,在這里可以通過導入XML文檔的方式對屬性進行配置。在XML文檔中,部分標簽及屬性的結構關系如圖3所示。對比兩圖可以找的配置文件與勾選及下拉條結合的配置方式的對應關系。例如,在“導線制備”選項中的“CadCa?bel”選項卡分別對應XML文檔的

其他配置文檔道理類似,通過XML格式嚴謹的結構式語言,將所要配置的信息分門別類導入工程軟件中,按照需要規范項目或團隊之間配置數據一致,從源頭實現設計的標準化要求。

圖3 XML文檔中公司項配置文檔結構
一些常見的工程繪圖軟件如MS Visio等,其圖紙也可以通過XML格式進行儲存,這樣也有利于后期進行圖中的元件屬性的查詢、統計等操作[3],MS Visio的層級關系是,以VisioDocumet為根標記,以下是Sheet(表)、Section(節)、Row(行)、Cell(單元格)等組成的層級關系樹狀結構。一級子節點中最重要的包括“StyleSheets”、“Pages”、“Masters”等,分別用來定義文檔的主體樣式、頁面屬性、主控形狀等屬性。對于繪圖中最重要的組成,即元件,由Shape節點進行描述。這些節點在另一種常見的MS Visio的二次開發途徑“Shapesheet”中,都能找的對應的屬性。例如,XML文檔中的標簽“Line”、“Fill”分別對應 ShapeSheet中的“Line Format Section”、“Fill Format Section”分別表示線性和填充的屬性;ShapeSheet中的“Shape Transform Section”、“Text Transform Section”,分別對應 XML 文檔中的“XForm”、“TextXForm”。另外,MS Visio 還具有單元格級節點中的屬性基本上都以公式形式來定義的特點,這使得開發者可以比較清楚地看到單元格之間的關系,在定義新變量時可以依據它與當前的各個量的關系,定義其公式。
(1)文件表觀質量
Word作為Microsoft Office的成員之一,在底層層面上,可以看作是基于XML的數據信息存儲方式、MS Word自定義標簽的解析方式與VBA的開發平臺等部分的結合。在工程設計過程中,MS Word一般用于規范、文件手冊、技術方案說明等以文字為主的文件的編寫過程。此類文件作為工程項目的基礎性文件,其格式的規范性一般稱為文件的表觀質量。較高的表觀質量也關系到工程項目的嚴肅性和嚴謹性。建立一套基于XML的文檔質量檢查系統,對于提升文件的表觀質量具有很大的幫助。
(2)MS Word的XML形式
MS Word的XML文檔存儲方式由一系列標簽構成樹狀結構構成體系,圖4中體現了其中的部分標簽處于整個體系中的位置。

圖4 XML文檔的樹狀結構(部分)
(3)文件表觀質量檢查系統的構建
應用VBA、C#、Python等語言可以對XML文檔進行解析,通過其中對于文件格式樣式描述的標簽,對文件的表觀質量進行檢查。通過正則語句的方式,可以對文件內容進行更加智能的檢查。例如數字“0”和英文字母“O”的區分等較為常見而人工檢查又不易發現的問題。
解析MS Word的XML文件的關鍵在于父子節點關系的梳理[4]。以C#語言為例,需添加引用using Sys?tem Xml;
創建類型聲明節點:
XmlDocument xml= new XmlDocumen();
XML文檔的載人方法如下:
xmlLoad("…xml);
定義XmlElement類:
XmlElement xmlElement= xml.DccumentElement;
獲取頂層節點的列表:
XmlNodelist nodeList=xmlElement.ChildNodes遍歷所有子節點的方法:foreach(XmlNode item in nodeList){…}
遍歷某個元素的屬性:
for(int i=0;i {…} 通過對XML文檔的解析,可以獲得MS Word的格式樣式信息。與標準格式配置庫進行比較,可以找到文檔中表觀質量不合格之處,并予以記錄[5]。其具體過程如圖2所示。Word文檔編寫后,通過自動化工具,由Word文檔生成XML文檔,并進行容錯性檢查[6]。如果通過容錯性檢查,再由自動化工具進行XML樹狀結構的解析。檢查分為兩個部分,即頁面基本信息檢查和正則匹配檢查。其中,頁面基本信息檢查內容包括最基本的頁面設置、字體設置、行間距設置,等等,正則匹配檢查內容較為復雜,而且可以隨時在庫中添加,包括: (1)該公司或該項目常見的英文縮寫檢查; (2)數學單位用去錯誤,例如“4-20mA電流信號”應寫作“4mA-20mA電流信號”、以km為單位時,數值達到十萬以上,等等; (3)通過上下文語境,進行英文字母“o”、“l”與數字“0”、“1”的誤用情況檢查,等等; 兩種檢查方式還可以通過人工的方式進行復查,復查的方式可以是排查,也可以是抽查。對于發現的“誤動作”和“拒動作”,如果屬于基本頁面信息檢查,則應該詳細排查錯誤產生的原因;如果屬于正則表達式判斷方式,則應該修正正則表達式的集合。兩種錯誤都應該記入錯誤記錄,并提醒編寫人員注意修改。同時,出現頻率最高的幾種錯誤,應記入常見錯誤記錄,形成手冊,并注意對文檔編寫人員宣貫。進行頁面信息檢查的依據來自標準Word樣式庫的XML格式庫,其依據是文檔質保人員編寫的標準Word樣式庫,以確保評判正確與否的標準的唯一性[7]。 大數據挖掘技術與人工智能技術在工程中的應用是現今的研究熱點和未來的發展趨勢。Python語言是數據挖掘、人工智能算法中最常用的語言之一。大數據積累和挖掘的基礎包括數據采集和可供分析的高質量的數據存儲方式兩方面。通過工業過程的數字化程度的提高以及傳感器技術的發展,對于數據的采集問題將逐步得到解決。如前文所述,大量的各階段的工程數據以XML格式儲存,這種標準格式化的存儲方式為數據挖掘帶來了便利,XML文件中的數據,在用Py?thon語言解析之后可以用于設計過程的優化、數據規律的挖掘等。Python具有多種解析XML的方法,包括SAX(Simple API for XML)、DOM(Document Objet Mod?el)、ElementTree等方法。這幾種方法適用的情況需要使用者在具體的項目中具體實踐,以尋求最佳的方案。 (1)SAX方法 SAX是一種用于處理XML事件驅動的模型,Py?thon的標準庫中就有SAX的解析器。當文件較大時,由于SAX采用掃描與解析同時進行的方式,可以減少對系統內存的要求,SAX方法將具有更大的優勢。 (2)DOM 方法 DOM(文件對象模型)是一種標準的處理可擴展編程語言的接口。Python語言中的xml.dom.minidom可以便捷地解析XML文件。利用DOM建立的樹狀結構,Python可以通過對樹狀結構中的節點與節點間的關系,進行信息的查詢。 (3)ElementTree方法 ElementTree方法與DOM方法類似,使用Element?Tree類代表XML文檔,使用Element類表示XML結構中的一個節點。該方法是Python處理XML的方法中相對簡單的方法。 建立一套基于XML的數據信息傳遞和處理體系,有助于建立從工程設計項目的起始階段到設計過程終了,乃至未來數據挖掘階段的數字化管理過程。在最初的項目文件配置與配置文檔分發階段,利用XML技術,能夠提高文檔配置的準確性并提高效率。在文件表觀質量檢查階段,利用XML技術能夠讀取文檔格式屬性,并與可實時更新的標準樣式庫進行比較,發現文檔的格式錯誤。在積累了大量數據之后的數據挖掘階段,利用XML技術,結合Python語言編寫的讀取分析數據的程序與智能算法程序,可以對整個項目的結構、薄弱之處進行優化,給出改進的建議,以此進一步實現項目的數字化管理,當然XML的使用也有一定的缺點,XML的解析使信息密度低,同樣的信息量需要的文本長度更長,可讀性降低,因此在使用過程中也要綜合考慮以后按需使用。2.4 工程大數據積累與數據挖掘
3 結語