秦 英,馬永起,蒙立榮
(中國工程物理研究院 計算機應用研究所,四川 綿陽 621900)
一種基于XML的數據轉換方法的設計與實現
秦 英,馬永起,蒙立榮
(中國工程物理研究院 計算機應用研究所,四川 綿陽 621900)
交互式電子技術手冊是綜合保障領域的一次技術革命,在分析非結構化數據和結構化數據分類的基礎上,采取“非結構化數據-XML-結構化數據”的轉換方式,將非結構化技術資料的元數據信息轉換為可存儲在公共源數據庫(CSDB)中的結構化數據,為IETM數據錄入問題提供解決方法。
XML;非結構化數據;結構化數據;IETM
交互式電子技術手冊(以下稱IETM)是一種按標準數字格式編制,采用文字、圖形、表格、音視頻等多種形式,以人機交互方式提供裝備基本原理、使用操作、技術維修等內容的技術出版物。公共源數據庫(CSDB)作為IETM系統數據內容存儲和管理的核心,包含了IETM系統使用過程中涉及的所有數據模塊、插圖及多媒體文件。
在部署IETM系統時,需要將原來的電子文檔資料轉存到CSDB中。隨著幾十年的軍事技術發展,這些電子資料的數量也呈現出爆發式的增長,并且資料的內容多種多樣,格式也不盡相同。如何有效地轉換和處理這些資料并將其存儲在CSDB中,就成為必須要面對的問題。目前,Word文檔轉化方面,文獻[1]中可以使用XML應用程序來操作具有XML格式的Word文檔;文獻[2]中實現了一種轉換機制,實現Word到XML的轉換,同時實現了XML到Word的轉換;文獻[3]中利用Java實現了從Word文本向XML文本的轉換。文獻[4-7]中為非結構化數據向結構化數據轉換提供思路,但是IETM平臺下數據的轉化需要進一步完善改進,使得滿足IETM平臺下將Microsoft Word格式的IETM軍事技術等非結構化資料轉化為XML半結構化文檔,然后將XML半結構化文檔轉化為關系數據庫表格存儲到CSDB中,將軍事技術文檔通過數據庫管理起來,以便數據查詢、排序等。本文設計了XML的數據轉換方法,實現了非結構化數據到半結構化數據再到結構化數據的轉換,滿足IETM平臺對軍事技術文檔管理的需求。
管理和使用數據的第一步是對數據進行統一歸納。數據庫是現在大型信息系統存儲和管理數據的通用方法。經過十幾年的發展,數據庫的類型已經發展到關系型數據庫。該型數據庫都是基于某種關系數據模型建立起來的,其圖形展示可視為一個個的二維表格,表格中存儲的就是系統中的各種數據。現在一般將這類可存儲在關系數據庫中的數據稱為結構化數據;與之相反的,不能直接存儲在關系數據庫中的數據被稱為非結構化數據[8]。此外,也有部分研究者把結構化程度介于非結構化數據和結構化數據之間的數據(XML 文檔、HTML 頁面等)稱之為半結構化數據[9-10]。IETM系統要導入的數據種類繁多,規格不一,大多不能直接存儲在關系數據庫中,為非結構化數據類型。
可擴展標記語言(Extensible Markup Language,XML)是由W3C 于1998 年發布的一種數據規范,用于Web上各個系統之間進行數據的交互,旨在消除各個系統間的數據格式壁壘,提高各系統間交互數據的兼容性。XML目前已成為網絡數據交互格式的通用規范之一。
XML作為標準通用標記語言(SGML)的一個子集,具備以下幾個特征:
(1)樹形數據結構。文檔中除了根元素,所有元素都對應有上級元素,文檔以樹形結構存儲數據。
(2)可對數據進行標記。利用標簽和屬性兩個構件,能對某個數據作進一步的說明。
(3)可自定義標簽。除了規范內定的標簽以外,用戶可以自定義符合命名規則的任意標簽。
(4)可自定義約束。利用XML Schema文件,可以對XML文檔的結構和數據做出限定。
XML Schema是W3C制定的基于XML格式的XML文檔結構描述標準,簡稱XSD(XML Schema Define)。它可以對XML文檔的結構(上下文關系、標簽、屬性等)和數據(范圍、類型等)進行約定,對XML文檔作進一步的限制,使其滿足約定要求,方便XML數據的解析和處理。
XSD文件可以用來創建符合該XSD要求的XML文檔。這個特性為基于XML文檔的非結構化數據到結構化數據的轉換提供了技術基礎。
非結構化軍事資料多以Word文檔、圖片和多媒體文件的形式存在,這部分資料都符合國軍標體系或各單位入檔資料體系標準,文檔具有一定的結構性,例如文檔的發布單位、發布時間、版本、保密等級、技術標準、適用性等信息和文檔章節的組織關系。本文根據這些特征,對Word文檔、圖片和多媒體文件分別進行提取和轉換。
(1) 非結構化數據到XML的轉換
從非結構化數據提取結構信息,需要借助XSD文件。根據上述信息,制定XSD文件對非結構化數據的結構信息進行定義,然后根據XSD文件,生成符合結構要求的XML文檔(只有標簽和屬性,沒有數據值),再提取非結構化數據中對應的元數據并存儲在新建XML文檔中,完成從非結構化技術資料到XML文檔的轉換。
XSD文件是進行非結構化數據和結構化數據轉換的前提,在轉換之前要根據具體的文件類別制定相應的XSD文件,對擬提取的元數據進行定義。數據模塊是CSDB中的數據單元,是CSDB中數據的最小單位。按照數據模塊的分類分別制定不同的XSD文件,其中包括描述類、程序類、故障類、維修計劃類、過程類等XSD文件;圖片和多媒體文件要提取的信息只有文件名和文件路徑,較為簡單,不需要提供單獨的XSD文件生成XML。表1為某類XSD文檔中的部分屬性定義。
(2) XML到結構化數據的轉換
文獻[11]中分析了XML半結構化數據和關系數據庫中結構化數據特點,提出一種XML半結構化數據在關系數據庫中的存儲方法。本文在XML向結構化數據轉換階段,根據XSD文檔,將其所包含的樹形結構轉成關系型結構,并在關系數據庫中生成二維表格庫,然后將XML文檔中相應的元數據填入到所生成的關系型表格中,完成從XML文檔到結構化數據的轉換,如圖1所示。

