XML的語法規則非常簡單的邏輯。 規則很容易學習,而且易於使用。
XML文檔必須有根元素
XML文檔必須包含一個根元素,它是parent的所有其他元素:
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
在這個例子中<注>是根元素:
<?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 序言 :
<?xml version="1.0" encoding="UTF-8 " ?>
該XML序言是可選的。 如果它存在,它必須是第一個在文檔中。
XML文檔可以包含國際字符,如挪威的OA或法語EE。
為了避免錯誤,應指定使用的編碼,或XML文件保存為UTF-8。
UTF-8是XML文檔的默認字符編碼。
字符編碼可以在我們進行研究的字符集教程 。
UTF-8也是HTML5,CSS,JavaScript的,PHP和SQL的默認編碼。
所有的XML元素必須有一個結束標記
在HTML中,某些元素可能會工作得很好,即使缺少結束標記:
<p>This is a paragraph.
<br>
在XML中,它是非法的省略結束標記。 所有元素都must有結束標籤:
<p>This is a paragraph.</p>
<br />
該XML序言沒有關閉標籤。
這不是錯誤。 序言不是XML文檔的一部分。
XML標記區分大小寫
XML標記區分大小寫。 標籤<Letter>是從標籤不同的<letter> 。
開始和結束標記必須使用相同的情況下寫的:
<Message>This is incorrect</message>
<message>This is correct</message>
“打開和關閉標籤”往往被稱為"Start and end tags" 。 使用任何你喜歡。 它是完全一樣的東西。
XML元素必須正確嵌套
在HTML中,您可能會看到不正確嵌套的元素:
<b><i>This text is bold and italic</b></i>
在XML中,所有元素都must正確地相互嵌套:
<b><i>This text is bold and italic</i></b>
在上面的例子中, "Properly nested"只是意味著,自<i>元素被打開裡面<b>元素,它必須在內部封閉<b>元素。
XML的屬性值須加引號
XML元素可以在名稱/值對的屬性,就像在HTML。
在XML中,屬性值須加引號。
錯誤:
<note date=12/11/2007>
<to>Tove</to>
<from>Jani</from>
</note>
正確:
<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>
第一個文檔中的錯誤是date的說明元素屬性沒有加引號。
實體引用
一些字符在XML中的特殊含義。
如果將像一個字符"<" XML元素在裡面,它會因為解析器解釋為新元素的開始產生錯誤。
這將產生一個XML錯誤:
<message>salary < 1000</message>
為了避免這種錯誤,更換"<"與字符entity reference :
<message>salary < 1000</message>
有五個在XML文檔預先定義的實體引用:
< | < | less than |
> | > | greater than |
& | & | ampersand |
' | ' | apostrophe |
" | " | quotation mark |
只有<和&是XML嚴格非法的,但它是一個好的習慣來代替>與&GT; 為好。
在XML註釋
以XML寫的評論的語法類似於HTML的。
<! - 這是註釋 - >
在註釋中間的兩個破折號是不允許的。
不允許:
<!-- This is a -- comment -->
奇怪,但允許:
<!-- This is a - - comment -->
白色空間被保留的XML
XML不會截斷多的空格(HTML截斷多個白色空格一個單一的空格):
XML: | Hello Tove |
HTML: | Hello Tove |
XML存儲新線作為LF
Windows應用程序存儲新線:回車和換行符(CR+LF)
Unix和Mac OSX使用LF。
舊Mac系統使用CR。
XML存儲新線LF。
良好的XML
符合上述的語法規則的XML文檔說是"Well Formed"的XML文檔。