XML 的語法規則很簡單,且很有邏輯。這些規則很容易學習,也很容易使用。
所有 XML 元素都須有關閉標簽
在 Html,經常會看到沒有關閉標簽的元素:
<p>This is a paragraph
<p>This is another paragraph
在 XML 中,省略關閉標簽是非法的。所有元素都必須有關閉標簽:
<p>This is a paragraph</p>
<p>This is another paragraph</p>
注釋:您也許已經注意到 XML 聲明沒有關閉標簽。這不是錯誤。聲明不屬於XML本身的組成部分。它不是 XML 元素,也不需要關閉標簽。
XML 標簽對大小寫敏感
XML 元素使用 XML 標簽進行定義。
XML 標簽對大小寫敏感。在 XML 中,標簽 <Letter> 與標簽 <letter> 是不同的。
必須使用相同的大小寫來編寫打開標簽和關閉標簽:
<Message>這是錯誤的。</message>
<message>正式正確的。</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 文檔必須有根元素
XML 文檔必須有一個元素是所有其他元素的父元素。該元素稱為根元素。
<root>
<child>
<subchild>.....
</subchild>
</child>
</root>
XML 的屬性值須加引號
與 Html 類似,XML 也可擁有屬性(名稱/值的對)。
在 XML 中,XML 的屬性值須加引號。請研究下面的兩個 XML 文檔。第一個是錯誤的,第二個是正確的:
<note date=08/08/2008>
<to>George</to>
<from>John</from>
</note>
<note date="08/08/2008">
<to>George</to>
<from>John</from>
</note>
在第一個文檔中的錯誤是,note 元素中的 date 屬性沒有加引號。
實體引用
在 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 -->
在 XML 中,空格會被保留
Html 會把多個連續的空格字符裁減為一個:
Html: Hello my name is Tove
輸出: Hello my name is Tove.
在 XML 中,文檔中的空格不會被刪節。
XML 以 LF 存儲換行
在 Windows 應用程序中,換行通常以一對字符來存儲:回車符 (CR) 和換行符 (LF)。這對字符與打字機設置新行的動作有相似之處。在 Unix 應用程序中,新行以 LF 字符存儲。而 Macintosh 應用程序使用 CR 來存儲新行。