一、XML導讀
XML 是獨立于軟件和硬件的信息傳輸工具。XML 是 W3C 的推薦標準。XML 無所不在,當我們看到 XML 標準突飛猛進的開發(fā)進度,和大批的軟件開發(fā)商采取這個標準的日新月異的速度時,真的是不由感嘆這真的使人嘆為觀止。
目前,XML 在 Web 中起到的作用不會亞于一直作為 Web 基石的 HTML 。XML 是各種利用程序之間進行數據傳輸的最經常使用的工具,并且在信息存儲和描寫領域變得越來越流行。想要學習XML,可以通過XML.DOM教程
二、XML基本概述
XML(可擴大標記語言),標準通用標記語言的子集,是一種用于標記電子文件使其具有結構性的標記語言。在電子計算機中,標記指計算機所能理解的信息符號,通過此種標記,計算機之間可以處理包括各種的信息比如文章等。
它可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。它非常適合萬維網傳輸,提供統(tǒng)一的方法來描寫和交換獨立于利用程序或供應商的結構化數據。是 Internet 環(huán)境中跨平臺的、依賴于內容的技術,也是現今處理散布式結構信息的有效工具。早在1998年,W3C 就發(fā)布了 XML1.0 規(guī)范,使用它來簡化 Internet 的文檔信息傳輸。
三、什么是XML?
- XML 是指可擴大標記語言(EXtensible Markup Language)
- XMl 是一種標記語言,很類似 HTML (超文本標記語言)
- XML 的設計主旨是傳輸數據,而非顯示數據
- XML 標簽沒有被預定義,您需要自行定義標簽
- XML 被設計為具有自我描寫性
- XML 是 W3C 的推薦標準
四、XML與HTML的主要差異
- XML 和 HTML 為不同的目的而設計
- XML 被設計為傳輸和存儲數據,其焦點是數據的內容
- HTML 被設計用來顯示數據,其焦點是數據的外觀
- HTML 旨在顯示信息,而 XML 旨在傳輸信息
- XML 不是對 HTML 的替換,XML 是對 HTML 的補充
- XML 不會替換 HTML,理解這一點很重要。在大多數 Web 利用程序中,XML 用于傳輸數據,而 HTML 用于格式化并顯示數據
五、為何需要 XML
- 解決了數據傳輸不規(guī)范的問題
- 可以非常好的描寫樹形結構的事物
- 可以用作配置文件
六、沒有任何行動的 XML
XML 是不作為的?;蛟S這有點難以理解,但是 XML 不會做任何事情。XML 被設計用來結構化、存儲和傳輸息。
我們在這里舉一個在記事本書寫的簡單例子來講明一下。
下面是一個書籍列表,存儲為 XML:
<?xml version="1.0" encoding="gb2312"?>
<書籍列表>
<計算機書籍>
<bookname>XML利用大全</bookname>
<price>39.00</price>
</計算機書籍>
<計算機書籍>
<bookname>Java利用大全</bookname>
<price>139.00</price>
</計算機書籍>
<計算機書籍>
<bookname>Oracle利用大全</bookname>
<price>59.00</price>
</計算機書籍>
</書籍列表>
上面的這條便簽具有自我描寫性。它具有標題和留言,同時包括了發(fā)送者和接受者的信息。但是,這個 XML 文檔依然沒有做任何事情。它僅僅是包裝在 XML 標簽中單純的信息。我們需要編寫軟件或程序,才能傳送、接收和顯示出這個文檔。
七、XML僅僅是純文本
XML 沒什么特別的。它僅僅是純文本而已。有能力處理純文本的軟件都可以處理 XML。不過,能夠讀懂 XML 的應用程序可以有針對性地處理 XML 的標簽。標簽的功能性意義依賴于利用程序的特性。這里的內容我們會在以后的內容中逐步體會到 XML 標簽的作用。
八、通過 XML 您可以發(fā)明自己的標簽
上例中的標簽沒有在任何 XML 標準中定義過(比如<bookname>和<price>等等)。這些標簽是由文檔的創(chuàng)作者發(fā)明的。這是由于 XML 沒有預定義的標簽。XML 允許創(chuàng)作者定義自己的標簽和自己的文檔結構。
在 HTML 中使用的標簽(和 HTML 的結構)是預定義的。HTML 文檔只使用在 HTML 標準中定義過的標簽(比如<p>,<h1>等等)。
九、XML樹結構
我們在上面的書籍實例中可以看出 XML 文檔構成了一種樹結構,它從“根部”開始,然后擴大到“枝葉”。
一個 XML 文檔實例
XML使用簡單的具有自我描寫性的語法:
<?xml version="1.0" encoding="UTF⑻"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
第一行是 XML 聲明。它定義 XML 的版本(1.0)和所使用的編碼(UTF-8,GBK等);
下一行描寫文檔的根元素(像在說:“本文檔是一個便簽”):<note>;
接下來4行描寫根的4個子元素(to、from、heading和body):
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>;
最后一行定義根元素的結尾:</note>。
從本例可以假想,該 XML 文檔包括了John給George的一張便簽。
XML 具有出色的自我描寫性,你同意嗎?
XML 文檔構成一種樹結構
XML 文檔必須包括根元素。該元素是所有其他元素的父元素。
XML 文檔中的元素構成了一棵文檔樹。這棵樹從根部開始,并擴大到樹的最底端。
所有元素都可具有子元素:
<root> <child> <subchild>.....</subchild> </child> </root>
父、子和同胞等術語用于描寫元素之間的關系。父元素具有子元素。相同層級上的子元素成為同胞(兄弟或姐妹)。所有元素都可具有文本內容和屬性(類似 HTML 中)。
實例:
上圖表示下面的 XML 中的一本書:
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
例子中的根元素是<bookstore>。文檔中的所有<book>元素都被包括在<bookstore>中。<book>元素有 4 個子元素:
<title>、< author>、<year>、<price>。
十、XML用處
XML 經常使用于簡化數據的存儲和共享
(1)XML 把數據從 HTML 分離
如果你需要在 HTML 文檔中顯示動態(tài)數據,那末每當數據改變時將花費大量的時間來編輯 HTML。通過 XML,數據能夠存儲在獨立的XML 文件中。這樣你就能夠專注于使用 HTML 進行布局和顯示,并確保修改底層數據不再需要對 HTML 進行任何的改變。通過使用幾行JavaScript,你就能夠讀取一個外部 XML 文件,然后更新 HTML 中的數據內容。
(2)XML簡化數據同享
在真實的世界中,計算機系統(tǒng)和數據使用不兼容的格式來存儲數據。XML 數據以純文本格式進行存儲,因此提供了一種獨立于軟件和硬件的數據存儲方法。這讓創(chuàng)建不同利用程序可以同享的數據變得更加容易。
(3)XML簡化數據傳輸
通過 XML,可以在不兼容的系統(tǒng)之間輕松地交換數據。對開發(fā)人員來講,其中一項最費時的挑戰(zhàn)一直是在因特網上的不兼容系統(tǒng)之間交換數據。由于可以通過各種不兼容的利用程序來讀取數據,以 XML 交換數據下降了這類復雜性。
(4)XML簡化平臺的變更
升級到新的系統(tǒng)(硬件或軟件平臺),總是非常費時的。必須轉換大量的數據,不兼容的數據常常會丟失。XML 數據以文本格式存儲。這使得 XML 在不損失數據的情況下,更容易擴大或升級到新的操作系統(tǒng)、新利用程序或新的瀏覽器。
(5)XML使您的數據更有用
由于 XML 獨立于硬件、軟件和利用程序,XML 使您的數據更可用,也更有用。不同的利用程序都能夠訪問您的數據,不單單在 HTML 頁中,也能夠從 XML 數據源中進行訪問。通過 XML,您的數據可供各種瀏覽裝備使用(手持的計算機、語音裝備、新聞瀏覽器等),還可以供盲人或其他殘障人士使用。
(6)XML用于創(chuàng)建新的Internet語言
很多新的Internet語言是通過XML創(chuàng)建的,其中的例子包括:
- XHTML - 最新的HTML版本
- WSDL - 用于描寫可用的web service
- WAP 和 WML - 用于手持裝備的標記語言
- RSS - 用于RSS feed的語言
- RDF 和 OWL - 用于描寫資源和本體
- SMIL - 用于描寫針針對web的多媒體
您還可以通過XML實例去實踐并掌握
以及XML測驗評估您的學習狀況