



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
支持大數(shù)據(jù)量gml文檔的xsl轉(zhuǎn)換技術(shù)
1gml圖形化顯示1ml是1999年提出的基于xml的地理標(biāo)志語言。GML本身是由一系列的地理空間數(shù)據(jù)組成,這些地理空間數(shù)據(jù)又形成了地理空間特征,但是這些特征并不能以一種直觀的方式直接和用戶進(jìn)行交互,因此,需要對GML文檔進(jìn)行轉(zhuǎn)換,使其能夠?qū)ML本身包含的地理信息以地圖的形式展示給用戶.而SVG作為標(biāo)記型語言正好彌補了GML不能可視化的缺點.SVG是W3C制定的一種矢量圖形格式,是一種基于XML的網(wǎng)絡(luò)矢量圖形標(biāo)準(zhǔn),他包含三種對象:矢量圖形、點陣圖形和文本.SVG具有很多優(yōu)勢:高交互性,無損縮放,高效壓縮等.綜合SVG的優(yōu)勢,文中選擇將包含了大量空間地理信息的GML轉(zhuǎn)換成SVG進(jìn)行顯示交互是非常可行的.目前一般的做法是采用XSLT轉(zhuǎn)換語言進(jìn)行模板匹配,但傳統(tǒng)的XSLT處理器存在局限性,文中提出了相應(yīng)的改進(jìn)方法.文中改進(jìn)優(yōu)化了現(xiàn)有的XSLT處理器,將GML文檔SAX解析為一系列事件驅(qū)動,針對XSL樣式表設(shè)計了分類優(yōu)化處理算法,使得處理器在轉(zhuǎn)換的過程中舍去不需要的匹配信息,提高了轉(zhuǎn)換效率,同時支持大數(shù)據(jù)量的GML文檔的轉(zhuǎn)換,設(shè)計完成了GML轉(zhuǎn)換顯示的原型系統(tǒng),滿足了GML圖形化顯示的需求.2事件控制訪問在GML向SVG轉(zhuǎn)換的過程中,傳統(tǒng)的XSLT處理器是將GML文檔解析成一棵DOM樹存在內(nèi)存中,之后對樣式表文件進(jìn)行一一的匹配工作.這種做法在GML數(shù)據(jù)不斷增長的情況下,處理器會出現(xiàn)內(nèi)存溢出等錯誤.通過對比XML的解析技術(shù),DOM解析需要占用大量的內(nèi)存,并不適用大數(shù)據(jù)量GML文檔的解析;SAX解析則由XML文檔的事件控制訪問,順序的按照文檔事件進(jìn)行推動解析,不存在DOM解析的劣勢;STAX解析由應(yīng)用程序自己控制,選擇性地將所需內(nèi)容“拉”出來,更方便用戶對文檔的特殊需求.本文的GSxslt處理器結(jié)合了不同XML解析技術(shù)的優(yōu)勢,對源GML文檔采用SAX解析,保證對于大數(shù)據(jù)量文檔的轉(zhuǎn)換請求.同時Stax解析XSL樣式表文件,由應(yīng)用程序主動拉出所需要的事件,保證轉(zhuǎn)換的效率.XSLT是一種用來將XML格式的文件轉(zhuǎn)換成另一種XML格式文件的轉(zhuǎn)換語言.XSLT是將一棵XML樹轉(zhuǎn)換為XML結(jié)果樹的過程.在轉(zhuǎn)換的過程中,XSLT使用XPath來確定源文檔中可匹配的一個或多個預(yù)定義模板.一旦匹配被找到,XSLT就會把文檔的匹配部分轉(zhuǎn)換為結(jié)果文檔.因此XSLT是一個中間過程,在轉(zhuǎn)換的過程中需要兩部分的信息:(1)GML文檔.(2)針對文檔的XSL樣式表文件.通過兩個文檔之間的匹配關(guān)系,最終得到結(jié)果樹,這里就是SVG圖形文件.樣式表文件中有兩類數(shù)據(jù),起到的作用完全不同,針對這個特點,GSxslt設(shè)計了一種樣式表文件的分類算法,提高了XSLT處理器的轉(zhuǎn)換效率.3預(yù)處理模塊設(shè)計GML到SVG的轉(zhuǎn)換顯示系統(tǒng)主要分為兩個部分:GML的預(yù)處理模塊和XSLT處理器的優(yōu)化模塊,如圖1所示.在系統(tǒng)的預(yù)處理模塊中,首先加載待轉(zhuǎn)換的源GML文檔,接著解析和判斷該GML文檔所包含的地理信息的所屬圖層類型.根據(jù)不同的圖層信息分配默認(rèn)的XSL文件.預(yù)處理模塊的結(jié)果是輸出所選取的XSL樣式表文件以及輸入的GML源文檔的數(shù)據(jù)流,并將其作為XSLT處理器優(yōu)化模塊的兩個輸入.在XSLT優(yōu)化處理模塊中,對XSL樣式表文件和源GML文檔分別進(jìn)行處理.對XSL樣式表文件進(jìn)行分類,將它分為兩類信息,第一類是需要定位匹配的事件集合,例如xsl:for-each等;第二類是目標(biāo)語言,這里是SVG的標(biāo)簽元素組成,例如<svg>、<g>等.圖1中分片事件流根據(jù)分類的結(jié)果,只有第一類片段事件流包含了需要遍歷GML文檔的標(biāo)簽結(jié)點,將這類的事件集合遍歷源GML文檔的每個結(jié)點進(jìn)行模板的匹配;第二類的事件集合則按照序號放入數(shù)據(jù)的輸出流中,等待第一類事件集合處理完畢后進(jìn)行合并還原,最終生成目標(biāo)SVG文檔,并在瀏覽器中實時顯示.4gsxslt處理器4.1gml數(shù)據(jù)的生成預(yù)處理作為系統(tǒng)進(jìn)行優(yōu)化前的第一步,主要是對源GML文檔的類型進(jìn)行預(yù)判.在GML文檔向SVG文檔轉(zhuǎn)換的過程中,不同圖層的GML地理數(shù)據(jù)對象對應(yīng)的SVG標(biāo)簽元素是不同的.在預(yù)處理的過程中,系統(tǒng)對GML文檔進(jìn)行SAX解析,每獲得一個StartElement就進(jìn)行判斷其所屬的圖層類型,在遍歷完GML文檔后,就為其分配一個系統(tǒng)默認(rèn)的對應(yīng)圖層類型的XSL樣式表文件.默認(rèn)的XSL樣式表文件將按照默認(rèn)的顯示效果對GML進(jìn)行轉(zhuǎn)換,但是不同用戶對于最終的SVG效果有不同的看法,所以GML顯示轉(zhuǎn)換系統(tǒng)提供了幾個不同的選項供用戶自定義選擇,包括所要顯示對象的顏色、粗細(xì)等屬性,當(dāng)用戶確定了這些屬性后將在默認(rèn)的XSL樣式表文件上生成新的用戶自定義的樣式表文件.4.2xll樣式表結(jié)構(gòu)在GML向SVG的轉(zhuǎn)換過程中,傳統(tǒng)的XSLT處理器在處理小數(shù)據(jù)量的GML文檔上效率較高,但是對于較大數(shù)據(jù)量的GML文檔,傳統(tǒng)XSLT處理器較容易發(fā)生內(nèi)存溢出等錯誤,這是因為傳統(tǒng)的XSLT處理器采用的是DOM樹解析GML的緣故.因此對于較大數(shù)據(jù)量的GML文檔,傳統(tǒng)的XSLT處理器具有較大的局限性.針對這個問題,文中的GSxslt處理器選擇了SAX的解析方法,因為SAX解析是事件驅(qū)動的解析方法,不存在內(nèi)存樹概念,也就不會造成內(nèi)存溢出的問題,可以很好的支持大數(shù)據(jù)量的GML文檔的轉(zhuǎn)換請求.但是采用SAX解析的方法僅僅解決了GSxslt處理器處理大文檔數(shù)據(jù)的能力,但是并不能進(jìn)一步的提升轉(zhuǎn)換速度.根據(jù)觀察,XSL文件本身包含了兩部分信息:一部分是XSL本身的需要從源GML文件定位數(shù)據(jù)的標(biāo)簽結(jié)點,這些結(jié)點需要用到GML文檔的結(jié)點內(nèi)容進(jìn)行匹配模板的操作;還有一部分是目標(biāo)語言的語法定義,這里是SVG的語法,也就是目標(biāo)語言的構(gòu)建信息,這部分在SAX方式掃描源GML文件時不需要進(jìn)行信息的收集和匹配定位.在xslt處理器解析GML文檔時,每遍歷到一個結(jié)點就需要去遍歷XSL樣式表文件,所以樣式表文件的大小很大程度上會影響轉(zhuǎn)換效率.因此系統(tǒng)將XSL樣式表文件分成兩部分,一部分由匹配定位節(jié)點信息構(gòu)成,一部分由目標(biāo)樹構(gòu)成SVG語法組成.圖2是對XSL樣式表進(jìn)行分類的具體實例.這個XSL樣式表包含了SVG的文檔結(jié)構(gòu).同時,考慮到要對樣式表文件進(jìn)行分類,并且需要由系統(tǒng)自身控制解析樣式表的事件流,所以采用Stax解析方法,將需要的能夠觸發(fā)匹配的標(biāo)簽元素事件“拉”出來,放入內(nèi)存數(shù)據(jù)流中.GSxslt處理器將XSL樣式表中具有定位信息的,比如xsl:for-each、xsl:variable、xsl:copy-of、xsl:value-of等加入樣式表第一類中(圖2框內(nèi)部分),這部分包括由XSL規(guī)范所定義的元素,并且包含那些在這些元素之間的非XSL規(guī)范定義的元素;將表示目標(biāo)樹SVG語法的部分加入第二類(圖2框外部分),這部分包括目標(biāo)文檔的所有元素且第一部分不包括的元素.分類結(jié)束后,對XSL樣式表來說,就分成了包含兩個類別的片段集合,而其中的第一類片段才是我們真正需要遍歷匹配的片段,在匹配結(jié)束后,再根據(jù)片段在原來XSL樣式表文件中的位置,合并數(shù)據(jù)輸出流,可以得到目標(biāo)SVG文檔.以圖2為例,整個文件分為5個片段,其中第1、3、5片屬于第二類信息;第2、4片屬于第一類信息.本例中就只有2、4片段需要遍歷匹配GML文檔結(jié)點,而不用對整個XSL文檔事件進(jìn)行遍歷.最后按照數(shù)據(jù)流順序進(jìn)行合并即可得所需的SVG文件.5gsxlust數(shù)據(jù)處理性能測試為了測試文中設(shè)計的XSLT處理器的效率,將它與目前比較主流的Xalan-java進(jìn)行比較,測試文件從幾十KB到幾十MB,文件信息包括加拿大的城市、河流、州等地理信息數(shù)據(jù),測試環(huán)境是雙核IntelCore2Duo,500G硬盤,4G內(nèi)存,測試數(shù)據(jù)如表1所示.從表1中可以看到,文中設(shè)計的GSxslt處理器在各個大小的源文檔情況下性能都較Xalan處理器優(yōu)秀.從總耗時可以發(fā)現(xiàn),GSxslt處理文檔速度明顯較快,并且隨著文檔大小的不斷增大;傳統(tǒng)的Xalan處理器將不能夠處理過大的文件,原因就是傳統(tǒng)處理器采用了DOM解析的方法,過大的GML文檔將導(dǎo)致程序內(nèi)存溢出,而GSxslt則沒有這個限制.6sax-gml轉(zhuǎn)換文中設(shè)計和實現(xiàn)了GML轉(zhuǎn)換成SVG的XSLT處理器.并對傳統(tǒng)XSLT處
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 茶藝師對茶葉的認(rèn)識試題及答案
- 2025年茶藝師天賦素養(yǎng)試題及答案
- 茶藝師考試實踐環(huán)節(jié)的試題及答案
- 從事茶藝行業(yè)的前景解析試題及答案
- 婦幼保健員考試科研支持試題及答案2025
- 婦幼保健員照護(hù)技能考察試題及答案
- 2025年度生物制藥干股入股合作協(xié)議書
- 2025年度洗浴中心員工職業(yè)成長支持雇傭合同
- 2025年度試用期勞動合同爭議解決與調(diào)解
- 2025年度旅游度假村特許經(jīng)營協(xié)議
- 生物制藥工藝學(xué)第四
- 游戲法緩解小班幼兒入園焦慮的個案研究
- 《你說它是啥東西》設(shè)計
- 宮頸錐切日間手術(shù)臨床路徑(婦科)及表單
- GB 5009.256-2016食品安全國家標(biāo)準(zhǔn)食品中多種磷酸鹽的測定
- 甘肅地質(zhì)災(zāi)害危險性評估規(guī)程DB62-2023
- GA/T 1073-2013生物樣品血液、尿液中乙醇、甲醇、正丙醇、乙醛、丙酮、異丙醇和正丁醇的頂空-氣相色譜檢驗方法
- 住宅建筑設(shè)計原理(二)課件
- 2023年滄州交通發(fā)展(集團(tuán))有限責(zé)任公司招聘筆試模擬試題及答案解析
- 科技項目研發(fā)經(jīng)費歸集課件
- ABB濾油機(jī)介紹教程課件
評論
0/150
提交評論