歡迎您光臨本站 註冊首頁

談XML的優勢

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

可能有用戶會提出這樣的疑問:既然我們已經擁有逐步完善的HTML,為何還需要一種針對Web的全新語言呢?為何還要發展XML呢?讓我們通過XML、SGML與HTML的比較來回答這些問題吧.

XML由SGML演變而來,但是,XML並不是SGML,的一種應用,而是它的子集.XML,在許多方面都與SGML雷同.任何用XML完成的工作同樣也可以用SGMI.來完成.既然如此,為何還需要XML呢?簡單地說,XML擁有SGML80%的功能,但其複雜程度卻只有SGML的20%.xML能有效地在互聯網上應用,因而XML,帶來了在SGML中所沒有的優點,而且XML能與HTML整合來描述與顯示數據.在Web上傳遞數據方面,

XML擁有了幾個超越SGML的優點:

XML的規模比SGML小.二者的規範書的厚度就證明了這一點:基本的SGML規範書約有155頁之多,而XML規範書卻只有35頁.

XML包含可擴展鏈接語言xLL.XML不僅支持在HTML中的基本超級鏈接,並且更進一步擴展鏈接的概念.雖然,SGML允許定義超級鏈接機制,但它並沒有將超級鏈接納入初版的規範書中.

XML包含可擴展樣式語言XSL.XSL提供支持樣式機制,並提供一些在SGML中所沒有的支持,允許文件作者建立各種風格(粗體、斜體等)的樣版,或者結合各種風格並將它們應用到文件的元素中.

由於HTML語言在實際應用中越來越無法滿足用戶的需求,因此出現了新標記語言XML.XML可以很容易地定義新的應用標記,而這一點是HTML所不能夠實現的.由於XML是SGML的子集,XML文件也像其他的SGML文件(如HTML)一樣,可以被解析和驗證其有效性.

由此可見,相對原來的SGML和HTML,XML,都顯示出高人一籌的優越性.

XML提供了一種標準化、靈活、強大的方法,用於在許多不同平台和應用程序之間交換數據.市場上已經有許多成熟的軟體可用來幫助編寫、管理XML文件,它是一種開放式標準,是實現網路功能的最佳選擇.XML給人的感覺是高效而且可擴充的,事實上也確實如此.

XML支持DTD,使用者可以創建和使用自己的標記,也可與他人共享.XML的可擴展性很大,在XML中,可以定義無限量的標記.XML提供了一個獨立的運行程序的方法,並通過這種方法來共享數據.具體的做法就是通過使用DTD,使不同組中的人能夠使用共同的DTD來交換數據.應用程序可以使用這個標準的DTD來驗證收到的數據是否有效,也可以使用一個DTD來驗證自己的數據.

XML標準已經國際化,它支持世界上大多數的文字.這源於它的統一代碼的新編碼標準,這種編碼標準支持世界上所有以編程語言(如C/C /BasicNisual Basic/JavaScript/Perl)編寫的混合文本.凡能閱讀XML語言的軟體都能順利處理這些不同語言字元的任意組合.因此,XML不僅能在不同的計算機系統之間交換信息,而且能跨越國界和不同文化疆界交換信息.

XML可用於不同類型、系統間的交換格式的傳送,從而簡化了從一個應用程序到另一個應用程序之間傳遞信息的工作.XML的特性給應用軟體賦予了強大的功能和靈活性,也給開發者和用戶帶來諸多好處,如下所示:

數據可以被XML惟一標識,因此可以實現更有意義的網路搜索.

數據一旦建立,可將XML,文件發送到其他應用軟體、對象或中間層伺服器中做進一步處理或發到客戶端瀏覽器中直接瀏覽.

描述數據結構的標記可以被重複使用,XML能使異構資料庫中的數據比較容易集成.

XML具有擴展性和靈活性的特點,能描述各種應用軟體中的數據.

為實現本地計算和處理,提供了更為便捷的手段.

可以根據客戶配置、使用者選擇和其他標準,將本地XML數據動態地表現出來.

通過XMI_,,可以實現粒狀數據的更新.

XML的開放是基於文本的格式的,可以用HTTP進行傳送,無需對現有網路進行變更.

XML實現了內容與顯示完全分開,可以更加靈活地進行編程,減少了伺服器的工作量.

增強了伺服器的升級性能.

由於XML是在HTML之後才發展起來的,許多人就將XML認為是HTML的替代品.事實上,這兩種語言對數據的處理是不同的.例如,XML用來在Web上結構化和描述數據;HTML則更適合用來格式化數據.大部分HTML網頁不但儲存數據,也同時將數據格式化,任何對HTML的置換都將在數據儲存區內發生.在許多情況下,XML可以接管資料儲存的工作(還有資料描述的工作),如此一來,HTML只被用來作數據的格式化與腳本.而且可以將HTML格式轉化為XML格式.

此外,用戶可以在XML中開發出其他的語言與標記,可以定義自己的標記集(tag set).


[火星人 ] 談XML的優勢已經有538次圍觀

http://coctec.com/docs/java/show-post-59800.html