梁延龍,李璇瓊
(四川建筑職業(yè)技術(shù)學(xué)院,四川 德陽 618000)
中國是地震多發(fā)國家,隨著社會(huì)經(jīng)濟(jì)的發(fā)展,地震造成的經(jīng)濟(jì)損失和人員傷亡都呈上升趨勢。因此,地震發(fā)生后快速獲取準(zhǔn)確的災(zāi)情,采取有效的救援工作,是減輕災(zāi)害的最有效方法之一[1]。地震應(yīng)急成果是指破壞性地震發(fā)生后,快速進(jìn)行震情、災(zāi)情的評估與處理,提供震中位置、災(zāi)區(qū)范圍、人員傷亡、經(jīng)濟(jì)損失、次生危險(xiǎn)等一系列評估結(jié)果,為指揮部成員提出及時(shí)的“提醒”和相關(guān)的輔助信息,方便做出決策救災(zāi)方案、下達(dá)實(shí)施指令。
針對地震應(yīng)急成果的快速生成,國內(nèi)學(xué)者也做了大量的研究。例如分級評估法[2]將地震災(zāi)害損失分為4個(gè)級別進(jìn)行評估,并提出了評估時(shí)效性問題;基于人口統(tǒng)計(jì)方法[3]進(jìn)行區(qū)域震害災(zāi)情定性快速評估;利用GIS技術(shù)建立震害評估模式[4],快速評估地震災(zāi)情。
本文主要從地震應(yīng)急成果生成效率方面進(jìn)行討論,地震應(yīng)急成果的內(nèi)容來源于一系列的地震應(yīng)急計(jì)算模型,如何快速進(jìn)行地震應(yīng)急模型計(jì)算,并把模型計(jì)算結(jié)果轉(zhuǎn)換成地震應(yīng)急成果所需的內(nèi)容一直是地震應(yīng)急領(lǐng)域研究的主要方向,XLST技術(shù)在模型結(jié)果轉(zhuǎn)換上具有快速、靈活及可定制等特性。本文詳細(xì)介紹了XSLT的概念及其工作原理,并對XSLT在地震應(yīng)急成果生成中的應(yīng)用進(jìn)行了研究。
XSLT(Extensible Stylesheet Language Transformations,可擴(kuò)展樣式表轉(zhuǎn)換語言) 是由W3C組織于1999年11月16日發(fā)布的一個(gè)標(biāo)準(zhǔn),負(fù)責(zé)XML文檔的轉(zhuǎn)換[5]。它詳細(xì)規(guī)定了轉(zhuǎn)換所需要的詞匯表和詞匯表中的詞匯對應(yīng)的語義。由于XSLT所具有的優(yōu)異特性,它越來越多地使用在不同XML文檔格式轉(zhuǎn)換的場合中,從一種邏輯結(jié)構(gòu)的XML向另一種邏輯結(jié)構(gòu)的XML轉(zhuǎn)換,或是轉(zhuǎn)換為可瀏覽的HTML文檔等。XSLT還可以向輸出文件中增加全新的元素,或去掉一些元素。它可以重新安排這些元素并對元素進(jìn)行分類,測試并確定顯示那些元素等[6]。
使用 XSLT 有很多優(yōu)點(diǎn)[7]:
(1) 功能強(qiáng)大。XSLT提供了如條件判斷、排序、表達(dá)式求值等手段來實(shí)現(xiàn)各種變換的要求;
(2) XSLT符合XML語法,可以利用XML各種良好的可擴(kuò)展性和工具;
(3) XSLT是W3C制定的標(biāo)準(zhǔn),通用性有保證,使用者不必考慮工作運(yùn)行的平臺或是編程語言的不兼容性等。
XSLT本質(zhì)上是一種XML轉(zhuǎn)換語言,可以把一個(gè)或多個(gè)XML文檔轉(zhuǎn)換成其它XML文檔。XSLT工作流程如圖1所示,核心流程是使用XSLT處理器處理兩個(gè)基于XML規(guī)范的輸入樹,并生成一個(gè)最終目標(biāo)樹。
圖1 XSLT工作流程Fig.1 XSLT workflow
XSLT把源XML文檔看做源樹,把它轉(zhuǎn)換為一個(gè)不同結(jié)構(gòu)的目標(biāo)樹。源樹與目標(biāo)樹是分離的,可以通過過濾和重新排序源樹、增加任意的結(jié)構(gòu),構(gòu)造出和源樹結(jié)構(gòu)截然不同的目標(biāo)樹。XSLT處理器的工作就是用XSLT模板把XML來源文件轉(zhuǎn)換成另一種XML輸出文件。XSLT處理器先啟動(dòng)XML分析器去讀取來源XML文件,XML分析器再將獲取的相關(guān)信息回報(bào)給XSLT處理器,XSLT處理器用XSLT模板把XML來源文件轉(zhuǎn)換成另一種XML輸出文件。XSLT在地震應(yīng)急成果生成的應(yīng)用中,主要工作是編寫適用于地震應(yīng)急計(jì)算模型的XSLT模板。XSLT模板的內(nèi)容基于地震應(yīng)急計(jì)算模型輸入?yún)?shù)所描述的轉(zhuǎn)換規(guī)則,并定義用于轉(zhuǎn)換的指令元素,用這些指令書寫的文檔稱作樣式表。XSLT模板編寫完成后,可通過XSLT處理器把源XML文檔轉(zhuǎn)換為地震應(yīng)急計(jì)算模型所需的目標(biāo)XML文檔。
基于XSLT地震應(yīng)急評估方法和現(xiàn)行地震應(yīng)急評估方法有共同點(diǎn)也有區(qū)別。共同點(diǎn)是兩種方法的模型輸入數(shù)據(jù)來源都是地震模型計(jì)算結(jié)果;區(qū)別在于兩種方法獲取模型輸入數(shù)據(jù)的方式不同,前者是通過XLST模板快速提取地震模型結(jié)果生成模型輸入XML文件,后者是直接建立數(shù)據(jù)庫鏈接讀取地震模型結(jié)果生成模型輸入XML文件。下面從計(jì)算效率和靈活性方面對兩種方法進(jìn)行對比。
(1)計(jì)算效率:地震應(yīng)急預(yù)評估有多個(gè)模型計(jì)算組成,如圖 2所示。地震模型輸入XML文件生成的快慢會(huì)直接影響到整個(gè)地震應(yīng)急預(yù)評估的計(jì)算效率,例如建筑物破壞計(jì)算模型的輸入XML文件需要使用區(qū)縣地震影響范圍模型的結(jié)果,一般區(qū)縣地震影響范圍的結(jié)果數(shù)據(jù)都在100條以上,使用現(xiàn)行地震應(yīng)急評估方法獲取此數(shù)據(jù)效率比較低,而XSLT模板可以快速獲取此數(shù)據(jù)并生成模型輸入XML文件。根據(jù)系統(tǒng)演練測試結(jié)果,使用現(xiàn)行地震應(yīng)急評估方法計(jì)算整個(gè)地震應(yīng)急預(yù)評估流程,需要大約10分鐘時(shí)間;而使用基于XSLT地震應(yīng)急評估方法計(jì)算此流程,只需要大約4分鐘時(shí)間。
圖2 地震應(yīng)急預(yù)評估流程Fig.2 Earthquake emergency pre-assessment process
(2) 靈活性:現(xiàn)行地震應(yīng)急評估方法一般是把讀取地震模型結(jié)果的方法寫入到了地震模型里,如果數(shù)據(jù)來源地震模型的結(jié)構(gòu)有變動(dòng),就需要設(shè)計(jì)此模型的程序員親自進(jìn)行修改,靈活性不高?;赬SLT地震應(yīng)急評估方法使用XSLT模板來讀取地震模型結(jié)果,XSLT模板一般以XSL文件的格式存儲于本地或存儲到數(shù)據(jù)庫表,如果數(shù)據(jù)來源有變動(dòng),可以由非程序設(shè)計(jì)人員對XSLT模板進(jìn)行修改。相對來說,基于XSLT地震應(yīng)急評估方法的靈活性好,可操作性和可配置性高。
地震應(yīng)急預(yù)評估流程(圖2) 中的模型計(jì)算大部分都使用了XSLT模板,下面在其中挑選了三個(gè)有代表性的XSLT地震模型應(yīng)用進(jìn)行了分析,主要分析XLST在地震模型應(yīng)用中的轉(zhuǎn)換模板和目標(biāo)XML文件。主要包括地震參數(shù)提取應(yīng)用、死亡人數(shù)合計(jì)應(yīng)用和震區(qū)重要目標(biāo)判定模型應(yīng)用。
地震參數(shù)提取是從其他模型結(jié)果中獲取地震三要素信息(發(fā)震時(shí)刻、震級、震中位置經(jīng)緯度),可以通過XSLT直接獲取其他模型的計(jì)算結(jié)果,使用XSLT中的過濾指令轉(zhuǎn)換成模型所需的目標(biāo)XML文檔(XSLT轉(zhuǎn)換圖和轉(zhuǎn)換模板如圖3和圖4所示),地震參數(shù)可以應(yīng)用到其他地震計(jì)算模型和災(zāi)情文檔生成中。地震參數(shù)提取源XML和目標(biāo)XML文檔內(nèi)容如圖 5和圖6所示。
圖3 地震參數(shù)提取XSLT轉(zhuǎn)換Fig.3 EarthquakeparameterextractionofXSLTtransformation
圖4 地震參數(shù)提取XSLT轉(zhuǎn)換模板Fig.4 Earthquake parameters extract the XSLT transformation template
圖5 地震參數(shù)提取源XML文檔Fig.5 Earthquake parameters extract the source XML document
圖6 地震參數(shù)提取目標(biāo)XML文檔Fig.6 Earthquake parameters extract the target XML document
死亡人數(shù)合計(jì),需要把死亡人數(shù)計(jì)算模型的輸入結(jié)果XML作為源XML文檔,可以通過XSLT中的sum函數(shù)獲取源XML死亡人數(shù)節(jié)點(diǎn)的合計(jì)(XSLT轉(zhuǎn)換圖和轉(zhuǎn)換模板如圖 7和圖8所示),輸入死亡人數(shù)合計(jì)數(shù)量,死亡人數(shù)合計(jì)數(shù)量可用于災(zāi)情文檔生成。
圖7 死亡人數(shù)合計(jì)XSLT轉(zhuǎn)換Fig.7 The death toll adds up to the XSLT transformation
圖8 死亡人數(shù)合計(jì)XSLT轉(zhuǎn)換模板Fig.8 The death toll adds up to the XSLT transformation template
由于災(zāi)情文檔生成中需要獲取震區(qū)重要目標(biāo)判定結(jié)果列表,但是震區(qū)重要目標(biāo)判定模型輸入結(jié)果無法直接滿足災(zāi)情文檔生成所需要的格式,所以需要把震區(qū)重要目標(biāo)判定模型的輸入結(jié)果作為源XML文檔,通過XSLT中的定位和增加指令(XSLT轉(zhuǎn)換圖和轉(zhuǎn)換模板如圖9和圖10所示),編寫XSLT模板以獲得滿足格式的目標(biāo)XML文檔。
圖9 震區(qū)重要目標(biāo)判定模型XSLT轉(zhuǎn)換Fig.9 Earthquake region important objective decision model XSLT transformation
圖10 震區(qū)重要目標(biāo)判定模型XSLT轉(zhuǎn)換模板Fig.10 Earthquake region important objective decision model XSLT transformation template
借助XSLT技術(shù)可以快速的組織地震應(yīng)急模型所需的數(shù)據(jù),從不同的來源XML文檔規(guī)范為模型所需的XML結(jié)構(gòu)化文檔,提高了地震應(yīng)急模型的計(jì)算效率,從而加快了地震應(yīng)急成果的生成速度。
本文詳細(xì)描述了XSLT的概念及其工作原理,并結(jié)合多個(gè)應(yīng)用XSLT技術(shù)的地震應(yīng)急計(jì)算模型,分別闡述了XSLT在地震參數(shù)提取、死亡人數(shù)合計(jì)、震區(qū)重要目標(biāo)判定模型、震區(qū)泥石流危險(xiǎn)等級判斷模型等地震應(yīng)急模型中的應(yīng)用,說明XSLT在地震應(yīng)急成果生成中具有方便、快捷、準(zhǔn)確、實(shí)用的特點(diǎn)。