XML 教程
XML 的語(yǔ)法規(guī)則很簡(jiǎn)單,且很有邏輯。這些規(guī)則很容易學(xué)習(xí),也很容易使用。
XML 必須包含根元素,它是所有其他元素的父元素,比如以下實(shí)例中 root 就是根元素:
以下實(shí)例中 note 是根元素:
XML 聲明文件的可選部分,如果存在需要放在文檔的第一行,如下所示:
<?xml version="1.0" encoding="utf-8"?>
以上實(shí)例包含 XML 版本(
UTF-8 也是 HTML5, CSS, JavaScript, PHP, 和 SQL 的默認(rèn)編碼。
在 HTML 中,某些元素不必有一個(gè)關(guān)閉標(biāo)簽:
<p>This is a paragraph. <br>
在 XML 中,省略關(guān)閉標(biāo)簽是非法的。所有元素都必須有關(guān)閉標(biāo)簽:
<p>This is a paragraph.</p> <br />
注釋:從上面的實(shí)例中,您也許已經(jīng)注意到 XML 聲明沒(méi)有關(guān)閉標(biāo)簽。這不是錯(cuò)誤。聲明不是 XML 文檔本身的一部分,它沒(méi)有關(guān)閉標(biāo)簽。
XML 標(biāo)簽對(duì)大小寫敏感。標(biāo)簽 <Letter> 與標(biāo)簽 <letter> 是不同的。
必須使用相同的大小寫來(lái)編寫打開(kāi)標(biāo)簽和關(guān)閉標(biāo)簽:
<Message>這是錯(cuò)誤的</message> <message>這是正確的</message>
注釋:打開(kāi)標(biāo)簽和關(guān)閉標(biāo)簽通常被稱為開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽。不論您喜歡哪種術(shù)語(yǔ),它們的概念都是相同的。
在 HTML 中,常會(huì)看到?jīng)]有正確嵌套的元素:
<b><i>This text is bold and italic</b></i>
在 XML 中,所有元素都必須彼此正確地嵌套:
<b><i>This text is bold and italic</i></b>
在上面的實(shí)例中,正確嵌套的意思是:由于 <i> 元素是在 <b> 元素內(nèi)打開(kāi)的,那么它必須在 <b> 元素內(nèi)關(guān)閉。
與 HTML 類似,XML 元素也可擁有屬性(名稱/值的對(duì))。
在 XML 中,XML 的屬性值必須加引號(hào)。
請(qǐng)研究下面的兩個(gè) XML 文檔。 第一個(gè)是錯(cuò)誤的,第二個(gè)是正確的:
<note date=12/11/2007> <to>Tove</to> <from>Jani</from> </note>
<note date="12/11/2007"> <to>Tove</to> <from>Jani</from> </note>
在第一個(gè)文檔中的錯(cuò)誤是,note 元素中的 date 屬性沒(méi)有加引號(hào)。
在 XML 中,一些字符擁有特殊的意義。
如果您把字符 "<" 放在 XML 元素中,會(huì)發(fā)生錯(cuò)誤,這是因?yàn)榻馕銎鲿?huì)把它當(dāng)作新元素的開(kāi)始。
這樣會(huì)產(chǎn)生 XML 錯(cuò)誤:
<message>if salary < 1000 then</message>
為了避免這個(gè)錯(cuò)誤,請(qǐng)用實(shí)體引用來(lái)代替 "<" 字符:
<message>if salary < 1000 then</message>
在 XML 中,有 5 個(gè)預(yù)定義的實(shí)體引用:
< | < | less than |
> | > | greater than |
& | & | ampersand |
' | ' | apostrophe |
" | " | quotation mark |
注釋:在 XML 中,只有字符 "<" 和 "&" 確實(shí)是非法的。大于號(hào)是合法的,但是用實(shí)體引用來(lái)代替它是一個(gè)好習(xí)慣。
在 XML 中編寫注釋的語(yǔ)法與 HTML 的語(yǔ)法很相似。
<!-- This is a comment -->
HTML 會(huì)把多個(gè)連續(xù)的空格字符裁減(合并)為一個(gè):
HTML: | Hello Tove |
輸出結(jié)果: | Hello Tove |
在 XML 中,文檔中的空格不會(huì)被刪減。
在 Windows 應(yīng)用程序中,換行通常以一對(duì)字符來(lái)存儲(chǔ):回車符(CR)和換行符(LF)。
在 Unix 和 Mac OSX 中,使用 LF 來(lái)存儲(chǔ)新行。
在舊的 Mac 系統(tǒng)中,使用 CR 來(lái)存儲(chǔ)新行。
XML 以 LF 存儲(chǔ)換行。