XML的語法規則既很簡單,又很嚴格。這些規則很容易學習,也很容易使用。
正因為如此,創建可讀取及操作XML的軟件不是一件難事。
XML使用一種可自我描述的簡單的語法。
<?XML version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
此文檔中的第一行 - XML聲明 - 定義了XML的版本和文檔中使用的字符編碼。在這個例子中,遵守的是XML 1.0規范,並使用了ISO-8859-1字符集。
接下來的一行描述了文檔的根元素(就像是在說:“本文檔是一個便簽”):
<note>
接下來的4行描述了根元素的4個子元素(to, from, heading, 以及 body):
<to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body>
最後的一行定義了根元素的結尾:
</note>
我們可以看到,這個XML文檔包含了一個由Jani留給Tove的便簽。現在,您應該會同意我們的上述觀點,即XML具有完美的自我描述特性。
當使用XML時,省略關閉標簽是非法。
在Html中,某些元素不一定要有關閉標簽。在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元素,也不需要關閉標簽。
和Html不同,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>
所有的XML必須包含可定義根元素的單一標簽對。
所有其他的元素都必須處於這個根元素內部。
所有的元素均可擁有子元素。子元素必須被正確地嵌套於它們的父元素內部:
<root> <child> <subchild>.....</subchild> </child> </root>
在XML中,省略屬性值兩旁的引號是非法的。
和Html類似,XML也可擁有屬性(名稱/值的對)。在XML中,XML的屬性值須加引號。請研究下面的兩個XML文檔。第一個是錯誤的,第二個是正確的:
<?XML version="1.0" encoding="ISO-8859-1"?> <note date=12/11/2002> <to>Tove</to> <from>Jani</from> </note>
<?XML version="1.0" encoding="ISO-8859-1"?> <note date="12/11/2002"> <to>Tove</to> <from>Jani</from> </note>
在第一個文檔中,日期屬性沒有加引號。這是正確的:date="12/11/2002"。這是錯誤的:date=12/11/2002。在XML中,空格會被保留。
在XML中,空格不會被截掉。
這與HTML不同。在Html中,像這樣的一個句子:
Hello my name is Tove,會顯示為這樣:
Hello my name is Tove,這是由於Html會把多個連續的空格字符裁減為一個。
在XML中,CR / LF會被轉換為LF
在XML中,一個新的行(即換行)被存儲為LF(Line Feed,換行)。
您熟悉打字機嗎?打字機是上世紀用來制造印刷文檔的機械設備。:-)
當您用打字機鍵入了一行文字後,就需要手動將打印滑架移至左側頁邊空白的位置,並手動進紙(feed)一行。
在 Windows 應用程序中,新行通常存儲為一對字符:回車(CR)和換行(LF)。這個字符對與打字機的設置新行的動作有異曲同工之處。在Unix應用程序中,新行通常存儲為LF字符。而Macintosh應用程序僅使用CR字符來存儲新行。
XML中的注釋
在XML中書寫注釋的語法與Html的語法類似:
<!-- This is a comment -->XML沒什麼特殊之處
XML沒什麼特殊之處。它只是帶有被括在角形括號中的標簽的純文本而已。
可處理純文本文件的軟件也可以處理XML。在一個簡單的文本編輯器中,XML標簽也可被顯示出來,不會被特殊地對待。
在可識別XML的(XML-aware)應用程序中,XML標簽會被專門處理。根據不同的應用程序種類,這些標簽也許會/也許不會被看到,又或許擁有某種功能意義。