秦 英,馬永起,蒙立榮
(中國工程物理研究院 計算機(jī)應(yīng)用研究所,四川 綿陽 621900)
一種基于XML的數(shù)據(jù)轉(zhuǎn)換方法的設(shè)計與實現(xiàn)
秦 英,馬永起,蒙立榮
(中國工程物理研究院 計算機(jī)應(yīng)用研究所,四川 綿陽 621900)
交互式電子技術(shù)手冊是綜合保障領(lǐng)域的一次技術(shù)革命,在分析非結(jié)構(gòu)化數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)分類的基礎(chǔ)上,采取“非結(jié)構(gòu)化數(shù)據(jù)-XML-結(jié)構(gòu)化數(shù)據(jù)”的轉(zhuǎn)換方式,將非結(jié)構(gòu)化技術(shù)資料的元數(shù)據(jù)信息轉(zhuǎn)換為可存儲在公共源數(shù)據(jù)庫(CSDB)中的結(jié)構(gòu)化數(shù)據(jù),為IETM數(shù)據(jù)錄入問題提供解決方法。
XML;非結(jié)構(gòu)化數(shù)據(jù);結(jié)構(gòu)化數(shù)據(jù);IETM
交互式電子技術(shù)手冊(以下稱IETM)是一種按標(biāo)準(zhǔn)數(shù)字格式編制,采用文字、圖形、表格、音視頻等多種形式,以人機(jī)交互方式提供裝備基本原理、使用操作、技術(shù)維修等內(nèi)容的技術(shù)出版物。公共源數(shù)據(jù)庫(CSDB)作為IETM系統(tǒng)數(shù)據(jù)內(nèi)容存儲和管理的核心,包含了IETM系統(tǒng)使用過程中涉及的所有數(shù)據(jù)模塊、插圖及多媒體文件。
在部署IETM系統(tǒng)時,需要將原來的電子文檔資料轉(zhuǎn)存到CSDB中。隨著幾十年的軍事技術(shù)發(fā)展,這些電子資料的數(shù)量也呈現(xiàn)出爆發(fā)式的增長,并且資料的內(nèi)容多種多樣,格式也不盡相同。如何有效地轉(zhuǎn)換和處理這些資料并將其存儲在CSDB中,就成為必須要面對的問題。目前,Word文檔轉(zhuǎn)化方面,文獻(xiàn)[1]中可以使用XML應(yīng)用程序來操作具有XML格式的Word文檔;文獻(xiàn)[2]中實現(xiàn)了一種轉(zhuǎn)換機(jī)制,實現(xiàn)Word到XML的轉(zhuǎn)換,同時實現(xiàn)了XML到Word的轉(zhuǎn)換;文獻(xiàn)[3]中利用Java實現(xiàn)了從Word文本向XML文本的轉(zhuǎn)換。文獻(xiàn)[4-7]中為非結(jié)構(gòu)化數(shù)據(jù)向結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換提供思路,但是IETM平臺下數(shù)據(jù)的轉(zhuǎn)化需要進(jìn)一步完善改進(jìn),使得滿足IETM平臺下將Microsoft Word格式的IETM軍事技術(shù)等非結(jié)構(gòu)化資料轉(zhuǎn)化為XML半結(jié)構(gòu)化文檔,然后將XML半結(jié)構(gòu)化文檔轉(zhuǎn)化為關(guān)系數(shù)據(jù)庫表格存儲到CSDB中,將軍事技術(shù)文檔通過數(shù)據(jù)庫管理起來,以便數(shù)據(jù)查詢、排序等。本文設(shè)計了XML的數(shù)據(jù)轉(zhuǎn)換方法,實現(xiàn)了非結(jié)構(gòu)化數(shù)據(jù)到半結(jié)構(gòu)化數(shù)據(jù)再到結(jié)構(gòu)化數(shù)據(jù)的轉(zhuǎn)換,滿足IETM平臺對軍事技術(shù)文檔管理的需求。
管理和使用數(shù)據(jù)的第一步是對數(shù)據(jù)進(jìn)行統(tǒng)一歸納。數(shù)據(jù)庫是現(xiàn)在大型信息系統(tǒng)存儲和管理數(shù)據(jù)的通用方法。經(jīng)過十幾年的發(fā)展,數(shù)據(jù)庫的類型已經(jīng)發(fā)展到關(guān)系型數(shù)據(jù)庫。該型數(shù)據(jù)庫都是基于某種關(guān)系數(shù)據(jù)模型建立起來的,其圖形展示可視為一個個的二維表格,表格中存儲的就是系統(tǒng)中的各種數(shù)據(jù)?,F(xiàn)在一般將這類可存儲在關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)稱為結(jié)構(gòu)化數(shù)據(jù);與之相反的,不能直接存儲在關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)被稱為非結(jié)構(gòu)化數(shù)據(jù)[8]。此外,也有部分研究者把結(jié)構(gòu)化程度介于非結(jié)構(gòu)化數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)之間的數(shù)據(jù)(XML 文檔、HTML 頁面等)稱之為半結(jié)構(gòu)化數(shù)據(jù)[9-10]。IETM系統(tǒng)要導(dǎo)入的數(shù)據(jù)種類繁多,規(guī)格不一,大多不能直接存儲在關(guān)系數(shù)據(jù)庫中,為非結(jié)構(gòu)化數(shù)據(jù)類型。
可擴(kuò)展標(biāo)記語言(Extensible Markup Language,XML)是由W3C 于1998 年發(fā)布的一種數(shù)據(jù)規(guī)范,用于Web上各個系統(tǒng)之間進(jìn)行數(shù)據(jù)的交互,旨在消除各個系統(tǒng)間的數(shù)據(jù)格式壁壘,提高各系統(tǒng)間交互數(shù)據(jù)的兼容性。XML目前已成為網(wǎng)絡(luò)數(shù)據(jù)交互格式的通用規(guī)范之一。
XML作為標(biāo)準(zhǔn)通用標(biāo)記語言(SGML)的一個子集,具備以下幾個特征:
(1)樹形數(shù)據(jù)結(jié)構(gòu)。文檔中除了根元素,所有元素都對應(yīng)有上級元素,文檔以樹形結(jié)構(gòu)存儲數(shù)據(jù)。
(2)可對數(shù)據(jù)進(jìn)行標(biāo)記。利用標(biāo)簽和屬性兩個構(gòu)件,能對某個數(shù)據(jù)作進(jìn)一步的說明。
(3)可自定義標(biāo)簽。除了規(guī)范內(nèi)定的標(biāo)簽以外,用戶可以自定義符合命名規(guī)則的任意標(biāo)簽。
(4)可自定義約束。利用XML Schema文件,可以對XML文檔的結(jié)構(gòu)和數(shù)據(jù)做出限定。
XML Schema是W3C制定的基于XML格式的XML文檔結(jié)構(gòu)描述標(biāo)準(zhǔn),簡稱XSD(XML Schema Define)。它可以對XML文檔的結(jié)構(gòu)(上下文關(guān)系、標(biāo)簽、屬性等)和數(shù)據(jù)(范圍、類型等)進(jìn)行約定,對XML文檔作進(jìn)一步的限制,使其滿足約定要求,方便XML數(shù)據(jù)的解析和處理。
XSD文件可以用來創(chuàng)建符合該XSD要求的XML文檔。這個特性為基于XML文檔的非結(jié)構(gòu)化數(shù)據(jù)到結(jié)構(gòu)化數(shù)據(jù)的轉(zhuǎn)換提供了技術(shù)基礎(chǔ)。
非結(jié)構(gòu)化軍事資料多以Word文檔、圖片和多媒體文件的形式存在,這部分資料都符合國軍標(biāo)體系或各單位入檔資料體系標(biāo)準(zhǔn),文檔具有一定的結(jié)構(gòu)性,例如文檔的發(fā)布單位、發(fā)布時間、版本、保密等級、技術(shù)標(biāo)準(zhǔn)、適用性等信息和文檔章節(jié)的組織關(guān)系。本文根據(jù)這些特征,對Word文檔、圖片和多媒體文件分別進(jìn)行提取和轉(zhuǎn)換。
(1) 非結(jié)構(gòu)化數(shù)據(jù)到XML的轉(zhuǎn)換
從非結(jié)構(gòu)化數(shù)據(jù)提取結(jié)構(gòu)信息,需要借助XSD文件。根據(jù)上述信息,制定XSD文件對非結(jié)構(gòu)化數(shù)據(jù)的結(jié)構(gòu)信息進(jìn)行定義,然后根據(jù)XSD文件,生成符合結(jié)構(gòu)要求的XML文檔(只有標(biāo)簽和屬性,沒有數(shù)據(jù)值),再提取非結(jié)構(gòu)化數(shù)據(jù)中對應(yīng)的元數(shù)據(jù)并存儲在新建XML文檔中,完成從非結(jié)構(gòu)化技術(shù)資料到XML文檔的轉(zhuǎn)換。
XSD文件是進(jìn)行非結(jié)構(gòu)化數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換的前提,在轉(zhuǎn)換之前要根據(jù)具體的文件類別制定相應(yīng)的XSD文件,對擬提取的元數(shù)據(jù)進(jìn)行定義。數(shù)據(jù)模塊是CSDB中的數(shù)據(jù)單元,是CSDB中數(shù)據(jù)的最小單位。按照數(shù)據(jù)模塊的分類分別制定不同的XSD文件,其中包括描述類、程序類、故障類、維修計劃類、過程類等XSD文件;圖片和多媒體文件要提取的信息只有文件名和文件路徑,較為簡單,不需要提供單獨的XSD文件生成XML。表1為某類XSD文檔中的部分屬性定義。
(2) XML到結(jié)構(gòu)化數(shù)據(jù)的轉(zhuǎn)換
文獻(xiàn)[11]中分析了XML半結(jié)構(gòu)化數(shù)據(jù)和關(guān)系數(shù)據(jù)庫中結(jié)構(gòu)化數(shù)據(jù)特點,提出一種XML半結(jié)構(gòu)化數(shù)據(jù)在關(guān)系數(shù)據(jù)庫中的存儲方法。本文在XML向結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換階段,根據(jù)XSD文檔,將其所包含的樹形結(jié)構(gòu)轉(zhuǎn)成關(guān)系型結(jié)構(gòu),并在關(guān)系數(shù)據(jù)庫中生成二維表格庫,然后將XML文檔中相應(yīng)的元數(shù)據(jù)填入到所生成的關(guān)系型表格中,完成從XML文檔到結(jié)構(gòu)化數(shù)據(jù)的轉(zhuǎn)換,如圖1所示。
表1 XSD文檔擬提取元數(shù)據(jù)信息
圖1 樹形結(jié)構(gòu)到關(guān)系型結(jié)構(gòu)轉(zhuǎn)換示意圖
圖2為非結(jié)構(gòu)化數(shù)據(jù)到CSDB的完整轉(zhuǎn)換過程。Word文檔使用XSD來進(jìn)行XML定制,然后提取Word的內(nèi)容填充到XML當(dāng)中。在CSDB中創(chuàng)建表庫并將XML中的元數(shù)據(jù)填入到CSDB中對應(yīng)的字段。圖片和多媒體只需要提取文件名和路徑信息,其他步驟與Word的轉(zhuǎn)換步驟類似。本文在以上分析的基礎(chǔ)上,采用Java技術(shù)實現(xiàn)轉(zhuǎn)換功能。
圖2 樹形結(jié)構(gòu)到關(guān)系型結(jié)構(gòu)轉(zhuǎn)換示意圖
綜合保障體系中常見的非結(jié)構(gòu)化數(shù)據(jù)包括Word文檔、圖片和音視頻多媒體文件,下面分別進(jìn)行說明。
(1)對于Word文檔,Microsoft Office軟件已經(jīng)全面支持Office系列文檔向XML文檔的轉(zhuǎn)換,但是這種方式轉(zhuǎn)換出來的XML文檔比較龐大,造成了嚴(yán)重的代碼冗余。本文提取Word文檔使用了POI (解析Office文檔的開放源代碼)和DOM4J (解析XML文檔的開放源代碼)。讀取完成后程序按照XML的語法要求將Word文檔內(nèi)容進(jìn)行轉(zhuǎn)換,最后再將轉(zhuǎn)換得到的結(jié)果寫入XML文檔中就完成了Word文檔到XML文檔的轉(zhuǎn)換[4]。
(2)圖片和多媒體文件要提取的元數(shù)據(jù)信息只有兩個:文件名和文件存儲路徑。
圖3為提取XML信息的流程圖。開始階段,程序會先根據(jù)文件格式判斷文件類型。如果是Word文檔,就調(diào)用XSD文件,提取Word文檔信息,生成XML文件,然后再轉(zhuǎn)存在CSDB中;如果不是多媒體文件,就提取文件名和路徑,存儲在XML中,最后轉(zhuǎn)存在CSDB中。
圖3 非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為XML的流程圖
圖4 XML轉(zhuǎn)CSDB的流程圖
完成非結(jié)構(gòu)化數(shù)據(jù)到XML文檔的轉(zhuǎn)換后,需要將產(chǎn)生的XML文檔轉(zhuǎn)存到CSDB中。本文采用模型驅(qū)動[4]的方式,根據(jù)XSD文件在關(guān)系數(shù)據(jù)庫中生成對應(yīng)的二維表庫,并根據(jù)上下文關(guān)系確定各個表格之間的從屬關(guān)系,然后將對應(yīng)XML文檔中的元數(shù)據(jù)填充到關(guān)系數(shù)據(jù)庫中,完成XML文檔到結(jié)構(gòu)化數(shù)據(jù)的轉(zhuǎn)換。圖4為生成CSDB數(shù)據(jù)的流程圖。
實驗環(huán)境為Windows 7操作系統(tǒng)、MyEclipse 10.0 Java IDE工具、Oracle 11g數(shù)據(jù)庫系統(tǒng)和SqlDeveloper 6.0數(shù)據(jù)庫管理工具。
圖5為非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換系統(tǒng)界面。以下是該系統(tǒng)的操作步驟。
(1)首先選擇擬提取信息的文件,然后選擇要用到的XSD文件,最后填入生成的XML文件的路徑。完成后,點擊“開始生成XML文檔”按鈕,完成從非結(jié)構(gòu)化數(shù)據(jù)到XML文檔的提取過程。
(2)打開XML文檔,對生成的結(jié)果進(jìn)行必要的修改。
(3)點擊“生成CSDB數(shù)據(jù)”按鈕,完成從XML文檔到CSDB數(shù)據(jù)的轉(zhuǎn)換。
圖5 非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換系統(tǒng)界面圖
(1)Word文檔
本文使用中國工程物理研究院技術(shù)報告模板作為實驗輸入來驗證輸出結(jié)果是否達(dá)到預(yù)期。報告模板中包含了題目、密級、編寫人、數(shù)據(jù)模塊編碼、發(fā)布日期、版本號等信息。
將上述文檔作為輸入,生成的XML文件的部分代碼如下所示:
可以看到該轉(zhuǎn)換方法已經(jīng)將數(shù)據(jù)模塊編碼、題目、密級、發(fā)布日期、編寫人等信息正確識別并提取了出來,按照固定的格式填寫在XML文檔中。
根據(jù)生成的XML文件,在CSDB中共生成了3個表:IDSTATUS、DMADDRES和STATUS。其中,IDSTATUS表包含了DMADDRES和STATUS表;DMADDRES表包含了數(shù)據(jù)模塊編碼、題目、發(fā)布日期等信息;STATUS表包含了密級、發(fā)布單位、適用性等信息。
(2)圖片和多媒體
圖片和多媒體文件要抽取的信息只有兩項:文件名和文件存儲路徑。經(jīng)過信息抽取,文件名和存儲路徑信息被正確識別并保存在CSDB中MULTIMEDIA表格里。
通過實驗數(shù)據(jù)可以看到,Word文檔和圖片多媒體文件的屬性信息已經(jīng)被提取并存儲在CSDB相關(guān)的表格中,實驗結(jié)果符合要求。
本文針對IETM系統(tǒng)數(shù)據(jù)錄入過程中出現(xiàn)的非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換問題,提出采用“非結(jié)構(gòu)化數(shù)據(jù)-XML文檔-結(jié)構(gòu)化數(shù)據(jù)”的方式,以XML和XSD文檔為基礎(chǔ),提取非結(jié)構(gòu)化資料的元數(shù)據(jù)信息并轉(zhuǎn)存到CSDB中,為IETM系統(tǒng)數(shù)據(jù)錄入問題提供一種解決方法。
[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] 萬里鵬. 非結(jié)構(gòu)化到結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換的研究與實現(xiàn)[D]. 成都:西南交通大學(xué), 2013.
[5] 李曉麗. 異構(gòu)數(shù)據(jù)集成技術(shù)在物聯(lián)網(wǎng)中的研究與應(yīng)用[D]. 北京:北京郵電大學(xué), 2012.
[6] 文龍. XML與非結(jié)構(gòu)化數(shù)據(jù)管理[J]. 電腦知識與技術(shù), 2009, 5(6):1306-1308.
[7] 閆璐. 基于XML的非結(jié)構(gòu)化數(shù)據(jù)管理的研究與應(yīng)用[D]. 北京:首都師范大學(xué), 2013.
[8] 胥昊. 基于地理信息系統(tǒng)的軌道交通數(shù)據(jù)集成方法研究[J]. 都市快軌交通, 2016, 29(2):44-47.
[9] 馮國臻, 白碩, 程學(xué)旗. 異構(gòu)數(shù)據(jù)統(tǒng)一檢索技術(shù)研究與系統(tǒng)實現(xiàn)[J]. 微電子學(xué)與計算機(jī), 2001, 18(5):38-40.
[10] 張枝令. 結(jié)構(gòu)化數(shù)據(jù)及非結(jié)構(gòu)化數(shù)據(jù)的分類方法[J]. 寧德師范學(xué)院學(xué)報(自然科學(xué)版), 2007, 19(4):417-420.
[11] 裴松, 武彤. 擴(kuò)展哈弗曼前綴編碼實現(xiàn)XML數(shù)據(jù)與關(guān)系數(shù)據(jù)轉(zhuǎn)換[J]. 微型機(jī)與應(yīng)用, 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的數(shù)據(jù)轉(zhuǎn)換方法的設(shè)計與實現(xiàn)[J].微型機(jī)與應(yīng)用,2017,36(20):30-33,38.
2017-03-30)
秦英(1986-),男,碩士,主要研究方向:交互式電子手冊,裝備綜合保障。
馬永起(1986-),男,碩士,主要研究方向:交互式電子手冊,裝備綜合保障。
蒙立榮(1985-),男,碩士,主要研究方向:交互式電子手冊,裝備綜合保障。
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2017年20期