曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
• 我們被限制在了客戶端瀏覽器上。
• 沒有人建立服務器頁面與可編程的代理或其他應用程序通信。請求的結構是固定的。你或
者去協調整個服務器應用程序開發組的工作,或者是顛倒設計結構。結果是,如果不是服
務器開發組的成員,就很難編制客戶端應用程序。
• 所有的內容都以H T M L的形式傳遞。這就限制了客戶端進行任何后期處理的能力,而且在
傳遞時,用戶所能看到的也僅限于服務器應用程序決定的內容。
• 如果你希望看到不同的顯示方式,比如用圖形替代表格,或者另一種排序方式,就必須再
到服務器上打一個來回。
• 應用程序非常脆弱;客戶端和服務器必須緊密同步。請求只要有一點點變形就會中斷服務
器應用程序。
那么,X M L如何幫助我們解決這些問題呢?
1.3.2 XML下的Web體系結構
現在,我們將目光放得長遠一些,看一看X M L在未來會給我們帶來什么。客戶端—瀏覽
器或者程序—將一個X M L文檔作為請求發送給服務器。同傳統的We b應用程序一樣,它包含
了指定參數。但是,與傳統的客戶端不同,請求的結構會根據在運行時從服務器上得到的標準
化機制來正式指定。這一機制會保證服務器所期望的結構,并允許客戶端在傳輸前驗證請求的
正確性。服務器也能夠在接收時執行有效性驗證。
一旦請求到達,服務器可能繼續傳統We b應用程序的處理流程,也可能做出某些改動。
X M L并不會專注于服務器與服務器之間的通信,但X M L研究者中的改革派使用X M L來格式化這
類通信。既然在這類交換中服務器收到的數據也是X M L,那么第一個服務器將幾個文檔合并起
來,或者將一個文檔轉化成另一種格式以滿足請求就非常簡單了。客戶端用來得到結構內容的
方法也可以在服務器上使用。由于X M L天生就是層次結構的,所以它很容易就可以對非關系型
的數據源進行編碼。但是,大多數服務器上維護的數據本來就是關系型的,因此X M L的研究者
第1章XML 簡介使用5 下載
客戶端瀏覽器
帶有由應用程序指
定的參數的請求
由腳本代碼生
成的HTML
帶有CGI或ASP腳
本的HTTP服務器
圖1-1
花費了大量的時間思考和實踐如何使關系型數據與X M L結構相匹配。所有這些都使X M L成為在
服務器與服務器應用程序之間交換數據的最佳媒介。一旦X M L被選中成為某個組織交換數據的
機制,編程人員可以很快地得到或編制組件和實用程序庫以便操作數據。這些對于處理來自客
戶機應用程序的請求也同樣有用(參見圖1 - 2)。
圖1-2
那么這些對我們來說有什么益處呢?首先,我們不再局限于基于瀏覽器的客戶端。X M L本
身就是數據,而且可以由程序任意地控制。同樣的數據,即可以設定其樣式化以便在瀏覽器中
顯示,也可以交給一個代理進行后臺處理。在這個機制中, X M L文檔無需假設數據的最終用途。
如果得知客戶端需要H T M L,由數據驅動的轉換過程就會使用X M L文檔生成H T M L頁面。而生
成X M L的底層應用程序不需要任何修改。
在這種機制下,服務器端的應用程序與客戶端的耦合程度要松散得多,因為程序具備了找
出X M L文檔的結構的能力。這樣一來,富有創新意義的應用程序就可以根據程序的要求編寫結
構新穎的各類文檔,應用程序也無需為每一種新的文檔類型編制定制的軟件。更為典型的應用
是創建工業標準標記集,應用程序也可以利用結構自動感知機制來避免因版本更迭帶來的矛盾。
在不久的將來,網絡中的服務器,客戶機和應用程序所進行的處理都將使用這種機制交換
數據。幸運的是,這種機制擴展起來并不困難,而且能夠在運行時自動找出數據的結構。事實
上,任何一種平臺都支持這種機制,它使用簡單,能夠處理來自不同數據源的標記數據。應用
程序的開發者可以使用來自非傳統數據源或其他服務器的數據來滿足客戶端的請求。自此, We b
開發已經從客戶機-服務器計算體系邁向真正的多層模式。
毫不夸張地說,這一目標離實現已為期不遠。
1.4 XML基本特征
現在,讓我們了解一下一旦采用X M L,我們能夠完成哪些工作,仔細觀察X M L如何使我們
實現自己的目標。在前面的章節中,我們曾經大概了解到, X M L是一種使用標記標記內容以傳
輸信息的簡單方法。標記用于界定內容,而X M L的語法允許我們自行定義任意復雜度的結構。
這一切都是使用普通的文本,而不是二進制的數據格式來實現的,這對于跨平臺交換數據來說
6使用XML 高級編程
下載
客戶端瀏覽器
XML或
HTML
文檔
有腳本的
HTTP服務器
關系型
數據
應用程序服務器
HTTP服務器層次型數據
XML
程序或文檔
代理
確實是一個非常不錯的方案。實際上,每一種普通的操作系統(只要不是嵌入使用的)能夠以
某種方式處理文本。這也是H T M L之所以能夠在很短的時間內流行起來的原因。X M L把這一優
勢提高到一個更新的層次,因為我們可以根據自己的需要任意地擴展X M L。由于這種擴展機制
是標準化的,所以我們可以自動地將這類擴展信息傳遞給任何讀取我們數據的人—編程者或
機器。下面,我們需要了解X M L的幾個重要方面的內容,只有這樣,我們才能夠充分理解,并
有效地將它們應用到我們的程序中。
自描述數據
界定X M L內容的標記會給所界定的數據中的每一個元素命名。在標記中,我們還會發現特
定的屬性,它們會為所描述的元素提供某些附加信息。例如:
程序清單1 - 3
之所以說數據是自描述的,在于其中的每個項目都有自己的名字,而這個名字又與文檔所
描述的現實世界中的問題所涉及的某項具體內容密切相關。到目前為止,我們所了解的內容都
還與H T M L非常相似。雖然H T M L標記的含義也是由W 3 C制訂的。但是如果你希望描述某種不為
H T M L推薦標準所涉及的事務,很快就會發現自己黔驢技窮。考慮一下X M L,看一看同樣的內
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(3)