基于可擴(kuò)展標(biāo)記語言的webweb發(fā)布系統(tǒng)_第1頁
基于可擴(kuò)展標(biāo)記語言的webweb發(fā)布系統(tǒng)_第2頁
基于可擴(kuò)展標(biāo)記語言的webweb發(fā)布系統(tǒng)_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于可擴(kuò)展標(biāo)記語言的webweb發(fā)布系統(tǒng)

1web服務(wù)的發(fā)展現(xiàn)狀隨著信息技術(shù)的快速發(fā)展,網(wǎng)絡(luò)技術(shù)滲透到社會(huì)生活的各個(gè)領(lǐng)域,人們對(duì)web服務(wù)的需求也越來越高。從以前簡(jiǎn)單的靜態(tài)信息顯示到現(xiàn)在動(dòng)態(tài)交互的Web網(wǎng)頁的出現(xiàn),一系列相關(guān)的技術(shù)和開發(fā)語言也相繼問世。隨著目前電子商務(wù)的需求越來越廣泛,Web服務(wù)的發(fā)展趨向于復(fù)雜化、多樣化和智能化。人們希望能在自己的PC機(jī)、便攜機(jī)、WAP手機(jī)等終端上,通過簡(jiǎn)單的操作就能完成如信息查詢、股票交易、在線訂購、在線會(huì)議等功能,這給動(dòng)態(tài)網(wǎng)頁的發(fā)布帶來更高的技術(shù)要求。2生成多媒體web發(fā)布系統(tǒng)傳統(tǒng)的Web發(fā)布技術(shù)中,所有的內(nèi)容都以HTML的形式傳遞。瀏覽器將來自頁面的請(qǐng)求發(fā)送給HTTP服務(wù)器,這個(gè)請(qǐng)求會(huì)跟隨著一系列的參數(shù)名稱和值。服務(wù)器接收到請(qǐng)求后,會(huì)通過CGI腳本、ASP、JavaServlet等代碼動(dòng)態(tài)生成HTML來響應(yīng)請(qǐng)求。其過程如圖1所示。在這種傳統(tǒng)的動(dòng)態(tài)Web發(fā)布技術(shù)中,業(yè)務(wù)邏輯、數(shù)據(jù)和HTML顯示混雜在一起,使整個(gè)系統(tǒng)邏輯不清,不易于系統(tǒng)的設(shè)計(jì)維護(hù)。特別是在電子商務(wù)環(huán)境中,用戶希望得到個(gè)性化的服務(wù)。對(duì)于同一內(nèi)容,不同的用戶希望看到不同的部分,或者通過不同的終端設(shè)備以不同的方式顯示。對(duì)于這樣的情況,在傳統(tǒng)的動(dòng)態(tài)Web發(fā)布技術(shù)中只能對(duì)于不同的顯示進(jìn)行不同的編碼。這個(gè)編碼不僅是重新定義顯示方式的編碼,也包括業(yè)務(wù)邏輯處理和后臺(tái)數(shù)據(jù)訪問的編碼,這無疑進(jìn)行了很多重復(fù)的工作,而且使整個(gè)系統(tǒng)不易于維護(hù)和擴(kuò)充。3實(shí)現(xiàn)了數(shù)據(jù)的分離作為SGML子集的XML語言,不僅繼承了SGML的易擴(kuò)展性,而且還具有簡(jiǎn)單和易描述的特點(diǎn),它實(shí)現(xiàn)了數(shù)據(jù)內(nèi)容和顯示方式的分離。對(duì)于同一份XML描述的內(nèi)容,可以針對(duì)不同的顯示終端、不同的瀏覽器、不同的個(gè)性化顯示方式來分別實(shí)現(xiàn),而不改動(dòng)后臺(tái)的業(yè)務(wù)處理邏輯,這就彌補(bǔ)了傳統(tǒng)的動(dòng)態(tài)Web發(fā)布技術(shù)的不足。利用XML來實(shí)現(xiàn)動(dòng)態(tài)Web的發(fā)布,利用的主要技術(shù)是XMLDOM和XSL。(1)基于3d植物樹狀模型的自動(dòng)發(fā)布DOM是W3C為XML標(biāo)準(zhǔn)化了的一套應(yīng)用程序編程接口,是一種獨(dú)立于語言和平臺(tái)的定義,它在計(jì)算機(jī)的內(nèi)存中形成了一個(gè)樹狀模型。利用DOM中的對(duì)象,開發(fā)人員可以對(duì)樹狀模型進(jìn)行讀取、搜索、修改、添加和刪除等操作。使用DOM來進(jìn)行動(dòng)態(tài)Web的發(fā)布,可以從用戶登錄的身份或用戶向服務(wù)器發(fā)出的HTTP請(qǐng)求中得到用戶的個(gè)性化需求或頁面的顯示方式,并以此來解析源XML文檔得到顯示給用戶的目標(biāo)頁面。編寫使用DOM方法的Java代碼可以完全控制XML的轉(zhuǎn)換,但是對(duì)于每一步的轉(zhuǎn)換都必須通過編碼實(shí)現(xiàn),工作量大。(2)xllt和xpatXSL是一種基于XML的語言。它可以將XML文檔轉(zhuǎn)換為另一種XML文檔或轉(zhuǎn)換為XML文檔可翻譯的對(duì)象,如SVG,PDF等。利用XSL樣式表,可以在瀏覽器中定制用戶的個(gè)性化顯示頁面,并可以將同一份XML文檔描述的數(shù)據(jù)內(nèi)容顯示到不同的顯示終端上。與使用DOM方式來轉(zhuǎn)換XML文檔相比,XSL是一種編程更簡(jiǎn)單的方式,它不像DOM可以操縱樹狀模型,而只是描述了源XML文檔和目標(biāo)文檔之間的關(guān)系。它包括XSLT,XSLF和XPath三部分。XSLT著重于XML文檔轉(zhuǎn)換;而XSLF著重于格式對(duì)象;XPath則著重于從XML層次結(jié)構(gòu)上訪問節(jié)點(diǎn)。利用XSL引擎轉(zhuǎn)換XML文檔時(shí),首先要將被轉(zhuǎn)換的文檔轉(zhuǎn)換為一種內(nèi)部模型,這個(gè)內(nèi)部模型也是一個(gè)樹狀模型,它獨(dú)立于任何一種處理它的API。一種更通用的方式是結(jié)合以上兩種技術(shù)來實(shí)現(xiàn)動(dòng)態(tài)Web發(fā)布。在這種新的技術(shù)實(shí)現(xiàn)中,Web服務(wù)器訪問數(shù)據(jù)庫并完成業(yè)務(wù)邏輯操作,之后在Web服務(wù)器上生成一個(gè)XML文檔。Web服務(wù)器再根據(jù)不同的用戶、不同的瀏覽器、不同的終端來調(diào)用不同的XSL樣式表,將服務(wù)器上的XML文檔轉(zhuǎn)換為不同的格式并發(fā)送給客戶端瀏覽器。其處理過程(圖2)是將XML文檔的轉(zhuǎn)換放在服務(wù)器上完成,處理時(shí)也可以將這一轉(zhuǎn)換過程放在客戶端。Web服務(wù)器將業(yè)務(wù)邏輯操作完成后形成的XML文檔隨同與之相關(guān)的XSL樣式表一起發(fā)送給客戶端瀏覽器,由客戶端瀏覽器自行轉(zhuǎn)換。利用XML技術(shù)來實(shí)現(xiàn)動(dòng)態(tài)Web的發(fā)布,相對(duì)于傳統(tǒng)的發(fā)布技術(shù),有三點(diǎn)明顯的優(yōu)勢(shì):①由于顯示過程和業(yè)務(wù)處理邏輯分離,使整個(gè)系統(tǒng)結(jié)構(gòu)清晰,易實(shí)現(xiàn)模塊化設(shè)計(jì),減少重復(fù)工作。②系統(tǒng)易于維護(hù)。當(dāng)系統(tǒng)的業(yè)務(wù)邏輯發(fā)生變化時(shí),只要系統(tǒng)形成的XML文檔結(jié)構(gòu)保持不變,就無須改變客戶端的顯示代碼和執(zhí)行轉(zhuǎn)換的XSL樣式表。③系統(tǒng)擴(kuò)充方便。如果要新加一種個(gè)性化的顯示頁面或新增一種顯示終端,只需新增或修改一個(gè)XSL樣式表。由于XML是一種基于國(guó)際標(biāo)準(zhǔn)的獨(dú)立于平臺(tái)的語言,所以只要客戶端提供XML解析器,就能在任何軟硬件平臺(tái)上動(dòng)態(tài)顯示W(wǎng)eb頁面。4源rss滲出產(chǎn)生和轉(zhuǎn)換在利用XML動(dòng)態(tài)發(fā)布Web的技術(shù)實(shí)現(xiàn)中,XSL中的XSLT和XPath扮演著重要的角色。由于此時(shí)Web服務(wù)器得到用戶特殊顯示需求的方式與傳統(tǒng)的方式一樣,所以在這里假設(shè)Web服務(wù)器已通過某種方式得到了這種特殊需求。在XSLT中,樣式表包含了一套模板的規(guī)則集合。一個(gè)模板規(guī)則有兩個(gè)部分,包括匹配源樹狀模型中節(jié)點(diǎn)的模式以及實(shí)例化后組成部分目標(biāo)樹狀模型的模板。例如下面模板規(guī)則匹配了一個(gè)Book類型的元素:在XSLT中包括很多條件處理的元素,利用這些元素,可以對(duì)源文檔進(jìn)行過濾而形成多種目標(biāo)文檔。另外,為了完成更復(fù)雜的功能,可以在XSL樣式表中嵌入客戶端的腳本代碼。在客戶端轉(zhuǎn)換XML文檔比較簡(jiǎn)單,只要在源XML文檔中寫入如下語句就可以了:<xml-stylesheethref=″test.xsl″type=″text/xsl″?>客戶端瀏覽器收到從Web服務(wù)器發(fā)送過來的源XML文檔和XSL樣式表后將自行轉(zhuǎn)換,無須服務(wù)器的參與??紤]到用戶通過選擇在瀏覽器上查看源文件,便可以看到源XML文檔描述的全部數(shù)據(jù)內(nèi)容。因此,當(dāng)源XML文檔描述的部分?jǐn)?shù)據(jù)內(nèi)容對(duì)于某些人要保密時(shí),就不能將轉(zhuǎn)換放在客戶端瀏覽器中執(zhí)行,而只能在Web服務(wù)器端進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換好的目標(biāo)文檔發(fā)送給客戶端瀏覽器顯示。在服務(wù)器端對(duì)源XML文檔進(jìn)行轉(zhuǎn)換,可以利用ASP,JSP等語言及DOM對(duì)象來實(shí)現(xiàn)更復(fù)雜的功能。首先,服務(wù)器必須讀入源XML文檔和XSL樣式表文檔,可以利用如下ASP代碼實(shí)現(xiàn):下面的ASP代碼利用DOM對(duì)象實(shí)現(xiàn)了在XSL樣式表中嵌入JavaScript代碼并重新生成一個(gè)XSL樣式表文件:嵌入的腳本函數(shù)是一個(gè)過濾器,它根據(jù)從客戶端提交過來的書本ID與當(dāng)前轉(zhuǎn)換的元素ID相比較,并返回一個(gè)Boolean值?,F(xiàn)在服務(wù)器可以對(duì)源XML文檔進(jìn)行轉(zhuǎn)換了,利用下面的ASP代碼可以實(shí)現(xiàn)轉(zhuǎn)換:xml.transformNode(xsl)其中,xml表示要轉(zhuǎn)換的XML文檔對(duì)象,xsl為樣式表文檔對(duì)象。在XSL樣式表中,利用循環(huán)和條件處理元素,就可以根據(jù)用戶的需要在源XML文檔轉(zhuǎn)換為目標(biāo)文檔的過程中過濾掉不必要的信息,如以下代碼:5模塊化和并行進(jìn)行的原則毫無

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論