XML檢視原始碼討論檢視歷史
XML |
XML(Extensible Markup Language),中文為可擴展標記語言,標準通用標記語言的子集,是一種用於標記電子文件使其具有結構性的標記語言。
XML可以用來標記數據、定義數據類型,可以允許用戶對自己標記語言進行定義,是對人和機器都比較友好的數據承載方式。它提供統一的方法來描述和交換獨立於應用程序或供應商的結構化數據,非常適合萬維網傳輸,是Internet環境中跨平台、依賴於內容的技術,也是當今處理分布式結構信息的有效工具。
目錄
詳細介紹
格式特性
語法介紹
語言應用
詳細介紹
1998年2月,W3C正式批准了可擴展標記語言的標準定義,可擴展標記語言可以對文檔和數據進行結構化處理,從而能夠在部門、客戶和供應商之間進行交換,實現動態內容生成,企業集成和應用開發。可擴展標記語言可以使我們能夠更準確的搜索,更方便的傳送軟件組件,更好的描述一些事物。例如電子商務交易等。
它被設計用來傳輸和存儲數據;
超文本標記語言被設計用來顯示數據。
它們都是標準通用標記語言的子集。
一、什麼是可擴展標記語言?
可擴展標記語言是一種很像超文本標記語言的標記語言。
它的設計宗旨是傳輸數據,而不是顯示數據。
它的標籤沒有被預定義。您需要自行定義標籤。
它被設計為具有自我描述性。
它是W3C的推薦標準。
二、可擴展標記語言和超文本標記語言之間的差異
它不是超文本標記語言的替代。
它是對超文本標記語言的補充。
它和超文本標記語言為不同的目的而設計:
它被設計用來傳輸和存儲數據,其焦點是數據的內容 。 超文本標記語言被設計用來顯示數據,其焦點是數據的外觀。
超文本標記語言旨在顯示信息,而它旨在傳輸信息。
對它最好的描述是:它是獨立於軟件和硬件的信息傳輸工具。
三、可擴展標記語言是W3C的推薦標準
XML 於 1998 年 2 月 10 日成為W3C的推薦標準。
四、可擴展標記語言無所不在
超文本標記語言。
XML 是各種應用程序之間進行數據傳輸的最常用的工具。
格式特性
它與Access,Oracle和SQL Server等數據庫不同,數據庫提供了更強有力的數據存儲和分析能力,例如:數據索引、排序、查找、相關一致性等,它僅僅是存儲數據。事實上它與其他數據表現形式最大的不同是:它極其簡單,這是一個看上去有點瑣細的優點,但正是這點使它與眾不同。
它和超文本標記語言語法區別:超文本標記語言的標記不是所有的都需要成對出現,它則要求所有的標記必須成對出現;HTML標記不區分大小寫,它則大小敏感,即區分大小寫。
結合
標準通用標記語言、超文本標記語言是它的先驅。標準通用標記語言它是國際上定義電子文件結構和內容描述的標準,是一種非常複雜的文檔的結構,主要用於大量高度結構化數據的防衛區和其他各種工業領域,利於分類和索引。同它相比,定義的功能很強大,缺點是它不適用於Web數據描述,而且標準通用標記語言軟件價格非常昂貴。 HTML相信大家都比較熟悉,即超文本標識語言,它的優點是比較適合web頁面的開發。但它有一個缺點是標記相對少,只有固定的標記集如等。缺少標準通用標記語言的柔性和適應性。不能支持特定領域的標記語言,如對數學、化學、音樂等領域的表示支持較少。舉個例子來說,開發者很難在網頁上表示數學公式、化學分子式和樂譜。它結合了標準通用標記語言和HTML的優點並消除其缺點。XML仍然被認為是一種標準通用標記語言。比標準通用標記語言要簡單,但能實現標準通用標記語言的大部分的功能。1996年的夏天,標準通用標記語言,使其在Web中,既能利用標準通用標記語言的長處,又保留html的簡單性。
XML的簡單使其易於在任何應用程序中讀寫數據,這使XML很快成為數據交換的唯一公共語言,雖然不同的應用軟件也支持其它的數據交換格式,但不久之後他們都將支持XML,那就意味着程序可以更容易的與Windows, Mac OS, Linux以及其他平台下產生的信息結合,然後可以很容易加載XML數據到程序中並分析它,並以XML格式輸出結果。
友好
為了使得標準通用標記語言顯得用戶友好,它重新定義了標準通用標記語言的一些內部值和參數,去掉了大量的很少用到的功能,這些繁雜的功能使得標準通用標記語言在設計網站時顯得複雜化。它保留了標準通用標記語言的結構化功能,這樣就使得網站設計者可以定義自己的文檔類型,它同時也推出一種新型文檔類型,使得開發者也可以不必定義文檔類型。
語法介紹
可以在可擴展標記語言文件的內容包括幾乎所有的萬國碼Unicode字符(以下例子使用本條例,以<?開頭的文檔序言部分標記不能使用此條例),元素和屬性的名稱也可以由非ascii字符組成。
標準通用標記語言常用來定義針對HTML的文檔類型定義(DTD),同時它也常用於編寫XML的DTD。標準通用標記語言的問題就在於它允許出現一些奇怪的語法,這讓創建HTML的解析器成為一個大難題:
某些起始標籤可以選擇性出現結束標籤或者隱含了結束標籤。
某些起始標籤要求必須出現結束標籤,例如HTML中<script>「腳本」標籤。
標籤可以以任何順序嵌套。即使結束標籤不按照起始標籤的逆序出現也是允許的,例如,This is asamplestring是正確的。
某些特性要求必須包含值。
某些特性不要求一定有值,例如中的「不換行」(外語:nowrap)特性。
定義特性的兩邊有沒有加上雙引號都是可以的,所以都是允許的。
這些問題使建立一個標準通用標記語言的解析器變成了一項艱巨的任務,判斷何時應用以上規則的困難導致了標準通用標記語言語言的定義一直停滯不前,以這些問題作為出發點,XML逐漸步入我們的視野。
XML去掉了之前令許多開發人員頭疼的標準通用標記語言的隨意語法。在XML中,採用了如下的語法:
一、任何的起始標籤都必須有一個結束標籤。
二、可以採用另一種簡化語法,可以在一個標籤中同時表示起始和結束標籤。這種語法是在大於符號之前緊跟一個斜線(/)
三、標籤必須按合適的順序進行嵌套,所以結束標籤必須按鏡像順序匹配起始標籤,這好比是將起始和結束標籤看作是數學中的左右括號:在沒有關閉所有的內部括號之前,是不能關閉外面的括號的。
四、所有的特性都必須有值。
五、所有的特性都必須在值的周圍加上雙引號。
這些規則使得開發一個XML解析器要簡便得多,而且也除去了解析標準通用標記語言中花在判斷何時何地應用那些奇怪語法規則上的工作。僅僅在XML出現後的前六年就衍生出多種不同的語言,包括MathML、SVG、RDF、RSS、SOAP、XSLT、XSL-FO,而同時也將HTML改進為XHTML。
語言應用
可擴展標記語言是一種元標記語言,即定義了用於定義其他特定領域有關語義的、結構化的標記語言,這些標記語言將文檔分成許多部件並對這些部件加以標識。XML 文檔定義方式有:文檔類型定義(DTD)和XML Schema。DTD定義了文檔的整體結構以及文檔的語法,應用廣泛並有豐富工具支持。XML Schema用於定義管理信息等更強大、更豐富的特徵。XML能夠更精確地聲明內容,方便跨越多種平台的更有意義的搜索結果。它提供了一種描述結構數據的格式,簡化了網絡中數據交換和表示,使得代碼、數據和表示分離,並作為數據交換的標準格式,因此它常被稱為智能數據文檔。
XML技術已經廣泛應用於e-Learning應用系統的開發,大多數的商用e-Learning平台都支持XML標準。一些主要的網絡設備製造商,如CISCO、JUNIPER等,生產的網絡設備也已提供了對XML的支持,以利於今後基於XML的網絡管理。
XML在e-Learning管理中的應用
一、兼容現有協議
XML文檔格式的管理信息可以很容易地通過HTTP 協議傳輸,由於HTTP是建立在TCP之上的,故管理數據能夠可靠傳輸。XML還支持訪問XML文檔的標準API,如DOM,SAX,XSLT,Xpath等。
二、統一的管理數據存取格式
XML能夠以靈活有效的方式定義管理信息的結構。以XML格式存儲的數據不僅有良好的內在結構,而且由於它是W3C提出的國際標準,因而受到廣大軟件提供商的支持,易於進行數據交流和開發。現有網絡管理標準如TMN、SNMP等的管理信息庫規範決定了網管數據符合層次結構和面向對象原則,這使得以XML格式存儲網管數據也非常自然,易於實現。
三、不同應用系統間數據的共享和交互
只要定義一套描述各項管理數據和管理功能的XML語言,用Schema對這套語言進行規定,並且共享這些數據的系統的XML文檔遵從這些Schema,那麼管理數據和管理功能就可以在多個應用系統之間共享和交互。
四、底層傳輸的數據更具可讀性
網絡中傳輸的底層數據因協議不同而編碼規則不同,雖然最終傳輸時都是二進制位流,但是不同的應用協議需要提供不同的轉換機制。這種情況導致管理站在對採用不同協議發送管理信息的被管對象之間進行管理時很難實現兼容。如果協議在數據表示時都採用XML格式進行描述,這樣網絡之間傳遞的都是簡單的字符流,可以通過相同的XML解析器進行解析,然後根據不同的XML標記,對數據的不同部分進行區分處理,使底層數據更具可讀性。[3]
五、它和json都是一種數據交換格式
XML由3個部分構成,它們分別是:文檔類型定義(Document Type Definition,DTD),即XML的布局語言;可擴展的樣式語言(Extensible Style Language,XSL),即XML的樣式表語言;以及可擴展鏈接語言(Extensible Link Language,XLL)。
(1)DTD
DTD規定了文檔的邏輯結構。它可定義文檔的語法,而文檔的語法反過來也能夠讓XML語法分析程序確認頁面標記使用的合法性。DTD定義了頁面的元素、元素的屬性及元素和屬性間的關係。元素與元素間用起始標記和結束標記來定界,對於空元素,用一個空元素標記來分隔。每一個元素都有一個用名字標識的類型,也稱為它的通用標識符,並且它還可以有一個屬性說明集。每個屬性說明都有一個名字和一個值。理想定義應該面向描述與應用程序相關的數據結構,而不是如何顯示數據。就是說,應該把一個元素定義為一個標題行,之後讓樣式表和腳本定義顯示標題行。
DTD不具強制性。對於簡單的應用程序來說,開發商不需建立自己的DTD,可以使用預先定義的公共DTD或不使用。即使某個文檔已經有DTD,只要文檔組織是良好的,語法分析程序也不必對照DTD來檢驗文檔的合法性。服務器可能己執行了檢查,所以檢驗的時間和帶寬將得以大幅度節省。
(2)XSL
XSL是用來規定XML文檔樣式的語言。XSL能使Web瀏覽器改變原有文檔的表示法,例如改變數據的顯示順序,不必再與服務器進行交互通信。通過樣式表的變換,同一文檔可以顯示得更大,或經過摺疊只顯示外面的一層,或者變為打印格式。
XSL憑藉其本身的可擴展性,能夠控制無窮無盡的標記,而且控制每個標記的方式也是無窮盡的,這也給Web提供了高級的布局特性。如文本的旋轉、多列和獨立區域。同時支持國際書寫格式,可在一頁上混合使用從左至右、從右至左及從上至下的書寫格式。就如同XML介於HTML和SGML之間一樣,XSL標準是介於CSS和SGMI的文檔樣式語義和規範語言之間的。
(3)XLL[1]
XLL支持Web上已有的簡單鏈接,而且將進一步擴展鏈接,包括終結死鏈接的間接鏈接及可從服務器中只查詢某個元素的相關部分鏈接等。
超文本標記語言(HTML)僅僅執行歷來與超文本系統概念相關的極少功能,僅支持最簡單的鏈接形式,即指向硬編碼位置的單向鏈接,這與XML相比有着很大的差別。在為XML所設想的真正超文本系統中,所有典型的超文本鏈接機制全部將得到支持,包括:與位置無關命名,雙向鏈接,可在文檔外規定和管理的鏈接,元超鏈接(如環路、多個窗口),集合鏈接(多來源),Transc1usion(鏈接目標文檔是鏈接源文檔的一部分),鏈接屬性(鏈接類型)。
所有這些可通過XLL來實現。由於XML以SGML作為基礎,因此,XLL基本上屬於Hytime(超媒體/基於時間的結構語言,ISO10744)的一個子集,另外它還遵循文本編碼所倡議規定的鏈接概念。
XML能方便有效地表示結構化數據,這就使得XML可以作為描述和傳輸數據的手段。使用XML進行數據交換已經成為計算機軟件領域的標準技術模式。通過XML實現數據的標準化、結構化,解決了在不同平台、不同系統之間的數據結構/模式的差異,使得數據層在XML技術的支持下統一起來。[4]
Web Service全部的規範,技術都是以XML為底層核心和構架基礎的,對Web Service而言,SOAP、WSDL和UDDI,都是使用XML作為信息描述和交換的標準手段。XML技術的產生促使了Web Service技術的產生與發展。