1. 程式人生 > >XML 語言簡介

XML 語言簡介

intern com root 作者 node 外觀 標準 最後一行 encoding

XML 被設計用來傳輸和存儲數據。

HTML 被設計用來顯示數據。

應該掌握的基礎知識:

在您繼續學習之前,需要對以下知識有基本的了解:

  • HTML / XHTML
  • JavaScript

如果您希望首先學習這些項目,請在我們的 首頁 訪問這些教程。

什麽是 XML?

  • XML 指可擴展標記語言(EXtensible Markup Language)
  • XML 是一種標記語言,很類似 HTML
  • XML 的設計宗旨是傳輸數據,而非顯示數據
  • XML 標簽沒有被預定義。您需要自行定義標簽
  • XML 被設計為具有自我描述性
  • XML 是 W3C 的推薦標準

XML 與 HTML 的主要差異

XML 不是 HTML 的替代。

XML 和 HTML 為不同的目的而設計:

XML 被設計為傳輸和存儲數據,其焦點是數據的內容。

HTML 被設計用來顯示數據,其焦點是數據的外觀。

HTML 旨在顯示信息,而 XML 旨在傳輸信息。

沒有任何行為的 XML

XML 是不作為的。

也許這有點難以理解,但是 XML 不會做任何事情。XML 被設計用來結構化、存儲以及傳輸信息。

下面是 John 寫給 George 的便簽,存儲為 XML:

<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don‘t forget the meeting!</body>
</note>

上面的這條便簽具有自我描述性。它擁有標題以及留言,同時包含了發送者和接受者的信息。

但是,這個 XML 文檔仍然沒有做任何事情。它僅僅是包裝在 XML 標簽中的純粹的信息。我們需要編寫軟件或者程序,才能傳送、接收和顯示出這個文檔。

XML 僅僅是純文本

XML 沒什麽特別的。它僅僅是純文本而已。有能力處理純文本的軟件都可以處理 XML。

不過,能夠讀懂 XML 的應用程序可以有針對性地處理 XML 的標簽。標簽的功能性意義依賴於應用程序的特性。

通過 XML 您可以發明自己的標簽

上例中的標簽沒有在任何 XML 標準中定義過(比如 <to> 和 <from>)。這些標簽是由文檔的創作者發明的。

這是因為 XML 沒有預定義的標簽。

在 HTML 中使用的標簽(以及 HTML 的結構)是預定義的。HTML 文檔只使用在 HTML 標準中定義過的標簽(比如 <p> 、<h1> 等等)。

XML 允許創作者定義自己的標簽和自己的文檔結構。

XML 不是對 HTML 的替代

XML 是對 HTML 的補充

XML 不會替代 HTML,理解這一點很重要。在大多數 web 應用程序中,XML 用於傳輸數據,而 HTML 用於格式化並顯示數據。

對 XML 最好的描述是:

XML 是獨立於軟件和硬件的信息傳輸工具。

XML 是 W3C 的推薦標準

可擴展標記語言 (XML) 於 1998 年 2 月 10 日成為 W3C 的推薦標準。

如需有關 W3C XML 活動的更多信息,請訪問我們的 W3C 教程。

XML 無所不在

當我們看到 XML 標準突飛猛進的開發進度,以及大批的軟件開發商采用這個標準的日新月異的速度時,真的是不禁感嘆這真是令人嘆為觀止。

目前,XML 在 Web 中起到的作用不會亞於一直作為 Web 基石的 HTML。

XML 無所不在。XML 是各種應用程序之間進行數據傳輸的最常用的工具,並且在信息存儲和描述領域變得越來越流行。

XML 的用途

XML 應用於 web 開發的許多方面,常用於簡化數據的存儲和共享。

XML 把數據從 HTML 分離

如果你需要在 HTML 文檔中顯示動態數據,那麽每當數據改變時將花費大量的時間來編輯 HTML。

通過 XML,數據能夠存儲在獨立的 XML 文件中。這樣你就可以專註於使用 HTML 進行布局和顯示,並確保修改底層數據不再需要對 HTML 進行任何的改變。

通過使用幾行 JavaScript,你就可以讀取一個外部 XML 文件,然後更新 HTML 中的數據內容。

提示:您將在稍後的章節學習更多這方面的內容。

XML 簡化數據共享

在真實的世界中,計算機系統和數據使用不兼容的格式來存儲數據。

XML 數據以純文本格式進行存儲,因此提供了一種獨立於軟件和硬件的數據存儲方法。

這讓創建不同應用程序可以共享的數據變得更加容易。

XML 簡化數據傳輸

通過 XML,可以在不兼容的系統之間輕松地交換數據。

對開發人員來說,其中一項最費時的挑戰一直是在因特網上的不兼容系統之間交換數據。

由於可以通過各種不兼容的應用程序來讀取數據,以 XML 交換數據降低了這種復雜性。

XML 簡化平臺的變更

升級到新的系統(硬件或軟件平臺),總是非常費時的。必須轉換大量的數據,不兼容的數據經常會丟失。

XML 數據以文本格式存儲。這使得 XML 在不損失數據的情況下,更容易擴展或升級到新的操作系統、新應用程序或新的瀏覽器。

XML 使您的數據更有用

由於 XML 獨立於硬件、軟件以及應用程序,XML 使您的數據更可用,也更有用。

不同的應用程序都能夠訪問您的數據,不僅僅在 HTML 頁中,也可以從 XML 數據源中進行訪問。

通過 XML,您的數據可供各種閱讀設備使用(手持的計算機、語音設備、新聞閱讀器等),還可以供盲人或其他殘障人士使用。

XML 用於創建新的 Internet 語言

很多新的 Internet 語言是通過 XML 創建的:

其中的例子包括:

  • XHTML - 最新的 HTML 版本
  • WSDL - 用於描述可用的 web service
  • WAP 和 WML - 用於手持設備的標記語言
  • RSS - 用於 RSS feed 的語言
  • RDF 和 OWL - 用於描述資源和本體
  • SMIL - 用於描述針針對 web 的多媒體

假如開發人員都是理性的

假如他們都是理性的,就讓未來的應用程序使用 XML 來交換數據吧。

未來也許會出現某種字處理軟件、電子表格程序以及數據庫,它們可以使用純文本格式讀取彼此的數據,而不需要使用任何的轉換程序。

我們現在能做的只有祈禱微軟公司和所有其他的軟件開發商在這一方面取得一致了。

XML 樹結構

XML 文檔形成了一種樹結構,它從“根部”開始,然後擴展到“枝葉”。

一個 XML 文檔實例

XML 使用簡單的具有自我描述性的語法:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don‘t forget the meeting!</body>
</note>

第一行是 XML 聲明。它定義 XML 的版本 (1.0) 和所使用的編碼 (ISO-8859-1 = Latin-1/西歐字符集)。

下一行描述文檔的根元素(像在說:“本文檔是一個便簽”):

<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 語言簡介