表1 XSD文檔擬提取元數據信息

圖1 樹形結構到關系型結構轉換示意圖
圖2為非結構化數據到CSDB的完整轉換過程。Word文檔使用XSD來進行XML定制,然后提取Word的內容填充到XML當中。在CSDB中創建表庫并將XML中的元數據填入到CSDB中對應的字段。圖片和多媒體只需要提取文件名和路徑信息,其他步驟與Word的轉換步驟類似。本文在以上分析的基礎上,采用Java技術實現轉換功能。

圖2 樹形結構到關系型結構轉換示意圖
綜合保障體系中常見的非結構化數據包括Word文檔、圖片和音視頻多媒體文件,下面分別進行說明。
(1)對于Word文檔,Microsoft Office軟件已經全面支持Office系列文檔向XML文檔的轉換,但是這種方式轉換出來的XML文檔比較龐大,造成了嚴重的代碼冗余。本文提取Word文檔使用了POI (解析Office文檔的開放源代碼)和DOM4J (解析XML文檔的開放源代碼)。讀取完成后程序按照XML的語法要求將Word文檔內容進行轉換,最后再將轉換得到的結果寫入XML文檔中就完成了Word文檔到XML文檔的轉換[4]。
(2)圖片和多媒體文件要提取的元數據信息只有兩個:文件名和文件存儲路徑。
圖3為提取XML信息的流程圖。開始階段,程序會先根據文件格式判斷文件類型。如果是Word文檔,就調用XSD文件,提取Word文檔信息,生成XML文件,然后再轉存在CSDB中;如果不是多媒體文件,就提取文件名和路徑,存儲在XML中,最后轉存在CSDB中。

圖3 非結構化數據轉換為XML的流程圖

圖4 XML轉CSDB的流程圖
完成非結構化數據到XML文檔的轉換后,需要將產生的XML文檔轉存到CSDB中。本文采用模型驅動[4]的方式,根據XSD文件在關系數據庫中生成對應的二維表庫,并根據上下文關系確定各個表格之間的從屬關系,然后將對應XML文檔中的元數據填充到關系數據庫中,完成XML文檔到結構化數據的轉換。圖4為生成CSDB數據的流程圖。
實驗環境為Windows 7操作系統、MyEclipse 10.0 Java IDE工具、Oracle 11g數據庫系統和SqlDeveloper 6.0數據庫管理工具。
圖5為非結構化數據轉換系統界面。以下是該系統的操作步驟。
(1)首先選擇擬提取信息的文件,然后選擇要用到的XSD文件,最后填入生成的XML文件的路徑。完成后,點擊“開始生成XML文檔”按鈕,完成從非結構化數據到XML文檔的提取過程。
(2)打開XML文檔,對生成的結果進行必要的修改。
(3)點擊“生成CSDB數據”按鈕,完成從XML文檔到CSDB數據的轉換。

