已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
華中科技大學(xué)碩士學(xué)位論文 摘要 萬維網(wǎng)的相關(guān)技術(shù)是互聯(lián)網(wǎng)領(lǐng)域發(fā)展最快的技術(shù)之一。網(wǎng)絡(luò)上已經(jīng)和正在產(chǎn)生的 大量的數(shù)據(jù)主要是超文本標(biāo)識(shí)語言格式的數(shù)據(jù),可以預(yù)計(jì)將來的網(wǎng)絡(luò)上還將產(chǎn)生大量 的數(shù)據(jù),不過越來越多的將是擴(kuò)展標(biāo)識(shí)語言格式。如何有效地存儲(chǔ)和檢索網(wǎng)絡(luò)上的擴(kuò) 展標(biāo)識(shí)語言格式的數(shù)據(jù)成為一個(gè)研究熱點(diǎn)。由于數(shù)據(jù)庫技術(shù)不斷趨于成熟,一種自然 的想法是采用數(shù)據(jù)庫對(duì)擴(kuò)展標(biāo)識(shí)語言格式的數(shù)據(jù)進(jìn)行存儲(chǔ)和查詢等操作。其基本思想 就是利用擴(kuò)展標(biāo)識(shí)語言格式的數(shù)據(jù)模式到數(shù)據(jù)庫的數(shù)據(jù)模式的映射來存儲(chǔ)。但是因?yàn)?使用的數(shù)據(jù)庫不同,在具體實(shí)現(xiàn)技術(shù)上不盡相同。關(guān)系數(shù)據(jù)庫是當(dāng)前最成熟、最流行 的數(shù)據(jù)庫技術(shù)。選擇了關(guān)系數(shù)據(jù)庫作為研究擴(kuò)展標(biāo)識(shí)語言格式的數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫環(huán) 境,主要研究數(shù)據(jù)模式映射和存儲(chǔ)的方法。 描述擴(kuò)展標(biāo)識(shí)語言文檔的模式結(jié)構(gòu)的方式有文檔類型描述、擴(kuò)展標(biāo)識(shí)語言模式、 簡化的擴(kuò)展標(biāo)識(shí)語言數(shù)據(jù)和面向?qū)ο蟮臄U(kuò)展標(biāo)識(shí)語言模式等,其中使用得最廣泛的是 文檔類型描述和擴(kuò)展標(biāo)識(shí)語言模式。雖然文檔類型描述是現(xiàn)在使用的最多的擴(kuò)展標(biāo)識(shí) 語言結(jié)構(gòu)的文件。但是擴(kuò)展標(biāo)識(shí)語言模式取代文檔類型描述成為擴(kuò)展標(biāo)識(shí)語言的主要 模式文件已是大勢(shì)所趨。選擇了擴(kuò)展標(biāo)識(shí)語言模式文件作為擴(kuò)展標(biāo)識(shí)語言的模式結(jié)構(gòu) 描述文件來進(jìn)行研究, 在分析國內(nèi)外典型的基于關(guān)系模式的擴(kuò)展標(biāo)識(shí)語言格式的數(shù)據(jù)存儲(chǔ)方法的基礎(chǔ) 上,給出了利用擴(kuò)展標(biāo)識(shí)語言模式映射擴(kuò)展標(biāo)識(shí)語言格式的數(shù)據(jù)模式到關(guān)系模式,從 而把擴(kuò)展標(biāo)識(shí)語言格式的數(shù)據(jù)存儲(chǔ)到關(guān)系數(shù)據(jù)庫中的方法。描述了整個(gè)映射過程的步 驟,設(shè)計(jì)了一個(gè)擴(kuò)展標(biāo)識(shí)語言格式的數(shù)據(jù)存取的模型,并且提供了通過擴(kuò)展標(biāo)識(shí)語言 模式來把擴(kuò)展標(biāo)識(shí)語言格式的數(shù)據(jù)存儲(chǔ)到關(guān)系數(shù)據(jù)庫的算法,最后利用微軟n e t 環(huán)境 對(duì)這個(gè)方案進(jìn)行了初步實(shí)現(xiàn)。 關(guān)鍵詞:擴(kuò)展標(biāo)識(shí)語言,數(shù)據(jù)庫,擴(kuò)展標(biāo)識(shí)語言模式,關(guān)系模式,文檔類型描述 華中科技大學(xué)碩士學(xué)位論文 a b s tr a c t t h et e c h n o l o g i e so nw w wa r et h ef a s t e s td e v e l o p e dt e c h n o l o g i e so ni n t e m e t t h e r e a r ep l e n t yo fd a t ao nw 曲n o w , m o s to ft h e ma r eo fh t m lf o r m a t a n di ti ss u r et h a tt h e r e w i l lb em o r ea n dm o r ed a t aa p p e a r i n go nw e b b u tm o s to ft h e mw i l lb eo fx m lf o r m a t h o wt os t o r ea n dq u e r yx m ld a t ae f f i c i e n t l yi sb e c o m i n gu r g e n t b e c a u s et h ed a t a b a s e t e c h n o l o g i e sa r eh i g h l yd e v e l o p e d ,i t sn a t u r a lt os t o r ex m l d a t ai nd a t a b a s e s a n dt h eb a s i c p r i n c i p l ei st op r o c e s st h es t o r a g eb ym a p p i n g t h ex m ld a t am o d ei n t ot h ed a t a b a s ed a t a m o d e b u ta l lo f t h em e t h o d sd i f f e ri nd e t a i lf o rt h ed i f f e r e n td a t a b a s e si nu s e t h er e l a t i o n a l d a t a b a s ei st h em o s tm a t u r ea n dp o p u l a rd a t a b a s et e c h n o l o g yn o w a d a y s t h er e l a t i o n a l d a t a b a s ei sc h o s e na st h ed a t a b a s ee n v i r o n m e n tf o rs t o r i n gx m ld a t a ,a n dt h er e s e a r c h f o c u s e so nt h em e t h o df o rm a p p i n gt h ex m ld a t am o d et or e l a t i o n a lm o d e t h e r ea r es o m ef i l e sw h i c h d e s c r i p tt h em o d e o rs t r u c t u r eo fx m l d a t a ,s u c ha sd t d , x m ls c h e m a x d ro rs o xa n ds oo n d t da n dx m ls c h e m aa r et h em o s tp o p u l a ro n e s a l t h o u g hd t d i st h ed o m i n a n tx m ld a t am o d ed e s c r i p t i o nf i l e ,i ti sc e r t a i nt h a tx m l s c h e m aw i l lb et h em a i nx m lm o d ef i l ei nt h en e a rf u t u r e t h ex m ls c h e m af i l e i s s e l e c t e da st h ex m lm o d e s t r u c t u r ed e s c r i p t i o nf i l e b a s e do nt h ea n a l y s i s i n ga l lt h er e s e a r c ho f s t o r i n gx m l d a t ai nr e l a t i o n a ld a t a b a s e s h o m ea n da b r o a d ,am o d e li sp r o p o s e dw h i c hi sf o rs t o r i n gx m ld a t ai nr e l a t i o n a ld a t a b a s e s b yx m l s c h e m a , a n dt h es t e p st om a k ei ti sp u tf o r w a r dw h e r e a f f e r t h e naa l g o r i t h mo i l m o d em a p p i n gi s g i v e n i nt h ee n d ,t h i sm o d e li si m p l e m e n t e di nap r 0 3 e c tn a r n ea m s w h i c hi sd e v e l o p e di nm i c r o s o f l n e tf r a m e w o r k k e yw o r d s :x m l ,d a t a b a s e ,x m l s c h e m a ,r e l a t i o n a lm o d e ,d t d i l 獨(dú)創(chuàng)性聲明 本人聲明所里交的學(xué)位論文是我個(gè)人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得 的研究成果。盡我所知,除文中已經(jīng)標(biāo)明引用的內(nèi)容外,本論文不包含任何其他 個(gè)人或集體已經(jīng)發(fā)表或撰寫過的研究成果。對(duì)本文的研究做出貢獻(xiàn)的個(gè)人和集體, 均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律結(jié)果由本人承擔(dān)。 學(xué)位論文作者簽名:育甚j 雖 日期:力一牛年年月z ,e l 學(xué)位論文版權(quán)使用授權(quán)書 本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,即:學(xué)校 有權(quán)保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱 和借閱。本人授權(quán)華中科技大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù) 據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。 保密口,在年解密后適用本授權(quán)書。 本論文屬于 不保密口。 ( 請(qǐng)?jiān)谝陨戏娇騼?nèi)打“4 ”) 學(xué)位論文作者簽名:貢- 是紜 日期:辦一三卜年- 4 - 月2 7 日 揪燃:影乙。 蹴砌。年p 瑪鏟 | | 華中科技大學(xué)碩士學(xué)位論文 1 緒論 隨著i n t e m e t 的普及,它已經(jīng)與人們的生活息息相關(guān)。隨著w e b 技術(shù)的發(fā)展x m i 。 語言應(yīng)運(yùn)而生并且得到了廣泛到應(yīng)用。本文主要是在分析x m l 數(shù)據(jù)的結(jié)構(gòu)特點(diǎn)的基 礎(chǔ)上,研究了x m l 數(shù)據(jù)存儲(chǔ)到關(guān)系數(shù)據(jù)庫中的方法。 1 1 課題背景 為了在w e b 上表示信息【l j ,人們先后發(fā)明了s g m l ( s t a n d a r d g e n e r a l i z e d m a r k u p l a n g u a g e ,標(biāo)準(zhǔn)通用標(biāo)記語言) 、h t m l ( h y p e r t e x tm a r k u pl a n g u a g e ,超文本標(biāo)記語 言) 語言。s g m l 具有可擴(kuò)展性、結(jié)構(gòu)性以及可支持性。但是過于繁復(fù),價(jià)格昂貴, 不太適合w e b 開發(fā),難以得到大范圍的應(yīng)用。h t m l 語法精煉,使用容易,在擴(kuò)展性 方面、可交換性等方面卻存在許多不足。隨著信息來源渠道及信息顯示媒體的日益多 樣化,我們需要尋找新的信息表示方法,使得信息更易于存儲(chǔ)和查找【2 l 。這對(duì)于充分 高效地利用信息資源有著重要的意義。在這種背景下,x m l 應(yīng)運(yùn)而生口j ,成為w 3 c 的推薦標(biāo)準(zhǔn)【4 1 。x m l 也是s g m l 的一個(gè)子集,對(duì)s g m l 進(jìn)行了精簡,而在語言的易 用性、易懂性等方面做了較大改進(jìn)睜,6 j 。 盡管x m l 設(shè)計(jì)的初衷是用來進(jìn)行w e b 數(shù)據(jù)的標(biāo)識(shí),但是由于x m l 優(yōu)良的特性, 使得x m l 的應(yīng)用遠(yuǎn)遠(yuǎn)超過w e b 信息的標(biāo)識(shí)?;赿 t d 或者x m ls c h e m a i ”,幾乎所 有的數(shù)據(jù)都可以用x m l 來表示。目前x m l 將成為新一代i n t e r n e t 數(shù)據(jù)組織和交換的 事實(shí)標(biāo)準(zhǔn),并且大量的x m l 數(shù)據(jù)將很快出現(xiàn)在w e b 上。因此,對(duì)于正在發(fā)展的x m l 技術(shù)和未來以x m l 數(shù)據(jù)為主體的w e b 數(shù)據(jù),如何利用已有的計(jì)算機(jī)技術(shù)( 例如數(shù)據(jù) 庫技術(shù)) 對(duì)它們進(jìn)行有效的存儲(chǔ)和查詢,使我們要迫切解決的問題。實(shí)質(zhì)上,x m l 為 w e b 的數(shù)據(jù)管理提供了新的數(shù)據(jù)模型,可以預(yù)見,很多成熟的數(shù)據(jù)庫技術(shù)將進(jìn)入w e b 信息處理領(lǐng)域,把w e b 變?yōu)橐粋€(gè)巨大的數(shù)據(jù)庫。x m l 是朝這個(gè)方向邁出的第一步。 這種變化給數(shù)據(jù)庫研究界帶來了巨大的機(jī)會(huì),使得將數(shù)據(jù)庫技術(shù)和w e b 數(shù)據(jù)管理相結(jié) 合成為可能。其中,利用x m l 數(shù)據(jù)的結(jié)構(gòu)性和數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)性的映射來進(jìn)行存 儲(chǔ)是切實(shí)可行的,并且得到了大量的研究。 華中科技大學(xué)碩士學(xué)位論文 本課題來源于湖北清江水電開發(fā)公司資產(chǎn)維護(hù)系統(tǒng)( a m s ) ,該系統(tǒng)是基于 m i c r o s o f t 的n e t 平臺(tái)的b s 結(jié)構(gòu)的企業(yè)信息系統(tǒng),它模擬電力企業(yè)生產(chǎn)過程,提供 對(duì)生產(chǎn)流程的控制及生產(chǎn)數(shù)據(jù)的信息化管理。a m s 由設(shè)備維護(hù)、運(yùn)行、物資、權(quán)限等 業(yè)務(wù)上相互獨(dú)立子系統(tǒng)構(gòu)成,各子系統(tǒng)之間通過x m lw e bs e r v i c e s 進(jìn)行交互并實(shí)現(xiàn)信 息共享。系統(tǒng)中大量的基于x m l 的數(shù)據(jù)通信和信息處理,本文力圖在s q l s e r v e r 2 0 0 0 的關(guān)系數(shù)據(jù)庫管理系統(tǒng)環(huán)境中通過擴(kuò)展實(shí)現(xiàn)對(duì)x m l 數(shù)據(jù)的存儲(chǔ)和檢索,且提出了一 個(gè)基于x m ls c h e m a 的對(duì)關(guān)系模式的x m l 數(shù)據(jù)存取模型和映射算法【8 】。 1 2 國內(nèi)外研究概況 利用數(shù)據(jù)庫技術(shù)來對(duì)x m l 數(shù)據(jù)進(jìn)行存儲(chǔ)和查詢等管理,這是當(dāng)前對(duì)x m l 數(shù)據(jù)的 存取技術(shù)研究的主要研究方法。 1 2 1x m i 數(shù)據(jù)存取技術(shù)研究成果概況 x m l 數(shù)據(jù)的存取方法的研究現(xiàn)在有很多種,并且所構(gòu)造的系統(tǒng)中x m l 數(shù)據(jù)自身 的結(jié)構(gòu)和數(shù)據(jù)庫數(shù)據(jù)模式的磨合程度不盡相同j t 9 ,因而構(gòu)造的系統(tǒng)也各有特點(diǎn),歸納 來看有以下幾種: 1 x m l 本原數(shù)據(jù)庫( n a t i v ex m ld a t a b a s e ,n x d ) 數(shù)據(jù)庫的根本設(shè)計(jì)目的是為存儲(chǔ)和處理x m l 文檔【l0 1 。它的基本存儲(chǔ)單元是x m l 文檔,通過x m l 相關(guān)的標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)庫的存儲(chǔ)。這種數(shù)據(jù)庫維持原有x m l 文檔的數(shù) 據(jù)結(jié)構(gòu)和相關(guān)的元數(shù)據(jù),而不關(guān)心數(shù)據(jù)的底層存儲(chǔ)格式( 關(guān)系數(shù)據(jù)庫或是面向?qū)ο髷?shù) 據(jù)庫) ,只能通過x m l 特有的相關(guān)技術(shù)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)。t a m i n o 、d b x m l 和x h i v e 都采用這種方法。 2 支持x m l 的數(shù)據(jù)庫( x m l e n a b l e dd a t a b a s e ,x e d b ) 它的基本數(shù)據(jù)存儲(chǔ)單位是x m l 數(shù)據(jù)( x m l 文檔所提供的數(shù)據(jù)) ,主要是通過增 加一個(gè)映射層來管理x m l 數(shù)據(jù)的存儲(chǔ)。數(shù)據(jù)首先要與一個(gè)明確的格式相匹配,符合 要求的才能根據(jù)預(yù)先定義好的規(guī)則映射到數(shù)據(jù)庫中( 關(guān)系數(shù)據(jù)庫或是面向?qū)ο髷?shù)據(jù) 庫) ,但可能會(huì)損失一部分元數(shù)據(jù)和最初的結(jié)構(gòu)。同時(shí)可從現(xiàn)有的數(shù)據(jù)庫中生成x m l 頁面,但不能保證與當(dāng)初存入的原始頁面完全符合。o r a c l e 、m i c r o s o n 和許多x m l 2 華中科技大學(xué)碩士學(xué)位論文 工具軟件都不同程度上支持這種功能。比如,b u r r e t i “】的x m l d b m s 就是一種x m i 。 文檔與關(guān)系數(shù)據(jù)庫之間進(jìn)行轉(zhuǎn)換的中間件。 在x m l d b m s 中,將x m l 文檔看作一個(gè)有詳細(xì)數(shù)據(jù)的對(duì)象樹,應(yīng)用對(duì)象一關(guān) 系映射理論將對(duì)象映射到關(guān)系數(shù)據(jù)庫中。它提出了一個(gè)映射工廠的概念,使得要存入 數(shù)據(jù)庫中的x m l 文檔與一個(gè)映射模型進(jìn)行匹配,當(dāng)需要進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí),協(xié)調(diào)模塊 首先根據(jù)d t d 文檔通過映射工廠的一個(gè)映射實(shí)體來描述d t d 與關(guān)系視圖的映射關(guān) 系,并對(duì)于需要特殊映射處理的數(shù)據(jù)產(chǎn)生元數(shù)據(jù)( 如列的數(shù)據(jù)類型) 和一些i n s e r t 、s e l e c t 等命令的一個(gè)實(shí)體對(duì)象,最后應(yīng)用組件( d b m st od o m 或d o m t od b m s ) 進(jìn)行有 詳細(xì)數(shù)據(jù)的文檔對(duì)象樹與數(shù)據(jù)庫的轉(zhuǎn)換。在將x m l 數(shù)據(jù)轉(zhuǎn)換到數(shù)據(jù)庫中時(shí),協(xié)調(diào)者 應(yīng)根據(jù)x m l 文檔建立一個(gè)對(duì)象模型樹( d o m ) ,并與映射實(shí)體一起提交給數(shù)據(jù)對(duì)象模 型到數(shù)據(jù)庫管理系統(tǒng)( d o mt od b m s ) 組件,該組件返回給協(xié)調(diào)者關(guān)于怎樣重新獲 取數(shù)據(jù)的信息。在從數(shù)據(jù)庫中獲取數(shù)據(jù)時(shí),協(xié)調(diào)者將映射實(shí)體和文檔獲取信息提交給 數(shù)據(jù)庫管理系統(tǒng)到數(shù)據(jù)對(duì)象模型( d b m s t od o m ) 組件,并獲取文檔對(duì)象模型樹。 3 混合x m l 數(shù)據(jù)庫( h y b r i d x m l d a t a b a s e ,h x d ) 根據(jù)具體的要求和應(yīng)用,既可做n a t i v ex m ld a t a b a s e ,又可做x m l e n a b l e d d a t a b a s e 。e x c e l o n 和o z o n e 就采用了這種思想。以x m l 文檔為基本存儲(chǔ)單位,保留 了文檔的原始結(jié)構(gòu)和x m l 原有的優(yōu)點(diǎn),存儲(chǔ)簡單,同時(shí)可以將x m l 文檔看作對(duì)象樹, 有利于對(duì)單個(gè)x m l 文檔進(jìn)一步的數(shù)據(jù)挖掘。但信息的格式、內(nèi)容相對(duì)繁雜,檢索策 略的復(fù)雜度高,處理起來比較困難。以數(shù)據(jù)為中心的方法將x m l 文檔的數(shù)據(jù)進(jìn)行重 新組織,使數(shù)據(jù)的組織相對(duì)規(guī)范,有利于在此基礎(chǔ)上對(duì)信息的進(jìn)一步應(yīng)用,比如智能 檢索、電子商務(wù)等,但破壞了原文檔的結(jié)構(gòu),也很難保證文檔恢復(fù)到原來的結(jié)構(gòu),在 存入關(guān)系數(shù)據(jù)庫中的預(yù)先處理工作量比較大,尤其是當(dāng)x m l 文檔不規(guī)范化時(shí)就需要 對(duì)它進(jìn)行復(fù)雜的分解、映射等處理。 1 2 2 主要關(guān)鍵技術(shù) 為了實(shí)現(xiàn)對(duì)x m l 數(shù)據(jù)的存儲(chǔ)和查詢等管理功能,可以把x m l 數(shù)據(jù)通過轉(zhuǎn)化和擴(kuò) 展數(shù)據(jù)庫把數(shù)據(jù)直接放在數(shù)據(jù)庫中,可以通過中間件,或者w e bs e r v i c e s 等技術(shù)來 構(gòu)造一個(gè)中間轉(zhuǎn)換的層,從而實(shí)現(xiàn)x m l 數(shù)據(jù)和數(shù)據(jù)庫的透明轉(zhuǎn)換,x m l 查詢技術(shù)可 以利用數(shù)據(jù)庫自身的查詢語言或者對(duì)半結(jié)構(gòu)化查詢語言加以改進(jìn)而成。 華中科技大學(xué)碩士學(xué)位論文 1 基于x m l 的中間件技術(shù)、 中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同 的技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng) 絡(luò)通訊 1 3 , 1 4 1 。中間件屏蔽了底層操作系統(tǒng)的復(fù)雜性,使程序開發(fā)人員面對(duì)一個(gè)簡單而 統(tǒng)一的開發(fā)環(huán)境,減少程序設(shè)計(jì)的復(fù)雜性,將注意力集中在自己的業(yè)務(wù)上,不必再為 程序在不同系統(tǒng)軟件上的移植而重復(fù)工作,從而大大減少了技術(shù)上的負(fù)擔(dān)。中間件帶 給應(yīng)用系統(tǒng)的不只是開發(fā)的簡便和開發(fā)周期的縮短,也減少了系統(tǒng)的維護(hù)、運(yùn)行和管 理的工作量。基于x m l 的數(shù)據(jù)格式轉(zhuǎn)換中間件是一個(gè)提供數(shù)據(jù)格式轉(zhuǎn)換的平臺(tái) 1 5 】, 它能夠以x m l 作為數(shù)據(jù)交互的中間格式,使得異構(gòu)數(shù)據(jù)可以進(jìn)行交互。 x m l 的開放和數(shù)據(jù)獨(dú)立性保證了結(jié)構(gòu)化數(shù)據(jù)對(duì)于應(yīng)用、平臺(tái)和商家來說是統(tǒng)一和 獨(dú)立的。同時(shí),x m l 加強(qiáng)了數(shù)據(jù)完整性,提供了在工業(yè)標(biāo)準(zhǔn)和本地?cái)?shù)據(jù)定義之間的數(shù) 據(jù)交換導(dǎo)航,也提供了松耦合數(shù)據(jù)界面,給格式要求嚴(yán)格的應(yīng)用帶來了靈活性。因此 x m l 被看作是自s q l 以來最重要的數(shù)據(jù)交換標(biāo)準(zhǔn)。 利用x m l 和c o r b a 等分布式信息處理和交換技術(shù),設(shè)計(jì)基于x m l 的分布式數(shù) 據(jù)交換中間件模型,解決w e b 應(yīng)用程序之間的數(shù)據(jù)交換問題。使用該中間件模型,可 屏蔽各系統(tǒng)之間的差異,實(shí)現(xiàn)各系統(tǒng)間透明的數(shù)據(jù)交換 1 ”。同時(shí)開放式的系統(tǒng)架構(gòu)使 中間件模型可適用于各種不同的應(yīng)用環(huán)境??偟膩碚f,x m l 基于x m l 的中問件技術(shù) 要解決一下幾個(gè)問題: ( 1 ) 研究一個(gè)能適應(yīng)分布式異構(gòu)環(huán)境的數(shù)據(jù)交換中間件系統(tǒng)架構(gòu)。這個(gè)系統(tǒng)架構(gòu) 應(yīng)用于多層分布式異構(gòu)環(huán)境,能夠在理論和技術(shù)上擴(kuò)展c s 模式,使系統(tǒng)具有良好的 可伸縮性,便于系統(tǒng)的開發(fā)和升級(jí)。 ( 2 ) 研究一種跨平臺(tái)、易于擴(kuò)展的信息交換格式的描述語言。這種信息格式描述 語言應(yīng)當(dāng)具有通用性、開放性和可擴(kuò)展性,能夠方便地與外部應(yīng)用交互或者相結(jié)合。 換言之,它不僅可以作為信息格式,同時(shí)可以作為存儲(chǔ)格式。 ( 3 ) 研究可以適應(yīng)于各種應(yīng)用環(huán)境的、用戶可定義的信息交換模板。根據(jù)各應(yīng)用 環(huán)境的需要,系統(tǒng)可以自定義數(shù)據(jù)類型和信息格式。 ( 4 ) 研究如何使系統(tǒng)具有較強(qiáng)的可移植性。 2 x m lw 曲s e r v i c e s x m lw e b s e r v i c e 是基于x m l 數(shù)據(jù)交換標(biāo)準(zhǔn)的w e b 服務(wù)1 1 7 , 1 8 1 ,是通過標(biāo)準(zhǔn)的w e b 協(xié)議可編程訪問的w e b 組件【1 9 1 。它的核心觀念是將軟件作為服務(wù),即可以將軟件作為 華中科技大學(xué)碩士學(xué)位論文 w e b 服務(wù)并在i n t e m e t 上進(jìn)行發(fā)布,真正的使企業(yè)只面向核心的商務(wù)邏輯,企業(yè)可咀 使用標(biāo)準(zhǔn)的w e b 協(xié)議與遠(yuǎn)程應(yīng)用通信。軟件向服務(wù)轉(zhuǎn)化是目前的業(yè)界重點(diǎn),基于 i n t e r a c t 的w e b 服務(wù)是實(shí)現(xiàn)這一轉(zhuǎn)變的最佳選擇。 w e b 服務(wù)以開放的標(biāo)準(zhǔn)為基礎(chǔ),構(gòu)建在i n t e r n e t 之上,為企業(yè)應(yīng)用提供了一個(gè)靈 活的、松散耦合的分布式計(jì)算環(huán)境;同時(shí),w e b 服務(wù)屏蔽了底層的企業(yè)應(yīng)用平臺(tái),具 有良好的平臺(tái)無關(guān)性,并且通信數(shù)據(jù)都是標(biāo)準(zhǔn)的x m l 數(shù)據(jù),具有良好的語言無關(guān)性, 為企業(yè)應(yīng)用集成提供了一個(gè)便捷而快速的途徑。 ( 1 ) w e b 服務(wù)的體系結(jié)構(gòu) 如圖1 1 所示,一個(gè)典型的w e b 服務(wù)體系結(jié)構(gòu)包含三個(gè)實(shí)體。即服務(wù)提供者、服 務(wù)代理和服務(wù)請(qǐng)求者。服務(wù)提供者創(chuàng)建w e b 服務(wù)并通過服務(wù)代理注冊(cè)該項(xiàng)服務(wù),從而 把w e b 服務(wù)發(fā)布到i n t e m e t 上去。服務(wù)代理維護(hù)已發(fā)布服務(wù)的注冊(cè)信息,以供服務(wù)請(qǐng) 求者查詢。服務(wù)請(qǐng)求者通過搜索服務(wù)代理所維護(hù)的注冊(cè)表以找到所需的w e b 服務(wù),然 后連接并使用該服務(wù)。 圖1 1w e b 服務(wù)體協(xié)結(jié)構(gòu) ( 2 ) w e b 服務(wù)核心技術(shù) 構(gòu)建w e b 服務(wù)的三大技術(shù)基礎(chǔ)或者說核心技術(shù)是s o a p 、w s d l 和u d d i 20 1 。 s o a p ( s i m p l eo b j e c t a c c e s sp r o t o c o l ,簡單對(duì)象訪問協(xié)議) 是一種簡單、輕量級(jí) 的協(xié)議,用于在w e b 上傳輸、交換x m l 數(shù)據(jù)。提供了一個(gè)基于x m l 的形式在分布 式環(huán)境中交換結(jié)構(gòu)化信息的機(jī)制??蛻魬?yīng)用程序正是通過s o a p 協(xié)議來訪問i n t e m e t 上的w e b 服務(wù)的。s o a p 協(xié)議可以構(gòu)建在t c p 、s m t p 、h t t p 等協(xié)議之上,最常用的 是h t t p 。s o a p 協(xié)議是一個(gè)簡單易用的協(xié)議,完全以x m l 為基礎(chǔ),具有良好的可擴(kuò) 展性。s o a p 協(xié)議定義了個(gè)消息處理的模型,但沒有定義任何的應(yīng)用程序,如編程 模型或特定的實(shí)現(xiàn)語義等。 w s d l ( w e bs e r v i c e sd e s c r i p t i o n l a n g u a g e ,w e b 服務(wù)描述語言) 是一種描述w e b 服務(wù)的x m l 語言,它定義了描述w e b 服務(wù)接1 3 規(guī)范的標(biāo)準(zhǔn)格式。如果說s o a p 是一 種用來交換純內(nèi)容信息的通信協(xié)議,那么w s d l 就是一種描述信息內(nèi)容的語言。從概 念上講,就像在c o r b a 中使用i d l 文件一樣,w s d l 是用來描述w e b 服務(wù)的編程接 華中科技大學(xué)碩士學(xué)位論文 口的,w s d l 文件是客戶與服務(wù)器之間的一個(gè)協(xié)約。 u d d i ( u n i v e r s a ld e s c r i p t i o n ,d i s c o v e r ya n di n t e g r a t i o n ,統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié) 議) 是一套基于w e b 的、分布式的、為w e b 服務(wù)提供信息注冊(cè)中心的實(shí)現(xiàn)標(biāo)準(zhǔn)規(guī)范f 2 ”, 同時(shí)也包含一組使企業(yè)能將自身提供的w 曲服務(wù)注冊(cè)以使得別的企業(yè)能夠發(fā)現(xiàn)的訪問 協(xié)議的實(shí)現(xiàn)標(biāo)準(zhǔn)。簡言之,u d d i 標(biāo)準(zhǔn)定義了一個(gè)w e b 服務(wù)發(fā)布與發(fā)現(xiàn)的方法。 ( 3 ) w e b 服務(wù)發(fā)布及應(yīng)用的請(qǐng)求應(yīng)答過程 x m l 、w s d l 、u d d i 、s o a p 共同支撐了w e b 服務(wù),它們?cè)谝黄鹣嗷f(xié)作,完 成了w e b 服務(wù)的發(fā)布和應(yīng)用與w e b 服務(wù)之間的請(qǐng)求應(yīng)答過程。在發(fā)布w e b 服務(wù)時(shí), 服務(wù)提供商把所提供服務(wù)的接口和需要的數(shù)據(jù)類型和結(jié)構(gòu)用w s d l 進(jìn)行描述,然后和 服務(wù)商自己的描述信息結(jié)合起來構(gòu)成u d d i 注冊(cè)中的相關(guān)資料,在全球的u d d i 注冊(cè) 中心進(jìn)行注冊(cè)。當(dāng)個(gè)應(yīng)用系統(tǒng)需要調(diào)用w e b 服務(wù)時(shí),它首先通過i n t e m e t 在u d d i 注冊(cè)機(jī)構(gòu)中查找需要的w e b 服務(wù),取得w e b 服務(wù)的地址和用w s d l 描述的接口,根 據(jù)w s d l 描述的接口信息準(zhǔn)備數(shù)據(jù),依據(jù)相應(yīng)的地址進(jìn)行連接。完成連接后,應(yīng)用系 統(tǒng)通過s o a p 協(xié)議和w e b 服務(wù)中的遠(yuǎn)程對(duì)象綁定在一起,進(jìn)行請(qǐng)求的發(fā)送和應(yīng)答的接 收。一個(gè)w e b 服務(wù)也可以同樣請(qǐng)求其他的w e b 服務(wù)為自己完成某些服務(wù)。 3 x m l 數(shù)據(jù)的查詢技術(shù)研究 隨著x m l 技術(shù)不斷成熟,越來越多的數(shù)據(jù)或以x m l 格式存儲(chǔ),或以x m l 格式 交換,或者用x m l 來表現(xiàn)。因此,要構(gòu)建基于x m l 的各種應(yīng)用,科學(xué)的從x m l 數(shù) 據(jù)源中查詢并獲取數(shù)據(jù)就成為其中很關(guān)鍵的一步。x m l 數(shù)據(jù)庫查詢語言就是實(shí)現(xiàn)這一 功能的主要工具 2 2 , 2 3 , 2 4 , 2 5 】。這些語言都有自己的數(shù)據(jù)模型、符號(hào)集、算法以及實(shí)現(xiàn)方 式,但同時(shí)也表現(xiàn)出很多共同的特性。 ( 1 ) 根據(jù)需要構(gòu)建輸出。x m l 查詢的結(jié)果不一定作為最后的結(jié)果輸出到界面,它 可以是一個(gè)中間結(jié)果,以對(duì)它進(jìn)行進(jìn)一步的查詢。也可以作為符合某一格式要求的數(shù) 據(jù)存人到數(shù)據(jù)庫中,或者成為眾多查詢結(jié)果中的一部分。正因?yàn)檫@樣,自如的控制查 詢結(jié)果的結(jié)構(gòu)和式樣就十分重要。x m l 查詢語言將對(duì)數(shù)據(jù)的查詢和對(duì)結(jié)果的控制同步 進(jìn)行,既可以將查詢結(jié)果保持原文的結(jié)構(gòu),也可以進(jìn)行改變,形成新的符合用戶需要 的結(jié)構(gòu)。 ( 2 ) 不同x m l 數(shù)據(jù)源的集成。x m l 的查詢語言可以同時(shí)從多個(gè)數(shù)據(jù)源獲取數(shù)據(jù), 將相關(guān)的數(shù)據(jù)進(jìn)行必要的連接,并形成一個(gè)整體的查詢結(jié)果。通過x m l 查詢語言的 這一特性,使很多獨(dú)立的零碎存在的數(shù)據(jù)在再次利用過程中產(chǎn)生了意想不到的價(jià)值, 華中科技大學(xué)碩士學(xué)位論文 而且使得查詢本身也變得簡單便利。 ( 3 ) 模糊查詢。這里的模糊查詢主要指在不了解x m l 數(shù)據(jù)的具體結(jié)構(gòu)或不明確數(shù) 據(jù)格式等情況下所進(jìn)行的查詢。 ( 4 ) 對(duì)嵌套循環(huán)數(shù)據(jù)結(jié)構(gòu)的支持。由于x m l 數(shù)據(jù)本身允許嵌套、循環(huán)、遞歸等結(jié) 構(gòu),而且這種結(jié)構(gòu)的數(shù)據(jù)大量存在,在此基礎(chǔ)上的查詢就要求能夠到達(dá)任意路徑上的 任意結(jié)點(diǎn),x m l 查詢語言采用規(guī)則路徑表達(dá)的方法,使得定位、查詢及相應(yīng)的查詢優(yōu) 化等都十分便利。 x m l 的迅速發(fā)展激發(fā)了對(duì)x m l 查詢語言的需求。迄今為止,工業(yè)界和學(xué)術(shù)界提 出了不下十種x m l 查詢語言。按照提出者的研究背景,這些查詢語言可以分成兩大 類:一類來自文檔研究領(lǐng)域,如x s l 2 6 ??趚 q l t 2 7 】;另一類來自數(shù)據(jù)庫研究領(lǐng)域,如 巳l o r e l 【2 ”、x m l g l 、x m l q l 和q u i l t 。各種語言在語法形式和查詢能力上都不盡 相同。一般來說,由文檔研究者提出的查詢語言功能較弱,如x s l 不支持連接操作。 而由數(shù)據(jù)庫研究者提出的查詢語言功能相對(duì)強(qiáng)大,一般都支持復(fù)雜的路徑表達(dá)式、連 接、嵌套查詢等數(shù)據(jù)庫查詢語言的典型特性,但在對(duì)一些高級(jí)特性的支持程度上也存 在一定的差別,如l o r e l 和q u i l t 支持全稱量詞,而x m l - q l 和x m l g l 則不支持。 同時(shí),在語法形式上也有所差別:l o r e l 和q u i l t 類似干s q l 和o q l ,x m l q l 的主 體部分為標(biāo)準(zhǔn)的x m l 格式;x m l g l 則是一種圖示化的查詢語言。 為了推動(dòng)x m l 語言的發(fā)展,w 3 c 于1 9 9 8 年底成立了專門的查詢語言工作組,著 手進(jìn)行x m l 查詢語言的規(guī)范化工作。但是,由于x m l 本身表達(dá)范圍非常廣,涵蓋了 結(jié)構(gòu)化文檔、半結(jié)構(gòu)化文檔、關(guān)系數(shù)據(jù)庫和對(duì)象數(shù)據(jù)庫,從而使得設(shè)計(jì)一種對(duì)各類數(shù) 據(jù)源上都同樣有效的x m l 查詢語言的工作變得非常困難。所以,直到2 0 0 1 年2 月 w 3 c 才提出了x q u e r y 語言的第一個(gè)工作草案。 4 x m l 數(shù)據(jù)的存儲(chǔ)技術(shù)研究 利用x m l 數(shù)據(jù)結(jié)構(gòu)化的特征進(jìn)行x m l 文檔的數(shù)據(jù)庫存取,其基本思想是一致的, 即把x m l 標(biāo)記的數(shù)據(jù)放入一定的數(shù)據(jù)模式中,從而利用這個(gè)數(shù)據(jù)模式對(duì)這些數(shù)據(jù)進(jìn) 行管理。但是在具體實(shí)現(xiàn)技術(shù)上不盡相同。根據(jù)所采取的數(shù)據(jù)模式來看,可以分為以 下兒類: ( 1 ) 文件系統(tǒng)結(jié)構(gòu)。這種方式是將x m l 數(shù)據(jù)存放到文件系統(tǒng)中去,使用文件是存 儲(chǔ)x m l 的一種最簡單的方法。以這種方式保存的x m l 數(shù)據(jù)文檔可以用普通的文檔編 輯器來編輯它,也可以用專門的x m l 編輯器來編輯?;趚 m l 的文件系統(tǒng)主要包括 華中科技大學(xué)碩士學(xué)位論文 三部分:文件組織、安全系統(tǒng)和文件的基本管理功能。 使用文件系統(tǒng)來存儲(chǔ)文檔的優(yōu)點(diǎn)是簡單易用,而x m l 且也適合于文檔內(nèi)容少、 數(shù)量小的場(chǎng)合,但其在系統(tǒng)規(guī)模、并發(fā)與安全等方面的局限性x m l 也是顯而易見的。 ( 2 ) 半結(jié)構(gòu)化數(shù)據(jù)模式。半結(jié)構(gòu)化數(shù)據(jù)是界于嚴(yán)格結(jié)構(gòu)化的數(shù)據(jù)( 如關(guān)系數(shù)據(jù)庫 中的數(shù)據(jù)) 和完全無結(jié)構(gòu)的數(shù)據(jù)( 如聲音,圖象文件) 之間的數(shù)據(jù)形式。半結(jié)構(gòu)數(shù)據(jù) 通常稱為“無模式”或“自描述”1 2 9 】。也就是說,半結(jié)構(gòu)數(shù)據(jù)不存在獨(dú)立的結(jié)構(gòu)和類 型描述。一般來說,在對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)或處理時(shí),應(yīng)事先描述出數(shù)據(jù)的結(jié)構(gòu)( 類型、 模式) 然后再生成該類型或模式的實(shí)例值。x m l 數(shù)據(jù)模型與半結(jié)構(gòu)數(shù)據(jù)模型有著很多 的相似性??梢哉f,x m l 是w w w 上的半結(jié)構(gòu)數(shù)據(jù)。它既為半結(jié)構(gòu)數(shù)據(jù)的研究提供 了廣闊的應(yīng)用前景,同時(shí)也推動(dòng)了半結(jié)構(gòu)數(shù)據(jù)研究的發(fā)展。例如,利用x m l 與半結(jié) 構(gòu)化數(shù)據(jù)的相似性,在原先半結(jié)構(gòu)化數(shù)據(jù)的研究成果上支持x m l 的存儲(chǔ)與查詢功能。 這主要有s t a n f o r d 大學(xué)的l o r e 數(shù)據(jù)庫研究f 3 0 1 。 ( 3 ) 面向?qū)ο竽J?,把x m l 元素當(dāng)作對(duì)象看待存放在面向?qū)ο髷?shù)據(jù)庫中。面向?qū)?象數(shù)據(jù)庫用自身的方法、關(guān)系和語義來管理x m l 數(shù)據(jù),同時(shí)提供了強(qiáng)大的導(dǎo)航和連 接功能,例如o z o n e 是建立在對(duì)象數(shù)據(jù)庫系統(tǒng)0 2 之上,它集成了半結(jié)構(gòu)化方法。面向 對(duì)象的模型支持復(fù)雜數(shù)據(jù)類型,因此可以方便、直觀地建立x m l 數(shù)據(jù)的對(duì)象模式, 進(jìn)而利用對(duì)象查詢語言( o q l ) 實(shí)現(xiàn)對(duì)x m l 數(shù)據(jù)的結(jié)構(gòu)化查詢。面向?qū)ο蟮姆椒ㄒ哑?遍地應(yīng)用于軟件開發(fā)的各個(gè)階段,o o d b 能夠與面向?qū)ο蟮某绦蛟O(shè)計(jì)方法無縫結(jié)合, 因此o o d b 很有可能成為未來數(shù)據(jù)庫的主流。以一致的方法訪問x m l 數(shù)據(jù)和o o d b 中的數(shù)據(jù)無疑將使應(yīng)用系統(tǒng)的開發(fā)得到簡化。 ( 4 ) 關(guān)系模式。關(guān)系數(shù)據(jù)庫具備完備的理論基礎(chǔ)、簡潔的數(shù)據(jù)模型、透明的查詢 語言和方便的操作方法等。到目前為止,在各個(gè)領(lǐng)域使用最廣的還是要數(shù)關(guān)系型數(shù)據(jù) 庫。將x m l 數(shù)據(jù)保存在關(guān)系數(shù)據(jù)庫中,利用關(guān)系數(shù)據(jù)庫系統(tǒng)的查詢機(jī)制實(shí)現(xiàn)對(duì)x m l 數(shù)據(jù)的查詢。由于關(guān)系模型不支持復(fù)雜類型的屬性,因此采用這種方法處理x m l 數(shù) 據(jù)存在一定的局限性。一個(gè)文檔通常被轉(zhuǎn)換為多個(gè)表,元素與表之闖的關(guān)系不夠直觀, 查詢常常涉及多個(gè)表的連接,導(dǎo)致效率降低。 x m l 關(guān)系存儲(chǔ)的核心是x m l 文檔到關(guān)系數(shù)據(jù)庫的模式映射方法。x m l 的“樹 圖”數(shù)據(jù)模型與平坦的關(guān)系數(shù)據(jù)模型間存在固有的不匹配【3 1 】;x m l 固有的r 文檔根”, 使得x m l 與關(guān)系數(shù)據(jù)在語法、結(jié)構(gòu)與約束的眾多方面均存在許多異構(gòu)性?,F(xiàn)在使用 的方法主要是模型映射方法。它的原理就是利用x m l 文檔中的數(shù)據(jù)模型的結(jié)構(gòu)( 如 8 華中科技大學(xué)碩士學(xué)位論文 d t d 或者x m ls c h e m a ) 顯性或者隱性地將其映射成數(shù)據(jù)庫的結(jié)構(gòu),它的優(yōu)點(diǎn)是簡單 易用?,F(xiàn)在研究得比較多得是利用d t d 模式來把x m l 數(shù)據(jù)存儲(chǔ)到關(guān)系數(shù)據(jù)庫中,但 是隨著x m ls c h e m a 的出現(xiàn)和它相對(duì)于d t d 的優(yōu)點(diǎn),將來會(huì)基于關(guān)系模式存取x m l 數(shù)據(jù)會(huì)越來越多的利用x m ls c h e m a 來映射。 目前,x m l 到關(guān)系模式的典型映射方法有三類:用固定的關(guān)系模式存儲(chǔ)x m l 數(shù) 據(jù) 3 2 】、從實(shí)例數(shù)據(jù)提取關(guān)系模式【3 3 】、從d t d 導(dǎo)出關(guān)系模式【3 4 】。商業(yè)的r d b m s 的映 射方案不能夠大量地自動(dòng)映射,所以不在研究之列。本文重點(diǎn)分析并且借鑒了從d t d 到處關(guān)系模式的方法。d t d 是x m l 文件的模式類型描述文件,根據(jù)d t d 可以得到它 所描述的所有x m l 文檔的結(jié)構(gòu)。因此根據(jù)d t d 文件映射存儲(chǔ)x m l 數(shù)據(jù)完全可行。 但是d t d 是樹圖狀結(jié)構(gòu),而關(guān)系模式是e r 模型的結(jié)構(gòu)。它們的結(jié)構(gòu)不相同,同時(shí) d t d 的結(jié)構(gòu)比較復(fù)雜,不能滿足轉(zhuǎn)換需要。因此在進(jìn)行d t d 的模式映射時(shí),首先要 對(duì)d t d 進(jìn)行簡化,然后根據(jù)d t d 文件產(chǎn)生d t d 的樹狀元素圖,再深度優(yōu)先算法遍 歷d t d 元素圖產(chǎn)生關(guān)系模式。最后利用利用d o m 將x m l 文檔解析生成d o m 樹結(jié) 構(gòu),利用d o m 樹存儲(chǔ)算法來存儲(chǔ)x m l 數(shù)據(jù)。 1 ,3 課題主要研究工作 本課題主要是研究x m l 數(shù)據(jù)的存取技術(shù)。在課題的研究過程中,我們認(rèn)真參閱 了國內(nèi)外對(duì)x m l 數(shù)據(jù)的存取技術(shù),特別是利用關(guān)系數(shù)據(jù)庫來存放x m l 數(shù)據(jù)相關(guān)研究。 雖然基于關(guān)系數(shù)據(jù)庫來存取x m l 數(shù)據(jù)有一些局限和弱點(diǎn),但是至少在現(xiàn)階段有充分 的理由需要研究x m l 在關(guān)系數(shù)據(jù)庫中如何存儲(chǔ)的問題。結(jié)合本課題的實(shí)際情況,我 們采用關(guān)系數(shù)據(jù)庫來作為存放的環(huán)境,這樣可以利用關(guān)系數(shù)據(jù)庫成熟的管理、存取、 更新和檢索技術(shù)來對(duì)x m l 數(shù)據(jù)進(jìn)行管理。 通過將x m l 文檔看作為有具體數(shù)據(jù)的對(duì)象樹,應(yīng)用對(duì)象關(guān)系映射理論映射到關(guān) 系數(shù)據(jù)庫中。x m l 文件般都附有模式或者結(jié)構(gòu)描述文件,如d t d 和x m ls c h e m a 。 這兩種模式,結(jié)構(gòu)描述文件差別很大,在語法、結(jié)構(gòu)等方面都不一樣。x m l s c h e m a 相 對(duì)于d t d 具有很多的優(yōu)勢(shì),并且在豐富的數(shù)據(jù)類型、繼承和復(fù)用、命名空間等方面來 說更是d t d 所不能媲美的,現(xiàn)在已經(jīng)有很多研究者正在研究d t d 向x m ls c h e m a 轉(zhuǎn) 換的方法和工具。所以本文主要研究利用x m ls c h e m a 來映射存儲(chǔ)x m l 數(shù)據(jù)到關(guān)系 數(shù)據(jù)庫中的方法。 9 華中科技大學(xué)碩士學(xué)位論文 本文借鑒了利用d t d 來映射存儲(chǔ)x m l 數(shù)據(jù)的方法。整個(gè)映射過程包括x m i _ , s c h e m a 的簡化、x m ls c h e m a 元素圖的生成、關(guān)系模式的生成以及d o m 樹的存儲(chǔ)。 本文設(shè)計(jì)了從x m l s c h e m a 到關(guān)系模式的模型,然后給出了從x m l 文檔到關(guān)系模式 的轉(zhuǎn)換算法。最后,本文在m i c r o s o f t n e t 框架和s q l s e r v e r2 0 0 0 的環(huán)境下進(jìn)行了初 步應(yīng)用。 1 0 華中科技大學(xué)碩士學(xué)位論文 2x m l 數(shù)據(jù)的結(jié)構(gòu)分析 x m l 文件通常由兩部分組成。一部分是x m l 標(biāo)簽及其內(nèi)容,另一部分是定義標(biāo) 簽及其相互關(guān)系的數(shù)據(jù)模式,結(jié)構(gòu)文件,如d t d 文件和x m ls c h e m a 文件。x m l 數(shù)據(jù) 的結(jié)構(gòu)分析主要是分析數(shù)據(jù)模式結(jié)構(gòu)文件d t d 和x m ls c h e m a 的特點(diǎn)和區(qū)別,從而 更好地對(duì)x m l 數(shù)據(jù)進(jìn)行處理。 2 1x m l 數(shù)據(jù)的結(jié)構(gòu)特點(diǎn) x m l 不是一種編程語言,因此不能創(chuàng)建二進(jìn)制可執(zhí)行文件。x m l 能讓使用者簡 單地定義標(biāo)簽和它們之間的關(guān)系。使用x m l 編碼的文章的結(jié)構(gòu)使得進(jìn)行跟蹤、格式 化和操縱都相當(dāng)容易。 一個(gè)x m l 的文檔示例如圖2 1 所示,它來自于本文研究的項(xiàng)目水電站資產(chǎn) 管理系統(tǒng)( a m s ) ,從中可以看出x m l 數(shù)據(jù)是一個(gè)圖,樹狀結(jié)構(gòu)。 圖2 1 部f 1 信忌的x m l 文檔 正如從上面的例子中看到的,x m l 文檔類似于樹型分層結(jié)構(gòu),元素可以完全嵌套 在另一個(gè)元素中,且只有單個(gè)頂層元素即文檔元素或根元素( 它包含了所有其他 元素) 。因此,可以很容易使用x m l 定義分層結(jié)構(gòu)文檔,如上面提到的可分為 d e p a r t m e n t 、d e p t n a m e 、o p e r a t o r 、r l a l n e 和c o n t a c t 。x m l 對(duì)于大型和復(fù)雜的文檔是理 想的,因?yàn)閿?shù)據(jù)是結(jié)構(gòu)化的。 華中科技大學(xué)碩士學(xué)位論文 x m l 有強(qiáng)大的數(shù)據(jù)描述能力,使得復(fù)雜數(shù)據(jù)的表達(dá)變得方便。還有自我擴(kuò)展能力, 把對(duì)數(shù)據(jù)的約束減到最少。x m l 使數(shù)據(jù)可以進(jìn)行自我描述。應(yīng)用系統(tǒng)間交換的x m l , 數(shù)據(jù)可以通過其文檔中的標(biāo)簽推斷其涵義。x m l 是數(shù)據(jù)與表達(dá)分離的。x m l 標(biāo)記描 述的是文檔的結(jié)構(gòu)和意義,它不描述頁面元素的格式化??捎脴邮絾螢槲臋n增加格式 化信息。文檔本身只說明文檔包括什么標(biāo)記,而不是說明文檔看起來是什么樣的。x m l 文件通常有兩個(gè)部分。一部分是x m l 標(biāo)簽及其內(nèi)容,另一部分是定義標(biāo)簽及其相互 關(guān)系的d t d ( 文件類型定義,d o c u m e n t t y p ed e f i n i t i o n ) 或者x m ls c h e m a 。d t d 可 以和x m l 資源存放在同一個(gè)文件內(nèi),但也可以單獨(dú)存放。 從文檔管理的角度來看,x m l 是一種結(jié)構(gòu)化文檔標(biāo)記語言;但從數(shù)據(jù)管理的角度 來看,由于x m l 體現(xiàn)了各種數(shù)據(jù)表示格式的最大共同點(diǎn),因此可作為一種通用的數(shù) 據(jù)表示格式;此外,若忽略一系列諸如元素次序、元素與屬性的區(qū)別、元素中內(nèi)容與 子元素的混合、以及評(píng)注和處理指令等“文檔”特性,則x m l 可作為半結(jié)構(gòu)化數(shù)據(jù) 的串行化表示語法而用于數(shù)據(jù)交換。例如,圖2 2 就是圖2 1 文檔的一種可能的邊標(biāo) 注的有向樹圖表示。每個(gè)節(jié)點(diǎn)表示一個(gè)對(duì)象( x m l 元素) 并賦予一個(gè)唯一標(biāo)識(shí)( o l d ) , 節(jié)點(diǎn)的每一出邊表示相應(yīng)對(duì)象的個(gè)屬性并用屬性名( x m l 子元素屬性名) 標(biāo)注, 葉子節(jié)點(diǎn)有相應(yīng)的原子數(shù)據(jù)值( x m l 予元素內(nèi)容屬性值) 。 幽2 2 部門信息x m l 文檔的數(shù)據(jù)結(jié)構(gòu)圖 如果x m l 文檔實(shí)例中有( 且考慮) 元素間的引用,則它是一個(gè)圖模型,否則是 一個(gè)樹模型;如果考慮x m l 元素次序,則成為一種有序模型。顯然,這樣的模型與 無序、平坦的關(guān)系模型之間存在固有的不匹配。另外,由于模式信息( 數(shù)據(jù)類型、結(jié) 構(gòu)及其約束) 對(duì)數(shù)據(jù)的有效存儲(chǔ)、索引和查詢求值至關(guān)重要,因此,x m l 放松的類型 強(qiáng)制和無模式( 即自描述) 性雖有利于數(shù)據(jù)交換,卻不利于數(shù)據(jù)存儲(chǔ)。 i , 華中科技大學(xué)碩士學(xué)位論文 2 2m l 數(shù)據(jù)的模式 模式是關(guān)于標(biāo)記的語法規(guī)則,它詳細(xì)描述了x m l 文檔的結(jié)構(gòu),從而確定了文檔 的框架。一個(gè)模式文件嚴(yán)格地規(guī)定了以它為標(biāo)準(zhǔn)的所有x m l 文檔的樹狀層次結(jié)構(gòu)的 全部細(xì)節(jié)。當(dāng)某一x m l 文檔引用該模式文件時(shí),它必須通過有效性檢驗(yàn)【3 5 】。x m l 文 檔的模式有d t d 、x m ls c h e m a 、x d r ( x m ld a t ar e d u c e d ,簡化x m l 數(shù)據(jù)1 和s o x ( s c h e m a f o r o b j e c t o r i e n t e d x m l ,面向?qū)ο髕 m l 語言的模式) 等。本文只討論使用 得最廣泛的d t d 和x m l s c h e m a 模式。 x m l 的一個(gè)重要特性就是其可擴(kuò)展性,x m l 文檔的作者可任意定義文檔數(shù)據(jù)的 結(jié)構(gòu)以及元素的名稱和屬性。雖然這種可擴(kuò)展性給文檔的制作提供了很大的靈活性, 但是同時(shí)它也使得不同組織的應(yīng)用程序間的數(shù)據(jù)交換變得難以實(shí)現(xiàn),原因是不同組織 的應(yīng)用程序?qū)ν瑯拥臉?biāo)記名稱可能有不同的理解p 副。另外,對(duì)于一個(gè)將不斷發(fā)展的文 檔模型,x m ls c h e m a 或d t d 可指導(dǎo)此發(fā)展過程口州。 22 1 文檔類型定義( d t d ) d t d 源于s g m l 規(guī)范,它描述了一個(gè)x m l 文檔的結(jié)構(gòu)。個(gè)d t d 通過指定一 個(gè)元素的屬性以及子元素的名稱來規(guī)定其結(jié)構(gòu)。所有的值都是字符型的,可以用特殊 屬性i d 來唯一指定一個(gè)元素。圖2 3 給出了與圖2 1 對(duì)應(yīng)得d t d 的例子。 ! e l e m e n t n a m e ( f i r s m a m e ? ,l a s t n a m ep 圖2 3 部門信息x m l 文檔對(duì)應(yīng)的d t d 華中科技大學(xué)碩士學(xué)位論文 d t d 中的聲明分為四類,它們分別是:元素類型聲明、屬性列表聲明、實(shí)體聲明、 記號(hào)聲明。d t d 指定了文檔結(jié)構(gòu)的一系列規(guī)定,并且將文件的結(jié)構(gòu)和文件的內(nèi)容完全 分開,這樣有很多的好處: 1 使x m l 文檔標(biāo)準(zhǔn)化變?yōu)榭尚?。任何人可以依照d t d 的結(jié)構(gòu),編寫出合乎標(biāo)準(zhǔn) 的x m l 文檔。 2 d t d 嚴(yán)格的規(guī)范使不同的應(yīng)用程序或用戶可以讀取彼此的文件。 3 外部的d t d 可以被不同的文件或是網(wǎng)站所分享。 4 d t d 中只包含結(jié)構(gòu),設(shè)計(jì)者可以在不影響數(shù)據(jù)的情況下優(yōu)化d t d 。 5 ,以適當(dāng)?shù)膁 t d ,可以轉(zhuǎn)換x m l 文件成為不同的文件格式。 6 d t d 中的實(shí)體參照用途更多,設(shè)計(jì)者可以利用它來將外部的數(shù)據(jù)或是圖文件加 到x m l 文件中,使x m l 文件內(nèi)容更加豐富。 7 它可以代表某種類型的文檔,因而在文檔的結(jié)構(gòu)化檢索、分類、比較以及轉(zhuǎn)換 等處理方面起非常重要的作用【3 7 1 。 d t d 包含了定義元素的元素聲明和屬性列表聲明,這些元素組成了詞匯表,而屬 性列表聲明則指明了這些元素的屬性。內(nèi)容模式描述了什么樣的內(nèi)容可以包含在元素 當(dāng)中。實(shí)體聲明則描述了那些可以包含在用來構(gòu)造d t d 文檔中的文本和二進(jìn)制實(shí)體。 下面將分別說明其具體結(jié)構(gòu)。 1 元素聲明 元素聲明指的是單一的標(biāo)記元素,在文檔中所使用的每個(gè)標(biāo)志,都通過d t d 中的 元素聲明而定義。結(jié)構(gòu)如下: 。x m l 標(biāo)準(zhǔn)將元素 按內(nèi)容劃分為四類
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026北京航空航天大學(xué)航空科學(xué)與工程學(xué)院聘用編人機(jī)交互項(xiàng)目開發(fā)科研助理F崗招聘2人備考題庫附答案詳解(鞏固)
- 2026廣東深圳市寶安區(qū)西鄉(xiāng)桃源居幼兒園(集團(tuán))招聘工作人員7人備考題庫附參考答案詳解(完整版)
- 2026新疆和田地區(qū)醫(yī)療保障研究會(huì)招聘6人備考題庫含答案詳解
- 2026上半年貴州事業(yè)單位聯(lián)考貴州省紅十字會(huì)招聘1人備考題庫附答案詳解(培優(yōu))
- 2026上半年貴州事業(yè)單位聯(lián)考玉屏侗族自治縣招聘41人備考題庫及參考答案詳解(新)
- 2026上半年貴州事業(yè)單位聯(lián)考貴州省投資促進(jìn)局營商環(huán)境服務(wù)中心招聘1人備考題庫帶答案詳解(考試直接用)
- 2026中國中醫(yī)科學(xué)院針灸研究所面向社會(huì)招聘5人備考題庫及完整答案詳解
- 內(nèi)河航運(yùn)安全監(jiān)管-洞察與解讀
- 2026廣西柳州市技工學(xué)校編外合同制教師招聘5人備考題庫附答案詳解(模擬題)
- 2026上半年貴州事業(yè)單位聯(lián)考德江縣招聘36人備考題庫附參考答案詳解(能力提升)
- DB11-T 2451-2025 中藥飲片再加工服務(wù)規(guī)范
- 七大浪費(fèi)考試試卷及答案
- 北湖公園水生態(tài)施工方案
- 急救培訓(xùn)自查、整改與提升措施
- 免還款協(xié)議5篇
- 2024年江蘇省無錫市中考數(shù)學(xué)試卷(副卷)
- 新版GCP培訓(xùn)課件
- 單鳳儒《管理學(xué)基礎(chǔ)》教案
- 客戶開發(fā)流程圖
- DL∕T 516-2017 電力調(diào)度自動(dòng)化運(yùn)行管理規(guī)程
- 鋼琴樂理知識(shí)考試題庫200題(含答案)
評(píng)論
0/150
提交評(píng)論