小談XML

一、什麼是 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 文檔中的元素形成了一棵文檔樹。這棵樹從根部開始,並擴展到樹的最底端。
所有元素均可擁有子元素:

<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 元素指的是從(且包括)開始標籤直到(且包括)結束標籤的部分。
元素可包含其他元素、文本或者兩者的混合物。元素也可以擁有屬性。

<bookstore>
  <book category="CHILDREN">
    <title>Harry Potter</title> 
    <author>J K. Rowling</author> 
    <year>2005</year> 
    <price>29.99</price> 
  </book>
  <book category="WEB">
    <title>Learning XML</title> 
    <author>Erik T. Ray</author> 
    <year>2003</year> 
    <price>39.95</price> 
  </book>
</bookstore> 
在上例中,<bookstore> 和 <book> 都擁有元素內容,因爲它們包含了其他元素。<author> 只有文本內容,因爲它僅包含文本。
在上例中,只有 <book> 元素擁有屬性 (category="CHILDREN")。



五、XML 元素可以在開始標籤中包含屬性,類似 HTML。


屬性 (Attribute) 提供關於元素的額外(附加)信息。

XML 屬性
從 HTML,你會回憶起這個:<img src="computer.gif">。"src" 屬性提供有關 <img> 元素的額外信息。
在 HTML 中(以及在 XML 中),屬性提供有關元素的額外信息:
<img src="computer.gif">
<a href="demo.asp"> 
屬性通常提供不屬於數據組成部分的信息。在下面的例子中,文件類型與數據無關,但是對需要處理這個元素的軟件來說卻很重要:
<file type="gif">computer.gif</file>
XML 屬性必須加引號
屬性值必須被引號包圍,不過單引號和雙引號均可使用。比如一個人的性別,person 標籤可以這樣寫:
<person sex="female">
或者這樣也可以:
<person sex='female'>
註釋:如果屬性值本身包含雙引號,那麼有必要使用單引號包圍它,就像這個例子:
<gangster name='George "Shotgun" Ziegler'>
或者可以使用實體引用:
<gangster name="George &quot;Shotgun&quot; Ziegler">



六、XML 元素 vs屬性


請看這些例子:
<person sex="female">
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person> 

<person>
  <sex>female</sex>
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person> 

在第一個例子中,sex 是一個屬性。在第二個例子中,sex 則是一個子元素。兩個例子均可提供相同的信息。
沒有什麼規矩可以告訴我們什麼時候該使用屬性,而什麼時候該使用子元素。我的經驗是在 HTML 中,屬性用起來很便利,但是在 XML 中,您應該儘量避免使用屬性。如果信息感覺起來很像數據,那麼請使用子元素吧。



發佈了59 篇原創文章 · 獲贊 17 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章