摘 要:首先給出基于XML的交互式電子技術(shù)手冊(cè)(IETM)的概念,介紹XML文檔的存儲(chǔ)格式。在分析XML數(shù)據(jù)庫(kù)模型和Tamino系統(tǒng)框架的基礎(chǔ)上構(gòu)建以Tamino為核心基于XML的IETM數(shù)據(jù)庫(kù),詳細(xì)闡述該數(shù)據(jù)庫(kù)的結(jié)構(gòu)組成和各模塊功能,并對(duì)XML格式的IETM技術(shù)文檔類型定義和數(shù)據(jù)的存儲(chǔ)和檢索進(jìn)行初探。
關(guān)鍵詞:Tamino;XML;IETM;數(shù)據(jù)庫(kù)模型
中圖分類號(hào):TP319,TP392文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004-373X(2008)08-103-03
Applicationof Tamino in the Interactive Electronic Technical Manual Based on XML
YU Pengfei,SHI Heping
(Xi′an Communication Institute,Xi′an,710106,China)
Abstract:The concept of the interactive electronic technical manual based on XML is provided at first,and the memory form of XML file is introduced.On the basis of analyzing XML database model and Tamino systematic frame,the model taking Tamino as the core of IETM database based on XML is constructed,structure making up and every module function of this database is explained in detail,and file defined type of IETM technological of XML format and search with the data and visited to the database are discussed simply.
Keywords:Tamino;XML;IETM;database model
XML(eXtensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言)技術(shù)的日趨成熟以及交互式電子技術(shù)手冊(cè)(Interactive Electronic Technical Manual,IETM)的不斷發(fā)展為XML技術(shù)和IETM的融合提供了技術(shù)支撐,而純XML數(shù)據(jù)庫(kù)Tamino則是XML技術(shù)和IETM融合的絕佳橋梁。
1 基于XML的交互式電子技術(shù)手冊(cè)
20世紀(jì)70年代,美軍提出了技術(shù)手冊(cè)數(shù)字化的思想,交互式電子技術(shù)手冊(cè)(Interactive Electronic Technical Manual,IETM)是其思想的體現(xiàn)。20世紀(jì)90年代美國(guó)防部為IETM制定了完整的技術(shù)規(guī)范。目前,IETM已成為各國(guó)軍方競(jìng)相發(fā)展的領(lǐng)域,而且在民用大型機(jī)械設(shè)備上也有廣闊應(yīng)用前景。在IETM的研發(fā)方面,國(guó)外發(fā)達(dá)國(guó)家已有一些成熟的IETM創(chuàng)作工具,如美國(guó)波音公司的Quill 21,韓國(guó)的“先進(jìn)IETM制作工具”等[1]。但這些工具大多使用SGML文檔存儲(chǔ)數(shù)據(jù),由于SGML語(yǔ)法冗長(zhǎng)、結(jié)構(gòu)復(fù)雜,研制基于SGML的IETM都將耗費(fèi)大量財(cái)力,因此該類IETM只限在美國(guó)軍方或大型跨國(guó)公司使用。為了降低IETM的開發(fā)成本,發(fā)展IETM的網(wǎng)絡(luò)應(yīng)用,針對(duì)SGML的缺陷,出現(xiàn)了將XML應(yīng)用于IETM的趨勢(shì)。
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,XML已經(jīng)成為互聯(lián)網(wǎng)環(huán)境中數(shù)據(jù)描述和交換的標(biāo)準(zhǔn)。XML語(yǔ)法簡(jiǎn)單,被許多商業(yè)軟件支持,具有標(biāo)記可擴(kuò)展(用戶可自定義標(biāo)記)、數(shù)據(jù)和其顯示樣式分離、強(qiáng)大的超級(jí)聯(lián)接功能,是一套跨平臺(tái)、跨網(wǎng)絡(luò)、跨程序語(yǔ)言的數(shù)據(jù)描述方式,能夠高效地組織大量數(shù)據(jù)。
所謂基于XML的IETM,就是在IETM中用XML取代SGML來(lái)組織和管理數(shù)據(jù)、構(gòu)建純XML數(shù)據(jù)庫(kù)、實(shí)現(xiàn)IETM技術(shù)數(shù)據(jù)的傳輸和交互。在IETM創(chuàng)作過(guò)程中,IETM數(shù)據(jù)庫(kù)設(shè)計(jì)是關(guān)鍵,那么制作基于XML的IETM的關(guān)鍵就是構(gòu)建純XML數(shù)據(jù)庫(kù)。
2 XML數(shù)據(jù)庫(kù)模型
2.1 XML文檔的中心內(nèi)容
XML文檔可以分為“以數(shù)據(jù)為中心”和“以文檔為中心” 2種類型:
(1) 以數(shù)據(jù)為中心(datacentric)
“以數(shù)據(jù)為中心”的XML文檔著重于文檔中的數(shù)據(jù),而非文檔格式,如航班信息、銷售定單、科學(xué)計(jì)算結(jié)果等。這種文檔的數(shù)據(jù)一般由機(jī)器產(chǎn)生,來(lái)源于傳統(tǒng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。主要應(yīng)用在電子商務(wù)、ERP、EAI等領(lǐng)域,集成不同數(shù)據(jù)源的數(shù)據(jù)、交換信息。
(2) 以文檔為中心(documentcentric)
“以文檔為中心”的XML文檔主要是用來(lái)表示人類自然語(yǔ)言描述的數(shù)據(jù),如電子郵件、書和用戶手冊(cè)。這種文檔具有更復(fù)雜的結(jié)構(gòu),一般不是機(jī)器自動(dòng)產(chǎn)生。很明顯,IETM是技術(shù)手冊(cè),是“以文檔為中心”的XML文檔。
對(duì)于“以數(shù)據(jù)為中心”的XML文檔,支持XML的傳統(tǒng)數(shù)據(jù)庫(kù)可以方便地將其中的數(shù)據(jù)抽取,存儲(chǔ)在傳統(tǒng)數(shù)據(jù)庫(kù)中,但對(duì)于“以文檔為中心”的XML文檔則顯得力不從心。
2.2 XED和NXD
事實(shí)上,XML作為數(shù)據(jù)交換的標(biāo)準(zhǔn),更著重于統(tǒng)一數(shù)據(jù)格式,而不是提供數(shù)據(jù)庫(kù)的特性。因此在XML應(yīng)用中,數(shù)據(jù)庫(kù)作為數(shù)據(jù)管理的位置依然沒有改變。
XML數(shù)據(jù)本身是如圖1所示的樹形結(jié)構(gòu),不同于關(guān)系模型中的二維表結(jié)構(gòu),這種差別反映在數(shù)據(jù)庫(kù)產(chǎn)品處理XML數(shù)據(jù)的技術(shù)上,形成2大陣營(yíng):支持XML的數(shù)據(jù)庫(kù)系統(tǒng)(XMLEnabled DBMS,XED)和 純XML數(shù)據(jù)庫(kù)系統(tǒng)(Native XML DBMS,NXD)。
圖1 XML數(shù)據(jù)的樹形結(jié)構(gòu)
XED是在原有數(shù)據(jù)庫(kù)基礎(chǔ)上擴(kuò)展XML支持模塊,完成XML數(shù)據(jù)和數(shù)據(jù)庫(kù)之間的格式轉(zhuǎn)換和傳輸。從存儲(chǔ)粒度上,可以把整個(gè)XML文檔作為關(guān)系數(shù)據(jù)庫(kù)表中一行,或把XML文檔進(jìn)行解析后,存儲(chǔ)到相應(yīng)的表格中。為了支持W3C的一些XML操作標(biāo)準(zhǔn),如XPath,XED提供一些新的原語(yǔ)(如Oracle9iR2增加了一些數(shù)據(jù)包來(lái)操作XML數(shù)據(jù)等),并優(yōu)化XML處理模塊。
NXD則出現(xiàn)在XML數(shù)據(jù)處理領(lǐng)域內(nèi),專門為存儲(chǔ)XML文檔設(shè)計(jì),也兼有一般數(shù)據(jù)庫(kù)的特性,例如支持事務(wù)、并發(fā)控制、查詢語(yǔ)言、安全機(jī)制,二次開發(fā)接口等[2]。惟一的不同之處在于其內(nèi)部存儲(chǔ)模型是基于XML文檔樹形結(jié)構(gòu),而非關(guān)系模型。采用層次數(shù)據(jù)存儲(chǔ)模型,保持XML文檔的樹形結(jié)構(gòu),省掉XML文檔和傳統(tǒng)數(shù)據(jù)庫(kù)的數(shù)據(jù)轉(zhuǎn)換過(guò)程。相對(duì)于XED,具有XML文檔存取無(wú)需模式轉(zhuǎn)換,存取速度快,對(duì)格式復(fù)雜的XML文檔支持比XED要好,支持大部分最新的XML技術(shù)標(biāo)準(zhǔn)等優(yōu)勢(shì)。更利于基于XML的IETM數(shù)據(jù)庫(kù)的構(gòu)建。
3 基于XML的IETM數(shù)據(jù)庫(kù)在Tamino上的實(shí)現(xiàn)
3.1 Tamino數(shù)據(jù)庫(kù)簡(jiǎn)介
Tamino由Software AG公司開發(fā)的一個(gè)純XML數(shù)據(jù)庫(kù),是NXD的一種[3]。通過(guò)使用XML作為存儲(chǔ)的元結(jié)構(gòu),各種格式(文本、聲音、圖像或視頻等)、各種來(lái)源(NXD、現(xiàn)有文檔及RDBMS等各種數(shù)據(jù)庫(kù)系統(tǒng))的數(shù)據(jù),都可以統(tǒng)一的XML格式進(jìn)行存取。作為一個(gè)完全的XML數(shù)據(jù)庫(kù),Tamino XML Database能保存層次結(jié)構(gòu)的XML文檔而無(wú)需將其轉(zhuǎn)化為關(guān)系型、基于表的格式,而是通過(guò)基于一個(gè)小但極快的XML引擎,直接對(duì)XML數(shù)據(jù)進(jìn)行存儲(chǔ)、集成和交換。因?yàn)椴恍枰~外的層做XML的數(shù)據(jù)轉(zhuǎn)化,所以可以獲得高性能和擴(kuò)展性。
Tamino除了能夠存儲(chǔ)和訪問XML外,還提供了相關(guān)的各種組件和機(jī)制,例如開放數(shù)據(jù)庫(kù)連接(Open Database Connectivity,ODC)、兼容Unicode、HTTP通信、處理nonXML數(shù)據(jù)的能力以及強(qiáng)大的XML查詢功能。
3.2 Tamino數(shù)據(jù)庫(kù)的結(jié)構(gòu)功能
Tamino數(shù)據(jù)庫(kù)主要包括5個(gè)部分:XML Engine,Tamino XNode,Data Map,Tamino XTension和Tamino Manager。如圖2所示:
圖2 Tamino組成結(jié)構(gòu)
[BT(4+1]3.2.1 [ZK(]Tamino數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織——XML Engine[BT)]
XML Engine是一個(gè)高效的服務(wù)器,他允許Tamino將XML對(duì)象存儲(chǔ)為其本來(lái)面貌(放置在Native XML Data Store中),并可從Native XML Data Store或其他數(shù)據(jù)源中查詢這些XML對(duì)象。他是基于管理員定義在數(shù)據(jù)映射(Data Map)中的模式處理存儲(chǔ)和查詢。
3.2.2 訪問其他數(shù)據(jù)庫(kù)——Tamino XNode
Tamino XNode的功能是將傳統(tǒng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)映射為XML結(jié)構(gòu),為用戶訪問異種傳統(tǒng)數(shù)據(jù)庫(kù)提供接口,用戶可存取散布于多個(gè)異質(zhì)數(shù)據(jù),這可包含存儲(chǔ)在數(shù)據(jù)庫(kù)、檔案系統(tǒng)中或有信息傳遞系統(tǒng)等提供的數(shù)據(jù)。XNode將這些數(shù)據(jù)展示給應(yīng)用程序,就好像這些數(shù)據(jù)來(lái)自單一數(shù)據(jù)庫(kù)或服務(wù)器一樣。Tamino以統(tǒng)一的XML數(shù)據(jù)模型提供給XNode,多個(gè)數(shù)據(jù)來(lái)源的數(shù)據(jù)可以表示為互相一致的XML對(duì)象。
3.2.3 映射規(guī)則——Data Map
Data Map中定義傳統(tǒng)數(shù)據(jù)庫(kù)和XML結(jié)構(gòu)的映射規(guī)則[4]。這些模式主要是由管理員定制,包含存儲(chǔ)和查詢及組織生成XML對(duì)象的規(guī)則。這些模式的制定可以由圖形工具支持并保持其模式樹的正確性。
[BT(4+1]3.2.4 [ZK(]將數(shù)據(jù)映射到相關(guān)的功能—Tamino XTension[BT)]
XTension則是Tamino的擴(kuò)展功能插件,使用戶可以執(zhí)行自定義功能。
3.2.5 中心管理器——Tamino Manager
Manager是Tamino的中心管理器,他提供了良好的圖形用戶界面。
[BT(3+1]3.3 [ZK(]以Tamino為核心的基于XML的IETM數(shù)據(jù)庫(kù)模型[BT)]
考慮到IETM技術(shù)數(shù)據(jù)的復(fù)雜多樣性和XML在表現(xiàn)某些數(shù)據(jù)方面存在的局限性,構(gòu)建基于XML的IETM數(shù)據(jù)庫(kù)應(yīng)該以Tamino為核心數(shù)據(jù)庫(kù),同時(shí)兼用傳統(tǒng)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)模型如圖3所示:
圖3 以Tamino為核心的基于XML的IETM數(shù)據(jù)庫(kù)結(jié)構(gòu)
在該數(shù)據(jù)庫(kù)中對(duì)IETM技術(shù)數(shù)據(jù)的處理都是以XML文檔作為元數(shù)據(jù)。其中電子格式文檔、紙質(zhì)文檔、多媒體文檔等資料經(jīng)轉(zhuǎn)換器轉(zhuǎn)換分別以XML或SGML格式輸入至Native XML Data Store或傳統(tǒng)數(shù)據(jù)庫(kù)。傳統(tǒng)數(shù)據(jù)庫(kù)只對(duì)不便于用XML表現(xiàn)的數(shù)據(jù)進(jìn)行存儲(chǔ),具體操作仍由Tamino中的XNode模塊來(lái)調(diào)用。
3.3.1 DTD和Schema
DTD(文檔類型定義)是W3C為了支持SGML而開發(fā)的,他是一套關(guān)于標(biāo)記符的語(yǔ)法規(guī)則,其定義了可用在文檔中的元素、屬性和實(shí)體,以及這些內(nèi)容之間的相互關(guān)系,指定文檔結(jié)構(gòu)的一系列規(guī)則。每個(gè)有效的SGML文檔必須指定他對(duì)于哪個(gè)DTD有效。XML從SGML繼承了DTD。
Schema(模式定義)所起的作用與DTD相同,也是由W3C開發(fā)的。與DTD相比,Schema具有如下的幾個(gè)優(yōu)點(diǎn):
(1) DTD是用一種與XML不同的語(yǔ)法編寫的,而Schema是用一種類XML的語(yǔ)言;
(2) DTD中所有的聲明都是全局聲明,而Schema則既有全局聲明也有局部聲明,應(yīng)用更具靈活性;
(3) DTD不能對(duì)給定的元素或?qū)傩缘臄?shù)據(jù)類型定義,而Schema具有一套完整的數(shù)據(jù)類型系統(tǒng),他允許對(duì)數(shù)據(jù)類型如整型,時(shí)間型或字符串型進(jìn)行詳細(xì)定義。
結(jié)合IETM技術(shù)數(shù)據(jù)的復(fù)雜多樣性和純XML數(shù)據(jù)庫(kù)Tamino的實(shí)際應(yīng)用情況,選用Schema對(duì)XML文檔進(jìn)行模式定義更有利于IETM技術(shù)數(shù)據(jù)的處理。
3.3.2 文檔類型定義
XML文檔作為該數(shù)據(jù)庫(kù)的元數(shù)據(jù),是結(jié)構(gòu)化且有效的XML文檔,因此給不同類型的信息定義相應(yīng)的XML文檔結(jié)構(gòu)很重要。下面采用Schemas描述XML文檔的結(jié)構(gòu)以及XML文檔中元素、屬性等的數(shù)值類型。
該數(shù)據(jù)庫(kù)中信息主要包括:備件信息、技術(shù)資料以及故障診斷等。為這一類數(shù)據(jù)編寫Schema模式文件doc.xsd如下:
3.3.3 存儲(chǔ)及檢索
在該數(shù)據(jù)庫(kù)中,由Tamino內(nèi)核提供的編程接口中包括2種Mapping函數(shù),其中Mapping In函數(shù)用于將XML數(shù)據(jù)存入Tamino時(shí),由文檔處理器調(diào)用;而另一種Mapping Out函數(shù)則在從Tamino檢索數(shù)據(jù)時(shí)調(diào)用。Tamino X Query使Tamino擁有直接XML檢索和特殊檢索的能力,他是在W3C的X Query標(biāo)準(zhǔn)上實(shí)現(xiàn)的,是一種建立在XML標(biāo)準(zhǔn)基礎(chǔ)上的XML查詢語(yǔ)言,可以比X path 1.0等更好地滿足NXD的查詢需求。Tamino X Query查詢語(yǔ)言強(qiáng)大而簡(jiǎn)短,可進(jìn)入任意深度。
查詢的結(jié)果是一個(gè)結(jié)構(gòu)完整的XML文件。如果查詢返回多于一個(gè)的文檔(或者文檔片斷),他們的簡(jiǎn)單合并無(wú)法返回一個(gè)結(jié)構(gòu)正確的XML,因?yàn)閄ML只有一個(gè)根節(jié)點(diǎn)。為此,Tamino把結(jié)果集合包含在一個(gè)系統(tǒng)設(shè)計(jì)的根節(jié)點(diǎn)中以保證查詢結(jié)果的正確返回。
4 結(jié) 語(yǔ)
Tamino能充分挖掘XML文檔對(duì)于表達(dá)各種數(shù)據(jù)類型,如關(guān)系型、文本、圖片、音頻、視頻等的能力,實(shí)現(xiàn)對(duì)XML規(guī)范數(shù)據(jù)的有效存儲(chǔ)和管理。
利用Tamino支撐基于XML的IETM數(shù)據(jù)庫(kù)可以高效進(jìn)行XML格式技術(shù)數(shù)據(jù)的存儲(chǔ)和查詢。誠(chéng)然Tamino在查詢的效率上還不如傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù),但可以肯定,Tamino的不斷完善將推動(dòng)基于XML的IETM不斷走向成熟。[LL]
參 考 文 獻(xiàn)
[1]宋建社,曹小平,曹耀欽,等.裝備維修信息化工程[M].北京:國(guó)防工業(yè)出版社,2005.
[2]劉剛,喻成.Native XML數(shù)據(jù)庫(kù)的研究與應(yīng)用[J].微機(jī)發(fā)展,2005,15(8):6567.
[3]司功閃,王鴻谷,徐捷.以XML為核心的Tamino數(shù)據(jù)庫(kù)的研究與分析[J].計(jì)算機(jī)工程,2004(16):7879.
[4]孫屏蹇.Tamino在電子病案中的應(yīng)用[J].醫(yī)學(xué)信息,2006,19(5):943944.
[5]郝森,朱戰(zhàn)立.對(duì)XML文檔結(jié)構(gòu)樹形表示的研究與實(shí)現(xiàn)\\[J\\].現(xiàn)代電子技術(shù),2007,30(18):8384,90.
作者簡(jiǎn)介 于鵬飛 男,1982年出生,內(nèi)蒙古集寧人,在讀碩士研究生。主要從事軍事通信裝備信息化管理方面的研究。
時(shí)和平 男,1960年出生,山東單縣人,教授。主要從事軍事通信裝備發(fā)展與體制方面的研究。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文