XML 語法規則
XML 的語法規則很簡單,且很有邏輯。這些規則很容易學習,也很容易使用。
XML 文檔必須有根元素
XML 文檔必須包含一個根元素,該元素是所有其他元素的父元素:
<root> <child> <subchild>.....</subchild> </child> </root>
在此例中,<note>
是根元素:
<?xml version="1.0" encoding="UTF-8"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
XML 序言(XML Prolog)
這一行稱為 XML 序言:
<?xml version="1.0" encoding="UTF-8"?>
XML 序言是可選的。如果存在,則必須位于文檔的第一行。
XML 文檔可以包含國際字符,例如挪威語 øæå 或法語 êèé。
為了避免錯誤,您應該指定所使用的編碼,并將 XML 文件保存為 UTF-8。
UTF-8 是 XML 文檔的默認字符編碼。
您可以在我們的字符集教程中進行學習字符編碼。
提示:UTF-8 也是 HTML5、CSS、JavaScript、PHP 和 SQL 的默認編碼。
所有 XML 元素都必須有結束標簽
在 XML 中,省略結束標記是非法的。所有元素都必須有結束標簽:
<p>This is a paragraph.</p> <br />
注意:XML 序言沒有結束標簽!這不是錯誤。序言不屬于XML本身的組成部分。它不是 XML 元素,也不需要關閉標簽。
XML 標簽區分大小寫
XML 標簽區分大小寫。標簽 <Letter> 與標簽 <letter> 不同。
開始和結束標簽必須使用相同的大小寫:
<message>This is correct</message>
注釋:打開標簽和關閉標簽通常被稱為開始標簽和結束標簽。不論您喜歡哪種術語,它們的概念都是相同的。
XML 元素必須正確嵌套
在 HTML 中,您可能會看到沒有正確嵌套的元素:
<b><i>This text is bold and italic</b></i>
在 XML 中,所有元素必須正確地相互嵌套:
<b><i>This text is bold and italic</i></b>
在上面的例子中,正確嵌套的意思是:由于 <i> 元素是在 <b> 元素內打開的,那么它必須在 <b> 元素內關閉。
XML 屬性值必須加引號
與 HTML 類似,XML 也可擁有屬性(名稱/值對)。
在 XML 中,XML 的屬性值須加引號:
<note date="12/11/2007"> <to>George</to> <from>John</from> </note>
實體引用
在 XML 中,一些字符擁有特殊的意義。
如果你把字符 "<" 放在 XML 元素中,會發生錯誤,這是因為解析器會把它當作新元素的開始。
這樣會產生 XML 錯誤:
<message>if salary < 1000 then</message>
為了避免這個錯誤,請用實體引用來代替 "<" 字符:
<message>if salary < 1000 then</message>
在 XML 中,有 5 個預定義的實體引用:
< | < | 小于 |
> | > | 大于 |
& | & | 和號 |
' | ' | 單引號 |
" | " | 引號 |
注釋:在 XML 中,只有字符 "<" 和 "&" 確實是非法的。> 是合法的,但是用 > 來代替它是一個好習慣。
XML 中的注釋
在 XML 中編寫注釋的語法與 HTML 的語法很相似:
<!-- This is a comment -->
注釋中間不允許有兩個破折號:
<!-- This is an invalid -- comment -->
XML 中保留空白
HTML 會把多個連續的空格字符裁減(合并)為一個,在 XML 中,文檔中的空格不會被刪節:
XML: Hello George HTML: Hello George
XML 將新行存儲為 LF
在 Windows 應用程序中,換行通常以一對字符來存儲:回車符 (CR) 和換行符 (LF)。這對字符與打字機設置新行的動作有相似之處。
Unix 和 Mac OSX 使用 LF。
舊的 Mac 系統使用 CR。
XML 將新行存儲為 LF。
格式良好的 XML
符合上述語法規則的 XML 文檔被稱為“格式良好”的 XML 文檔。