天天看點

XML 文法規則

XML 的文法規則很簡單,且很有邏輯。這些規則很容易學習,也很容易使用。

XML 必須包含根元素,它是所有其他元素的父元素,比如以下執行個體中 root 就是根元素:

<root>

<child>

<subchild>.....</subchild>

</child>

</root>

以下執行個體中 note 是根元素:

<?xml version="1.0" encoding="UTF-8"?>

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don't forget me this weekend!</body>

</note>

XML 聲明檔案的可選部分,如果存在需要放在文檔的第一行,如下所示:

以上執行個體包含 XML 版本( UTF-8 也是 HTML5, CSS, JavaScript, PHP, 和 SQL 的預設編碼。

在 HTML 中,某些元素不必有一個關閉标簽:

在 XML 中,省略關閉标簽是非法的。所有元素都<b>必須</b>有關閉标簽:

<b>注釋:</b>從上面的執行個體中,您也許已經注意到 XML 聲明沒有關閉标簽。這不是錯誤。聲明不是 XML 文檔本身的一部分,它沒有關閉标簽。

XML 标簽對大小寫敏感。标簽 &lt;Letter&gt; 與标簽 &lt;letter&gt; 是不同的。

必須使用相同的大小寫來編寫打開标簽和關閉标簽:

<b>注釋:</b>打開标簽和關閉标簽通常被稱為開始标簽和結束标簽。不論您喜歡哪種術語,它們的概念都是相同的。

在 HTML 中,常會看到沒有正确嵌套的元素:

在 XML 中,所有元素都<b>必須</b>彼此正确地嵌套:

在上面的執行個體中,正确嵌套的意思是:由于 &lt;i&gt; 元素是在 &lt;b&gt; 元素内打開的,那麼它必須在 &lt;b&gt; 元素内關閉。

與 HTML 類似,XML 元素也可擁有屬性(名稱/值的對)。

在 XML 中,XML 的屬性值必須加引号。

請研究下面的兩個 XML 文檔。

第一個是錯誤的,第二個是正确的:

在第一個文檔中的錯誤是,note 元素中的 date 屬性沒有加引号。

在 XML 中,一些字元擁有特殊的意義。

如果您把字元 "&lt;" 放在 XML 元素中,會發生錯誤,這是因為解析器會把它當作新元素的開始。

這樣會産生 XML 錯誤:

為了避免這個錯誤,請用<b>實體引用</b>來代替 "&lt;" 字元:

在 XML 中,有 5 個預定義的實體引用:

&amp;lt;

&lt;

less than

&amp;gt;

&gt;

greater than

&amp;amp;

&amp;

ampersand

&amp;apos;

'

apostrophe

&amp;quot;

"

quotation mark

<b>注釋:</b>在 XML 中,隻有字元 "&lt;" 和 "&amp;" 确實是非法的。大于号是合法的,但是用實體引用來代替它是一個好習慣。

在 XML 中編寫注釋的文法與 HTML 的文法很相似。

HTML 會把多個連續的空格字元裁減(合并)為一個:

HTML:

輸出結果:

Hello Tove

在 XML 中,文檔中的空格不會被删減。

在 Windows 應用程式中,換行通常以一對字元來存儲:回車符(CR)和換行符(LF)。

在 Unix 和 Mac OSX 中,使用 LF 來存儲新行。

在舊的 Mac 系統中,使用 CR 來存儲新行。

XML 以 LF 存儲換行。

下一篇: GET 和 POST