XML的語法規(guī)則既很簡單,又很嚴格。這些規(guī)則很容易學(xué)習(xí),也很容易使用。
正因為如此,創(chuàng)建可讀取及操作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規(guī)范,并使用了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>
最后的一行定義了根元素的結(jié)尾:
</note>
我們可以看到,這個XML文檔包含了一個由Jani留給Tove的便簽。現(xiàn)在,您應(yīng)該會同意我們的上述觀點,即XML具有完美的自我描述特性。
當(dāng)使用XML時,省略關(guān)閉標(biāo)簽是非法。
在HTML中,某些元素不一定要有關(guān)閉標(biāo)簽。在HTML中下面的代碼是合法的:
<p>This is a paragraph<p>This is another paragraph
在XML中,所有的元素都要有關(guān)閉標(biāo)簽:
<p>This is a paragraph</p><p>This is another paragraph</p>
注釋:您也許已經(jīng)從上面的例子中注意到XML聲明沒有關(guān)閉標(biāo)簽。這不是錯誤。聲明不屬于XML本身的組成部分。它不是XML元素,也不需要關(guān)閉標(biāo)簽。
和HTML不同,XML標(biāo)簽對大小寫敏感。
在XML中,標(biāo)簽<Letter>和標(biāo)簽<letter>是不同的。
所以必須使用相同的大小寫打開并關(guān)閉標(biāo)簽:
<Message>這是錯誤的。</message><message>這是正確的。</message>
不正確的標(biāo)簽嵌套對XML是沒有意義的。
在HTML中,某些元素可以不正確地彼此嵌套在一起,就像這樣:
<b><i>This text is bold and italic</b></i>
在XML中,所有的元素必須正確地彼此嵌套,就像這樣:
<b><i>This text is bold and italic</i></b>
所有的XML必須包含可定義根元素的單一標(biāo)簽對。
所有其他的元素都必須處于這個根元素內(nèi)部。
所有的元素均可擁有子元素。子元素必須被正確地嵌套于它們的父元素內(nèi)部:
<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中,空格不會被截掉。
這與HTML不同。在HTML中,像這樣的一個句子:
Hello my name is Tove,
會顯示為這樣:
Hello my name is Tove,
這是由于HTML會把多個連續(xù)的空格字符裁減為一個。
在XML中,一個新的行(即換行)被存儲為LF(Line Feed,換行)。
您熟悉打字機嗎?打字機是上世紀用來制造印刷文檔的機械設(shè)備。:-)
當(dāng)您用打字機鍵入了一行文字后,就需要手動將打印滑架移至左側(cè)頁邊空白的位置,并手動進紙(feed)一行。
在 Windows 應(yīng)用程序中,新行通常存儲為一對字符:回車(CR)和換行(LF)。這個字符對與打字機的設(shè)置新行的動作有異曲同工之處。在Unix應(yīng)用程序中,新行通常存儲為LF字符。而Macintosh應(yīng)用程序僅使用CR字符來存儲新行。
在XML中書寫注釋的語法與HTML的語法類似:
<!-- This is a comment -->
XML沒什么特殊之處。它只是帶有被括在角形括號中的標(biāo)簽的純文本而已。
可處理純文本文件的軟件也可以處理XML。在一個簡單的文本編輯器中,XML標(biāo)簽也可被顯示出來,不會被特殊地對待。
在可識別XML的(XML-aware)應(yīng)用程序中,XML標(biāo)簽會被專門處理。根據(jù)不同的應(yīng)用程序種類,這些標(biāo)簽也許會/也許不會被看到,又或許擁有某種功能意義。
新聞熱點
疑難解答