XML
XML 被設(shè)計(jì)用來傳輸和存儲(chǔ)數(shù)據(jù)获印。
HTML 被設(shè)計(jì)用來顯示數(shù)據(jù)喂链。
什么是XML
- XML 指可擴(kuò)展標(biāo)記語言(EXtensible Markup Language)趾盐。
- XML 是一種很像HTML的標(biāo)記語言艰垂。
- XML 的設(shè)計(jì)宗旨是傳輸數(shù)據(jù)蹲蒲,而不是顯示數(shù)據(jù)。
- XML 標(biāo)簽沒有被預(yù)定義索赏。您需要自行定義標(biāo)簽盼玄。
- XML 被設(shè)計(jì)為具有自我描述性。
- XML 是 W3C 的推薦標(biāo)準(zhǔn)潜腻。
XML的樹形結(jié)構(gòu)
XML 文檔使用簡(jiǎn)單的具有自我描述性的語法:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
第一行是 XML 聲明埃儿。它定義 XML 的版本(1.0)和所使用的編碼(ISO-8859-1 = Latin-1/西歐字符集)。
-
下一行描述文檔的根元素(像在說:"本文檔是一個(gè)便簽"):
<note>
接下來 4 行描述根的 4 個(gè)子元素(to, from, heading 以及 body):
-
最后一行定義根元素的結(jié)尾:
</note>
總結(jié):
XML 文檔必須包含根元素融涣。該元素是所有其他元素的父元素童番。
-
所有的元素都可以有文本內(nèi)容和屬性(類似 HTML 中)。
<title lang="en">Harry Potter</title>
節(jié)點(diǎn)元素名
title
他有一個(gè)屬性lang
= en -
所有的 XML 元素都必須有一個(gè)關(guān)閉標(biāo)簽
<to>Tove</to>
標(biāo)簽名是
<to>
那么關(guān)閉標(biāo)簽就是</to>
XML 標(biāo)簽對(duì)大小寫敏感
XML 屬性值必須加引號(hào)
在 XML 中威鹿,空格會(huì)被保留
XML 以 LF 存儲(chǔ)換行
XML 中的注釋
-
實(shí)體引用
在 XML 中剃斧,一些字符擁有特殊的意義。 如果您把字符 "<" 放在 XML 元素中专普,會(huì)發(fā)生錯(cuò)誤悯衬,這是因?yàn)榻馕銎鲿?huì)把它當(dāng)作新元素的開始。 這樣會(huì)產(chǎn)生 XML 錯(cuò)誤: <message>if salary < 1000 then</message> 為了避免這個(gè)錯(cuò)誤檀夹,請(qǐng)用實(shí)體引用來代替 "<" 字符: < < less than > > greater than & & ampersand ' ' apostrophe " " quotation mark
XML 命名規(guī)則
- 名稱可以包含字母、數(shù)字以及其他的字符
- 名稱不能以數(shù)字或者標(biāo)點(diǎn)符號(hào)開始
- 名稱不能以字母 xml(或者 XML策橘、Xml 等等)開始
- 名稱不能包含空格
可使用任何名稱炸渡,沒有保留的字詞。
屬性
屬性(Attribute)提供有關(guān)元素的額外信息丽已。
屬性通常提供不屬于數(shù)據(jù)組成部分的信息蚌堵。在下面的實(shí)例中,文件類型與數(shù)據(jù)無關(guān)沛婴,但是對(duì)需要處理這個(gè)元素的軟件來說卻很重要:
<file type="gif">computer.gif</file>
避免 XML 屬性
- 屬性不能包含多個(gè)值(元素可以)
- 屬性不能包含樹結(jié)構(gòu)(元素可以)
- 屬性不容易擴(kuò)展(為未來的變化)
- 屬性難以閱讀和維護(hù)吼畏。請(qǐng)盡量使用元素來描述數(shù)據(jù)。而僅僅使用屬性來提供與數(shù)據(jù)無關(guān)的信息嘁灯。
XML 命名空間 - xmlns 屬性
XML 命名空間提供避免元素命名沖突的方法泻蚊。
當(dāng)在 XML 中使用前綴時(shí),一個(gè)所謂的用于前綴的命名空間必須被定義丑婿。
命名空間是在元素的開始標(biāo)簽的 xmlns 屬性中定義的性雄。
命名空間聲明的語法如下没卸。xmlns:前綴="URI"。
<root>
<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table xmlns:f="http://www.w3cschool.cc/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
在上面的實(shí)例中秒旋,<table> 標(biāo)簽的 xmlns 屬性定義了 h: 和 f: 前綴的合格命名空間约计。
當(dāng)命名空間被定義在元素的開始標(biāo)簽中時(shí),所有帶有相同前綴的子元素都會(huì)與同一個(gè)命名空間相關(guān)聯(lián)迁筛。
命名空間煤蚌,可以在他們被使用的元素中或者在 XML 根元素中聲明:
<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3cschool.cc/furniture">
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
注意:
- 命名空間 URI 不會(huì)被解析器用于查找信息。
- 其目的是賦予命名空間一個(gè)惟一的名稱
統(tǒng)一資源標(biāo)識(shí)符(URI)是一串可以標(biāo)識(shí)因特網(wǎng)資源的字符细卧。
最常用的 URI 是用來標(biāo)識(shí)因特網(wǎng)域名地址的統(tǒng)一資源定位器(URL)铺然。另一個(gè)不那么常用的 URI 是統(tǒng)一資源命名(URN)。
在我們的實(shí)例中酒甸,我們僅使用 URL魄健。
XML解析
- PCDATA - 被解析的字符數(shù)據(jù)
- CDATA - (未解析)字符數(shù)據(jù)