圖5 非結構化數據轉換系統界面圖
(1)Word文檔
本文使用中國工程物理研究院技術報告模板作為實驗輸入來驗證輸出結果是否達到預期。報告模板中包含了題目、密級、編寫人、數據模塊編碼、發布日期、版本號等信息。
將上述文檔作為輸入,生成的XML文件的部分代碼如下所示:
可以看到該轉換方法已經將數據模塊編碼、題目、密級、發布日期、編寫人等信息正確識別并提取了出來,按照固定的格式填寫在XML文檔中。
根據生成的XML文件,在CSDB中共生成了3個表:IDSTATUS、DMADDRES和STATUS。其中,IDSTATUS表包含了DMADDRES和STATUS表;DMADDRES表包含了數據模塊編碼、題目、發布日期等信息;STATUS表包含了密級、發布單位、適用性等信息。
(2)圖片和多媒體
圖片和多媒體文件要抽取的信息只有兩項:文件名和文件存儲路徑。經過信息抽取,文件名和存儲路徑信息被正確識別并保存在CSDB中MULTIMEDIA表格里。
通過實驗數據可以看到,Word文檔和圖片多媒體文件的屬性信息已經被提取并存儲在CSDB相關的表格中,實驗結果符合要求。
本文針對IETM系統數據錄入過程中出現的非結構化數據轉換問題,提出采用“非結構化數據-XML文檔-結構化數據”的方式,以XML和XSD文檔為基礎,提取非結構化資料的元數據信息并轉存到CSDB中,為IETM系統數據錄入問題提供一種解決方法。
[1] JONES B M, BISHOP A K, SNYDER D R, et al. Word-processing document stored in a single XML file that may be manipulated by applications that understand XML[P]. US: US7974991B2, 2011-07-05.
[2] PAVLOV J E. Mechanism for translating between word processing documents and XML documents[P].US:US6725426. 2004-04-20.
[3] Li Wenfeng, Duan Hongliang. Analysis of using Java to realize conversion from Word text to XML text[J]. Modern Computer, 2008(3).
[4] 萬里鵬. 非結構化到結構化數據轉換的研究與實現[D]. 成都:西南交通大學, 2013.
[5] 李曉麗. 異構數據集成技術在物聯網中的研究與應用[D]. 北京:北京郵電大學, 2012.
[6] 文龍. XML與非結構化數據管理[J]. 電腦知識與技術, 2009, 5(6):1306-1308.
[7] 閆璐. 基于XML的非結構化數據管理的研究與應用[D]. 北京:首都師范大學, 2013.
[8] 胥昊. 基于地理信息系統的軌道交通數據集成方法研究[J]. 都市快軌交通, 2016, 29(2):44-47.
[9] 馮國臻, 白碩, 程學旗. 異構數據統一檢索技術研究與系統實現[J]. 微電子學與計算機, 2001, 18(5):38-40.
[10] 張枝令. 結構化數據及非結構化數據的分類方法[J]. 寧德師范學院學報(自然科學版), 2007, 19(4):417-420.
[11] 裴松, 武彤. 擴展哈弗曼前綴編碼實現XML數據與關系數據轉換[J]. 微型機與應用, 2013, 32(17):56-59.
Design and implementation of data conversion method based on XML
Qin Ying, Ma Yongqi, Meng Lirong
(Institute of Computer Application, CAEP, Mianyang 621900, China)
IETM is a technological revolution in integrated support field. This paper, based on the analysis of unstructured data and structured data, adopts a translation method of unstructured data-XML-structured data to translate the unstructured technology information into the structured data that can be stored in CSDB. It exhibits a way to solve the problem of IETM unstructured data importing.
XML; unstructured data; structured data; IETM
P315.69
A
10.19358/j.issn.1674- 7720.2017.20.009
秦英,馬永起,蒙立榮.一種基于XML的數據轉換方法的設計與實現[J].微型機與應用,2017,36(20):30-33,38.
2017-03-30)
秦英(1986-),男,碩士,主要研究方向:交互式電子手冊,裝備綜合保障。
馬永起(1986-),男,碩士,主要研究方向:交互式電子手冊,裝備綜合保障。
蒙立榮(1985-),男,碩士,主要研究方向:交互式電子手冊,裝備綜合保障。