1)XML文檔的內容和結構完全分離
這個特性為XML的應用帶來了很大的好處。基於這樣的特點,企業系統可以輕松地實現內容管理和流程管理的徹底分離,例如系統架構師可以只關註流程運轉中各環節的接口定義,而各部門則可以專註在內容發布和維護之上。
舉例來說,微軟公司的產品Biztalk正是利用了XML內容和結構分離的特點來實現內容和流程定義的分離。另外壹個廣泛的應用是XSL技術,由於XML文件的內容和結構分離,XSL才可以在不影響內容的情況下改變XML文件結構。
2)互操作性強
大多數純文本的文件格式都具有這個優點。純文本文件可以方便地穿越防火墻,在不同操作系統上的不同系統之間通信。而作為純文本文件格式,XML同樣具有這個優點。
3)規範統壹
XML具有統壹的標準語法,任何系統和產品所支持的XML文檔,都具有統壹的格式和語法。這樣就使得XML具有了跨平臺跨系統的特性。作為對比,同樣作為文本語言,JavaScript的標準就遠沒有XML這樣統壹,以至於經常出現同壹靜態頁面在不同的瀏覽器中產生不同的結果,而腳本程序員往往需要在程序的入口處費力地判斷客戶端所支持的腳本版本。
4)支持多種編碼
相對於普通文本文檔而言,XML文檔本身包含了所使用編碼的記錄,這方便了多語言系統對數據的處理。
5)可擴展性
XML是壹種可擴展的語言,可以根據XML的基本語法來進壹步限定使用範圍和文檔格式,從而定義壹種新的語言。例如:MathML(數學標記語言)、CML(化學標記語言)和TecML(技術數據標記語言),每種語言都用於其特定的環境。
使用XML的壹些場合
1、數據交換
用XML在應用程序和公司之間作數據交換已不是什麽秘密了,毫無疑問應被列為第壹位。那麽為什麽XML在這個領域裏的地位這麽重要呢?原因就是XML使用元素和屬性來描述數據。在數據傳送過程中,XML始終保留了諸如父/子關系這樣的數據結構。幾個應用程序可以***享和解析同壹個XML文件,不必使用傳統的字符串解析或拆解過程。
相反,普通文件不對每個數據段做描述(除了在頭文件中),也不保留數據關系結構。使用XML做數據交換可以使應用程序更具有彈性,因為可以用位置(與普通文件壹樣)或用元素名(從數據庫)來存取XML數據。
2、Web服務
Web服務是最令人激動的革命之壹,它讓使用不同系統和不同編程語言的人們能夠相互交流和分享數據。其基礎在於Web服務器用XML在系統之間交換數據。交換數據通常用XML標記,能使協議取得規範壹致,比如在簡單對象處理協議(Simple
Object
Access
Protocol,
SOAP)平臺上。
SOAP可以在用不同編程語言構造的對象之間傳遞消息。這意味著壹個C#對象能夠與壹個Java對象進行通訊。這種通訊甚至可以發生在運行於不同操作系統上的對象之間。DCOM,
CORBA或Java
RMI只能在緊密耦合的對象之間傳遞消息,SOAP則可在松耦合對象之間傳遞消息。
3、內容管理
XML只用元素和屬性來描述數據,而不提供數據的顯示方法。這樣,XML就提供了壹個優秀的方法來標記獨立於平臺和語言的內容。
使用象XSLT這樣的語言能夠輕易地將XML文件轉換成各種格式文件,比如HTML,
WML,
PDF,
flat
file,
EDI,
等等。XML具有的能夠運行於不同系統平臺之間和轉換成不同格式目標文件的能力使得它成為內容管理應用系統中的優秀選擇。
4、Web集成
現在有越來越多的設備也支持XML了。使得Web開發商可以在個人電子助理和瀏覽器之間用XML來傳遞數據。
為什麽將XML文本直接送進這樣的設備去呢?這樣作的目的是讓用戶更多地自己掌握數據顯示方式,更能體驗到實踐的快樂。常規的客戶/服務(C/S)方式為了獲得數據排序或更換顯示格式,必須向服務器發出申請;而XML則可以直接處理數據,不必經過向服務器申請查詢-返回結果這樣的雙向“旅程”,同時在設備也不需要配制數據庫。
甚至還可以對設備上的XML文件進行修改並將結果返回給服務器。想像壹下,壹臺具有互聯網功能並支持XML的電冰箱將會給市場帶來多麽大的沖擊吧。妳從此不必早起去取牛奶了!
5、配制
許多應用都將配制數據存儲在各種文件裏,比如.INI文件。雖然這樣的文件格式已經使用多年並壹直很好用,但是XML還是以更為優秀的方式為應用程序標記配制數據。使用.NET裏的類,如XmlDocument和XmlTextReader,將配制數據標記為XML格式,能使其更具可讀性,並能方便地集成到應用系統中去。使用XML配制文件的應用程序能夠方便地處理所需數據,不用象其他應用那樣要經過重新編譯才能修改和維護應用系統。
XML在Web應用中的安全性描述
XML風險描述的優勢在Web風險中的應用
1.
Web中的風險
Web中的風險從技術方面主要分為安全漏洞和威脅攻擊。安全漏洞主要包括硬件缺陷、軟件缺陷和配置不合理;威脅攻擊則是利用安全漏洞對系統實施破壞。風險不是孤立的,壹個威脅往往由幾個威脅組成,壹個攻擊可以導致其它攻擊的發生。這些需要更好的風險描述工具。
2.
XML風險描述的優勢
傳統的風險描述主要包括適於規範數據,較為規範數據的關系數據庫描述和適宜於非規範知識的本體描述。關系數據庫不方便擴展,風險間的關系不易用二元關系表達且關系表難於設計,本體描述難度大,概念間的關系難確定且壹致性差。
XML結合了關系數據庫和個體描述,並有效地解決了傳統風險描述的缺點。同時,XML
Schema易於確定XML文檔的格式,使得風險描述更易實施和見效。
3.
XML在Web風險描述中的應用
通用漏洞發布(Common
Vulnerability
Exposures,CVE)推出了漏洞的XML格式文檔;OASIS和OWASP分別提出了各自的基於XML漏洞描述語言。若在這些漏洞描述中增加有關風險的發現信息,風險的危害信息和風險的解決信息。這樣在漏洞查找和描述的基礎上增加了風險性質(發生概率、攻擊成本等)的量化分析和策略的自動選擇的條件為系統自動防禦和策略自動實施創造了可能性。
XML開放性的優勢在Web服務中的體現
1.
Web
Service的特點
Web
Service是壹種新的面向函數和方法的應用集成技術;它是壹種標準的、開放的應用集成技術。它基於XML文檔進行服務描述、服務請求和反饋結果,基於HTTP協議進行信息傳遞易於被訪問和返回結果,基於WSC的開放協議,獨立於平臺和操作系統,實現不同平臺操作系統上的互操作性,使得異構平臺上的應用易於集成,這些促使了Web的迅猛發展。這些發展對Web的開放性提出了更高的要求。
2.
XML開放性的優勢
XML的開放性主要指它既與平臺無關,又與技術提供廠商無關。它解決了電子數據交換(Electronic
Data
Interchange,EDI)的缺點。EDI的主要缺點是國際上對於交換數據的格式和語義沒有統壹標準。盡管國際上各個國家針對不同的行業制訂了用於數據交換的EDL標準,然而壹個系統為了能夠和不同的行業乃至不同的國家的合作夥伴進行數據交換,不得不購買並安裝多種進行數據轉換的適配軟件插件,更何況各個行業具體的用戶在實現這些數據時會或多或少加上壹些個性化的標準。因此,利用EDI技術實現平臺系統成本和復雜度都比較高。
3.
XML開放性在Web服務中的應用
XML的開放性,使得許多軟件生產商提供的軟件產品支持XML,使得XML成為不同用戶的異構應用系統之間的數據交換的標準語言,具備了數據交換的透明性、各個用戶只要保證自己的信息系統提供的數據符合XML規範,就不用擔心數據接收方的解碼問題。不同的用戶間對XML標識采用統壹的約定交互信息的雙方不會因為對方使用的系統不同而受到影響。XML可以表達任意層次的結構性數據嵌套並可以進行數據正確性檢驗,支持用戶間復雜的數據交換。XML
Schema(XSD)定義了壹套標準的數據類型,並給了壹種語言來擴展它,從而實現了用戶間的數據***享。由於Web
Service自身的特點,XML為Web
Service的跨平臺性、透明地穿越合作用戶的防火墻提供了保障。
XML加密優勢在Web中的應用
對Web中數據保護的常用技術有數據加密、數字簽名和訪問控制,而XML作為壹種元語言,已經成為Web異構環境下不同類型和不同領域數據交換的開放標準。
XML文檔的訪問控制機制與壹般的訪問控制機制不同,傳統的訪問控制機制不能直接應用於對XML文檔的訪問控制中。這是因為XML查詢語言(Xquery)的存在,能直接尋找到每壹個XML語義元素。訪問控制模型必須能以多種粒度級別對XML語義元素制定訪問權限,壹般的訪問控制對此沒有特殊要求。
在Web中訪問的用戶具有異構和動態的特點使得傳統的基於ID(用戶身份)的驗證機制不能適於應用。
1.
XML加密的優勢
XML可完成加密交換數據的壹部分,而TLS/SSL的處理方式只能保證通信傳輸過程中的數據安全,不能對不同的用戶施加不同的權限來保證用戶信息的安全,即TLS/SSL不用完成對交換數據的壹部分進行加密。XML加密可實現多方之間的安全會話,即每壹方都可保持與任何通信方的安全或非安全狀態,可在同壹文檔中交換安全或非安全的數據。XML加密可作為SOAP協議的安全性擴展,因為SOAP協議基於XML,可以通嵌入加密了的XML數據的形式來實現在消息傳輸的應用層靈活采用適當的加密策略。
2.
XML加密在Web的應用
在Web中,XML加密的方法可以嵌入到文檔內部,並且把安全粒度細化到XML文檔元素和屬性級別,實現同壹文檔的不同部分的安全要求。通過XML加密可以使用壹文檔加密後對不同用戶呈現不同視圖,用戶只能看到被授權的那部分內容。