XML 被設計用來傳輸和存儲數據。
HTML 被設計用來顯示數據。
XML 也可擁有屬性(名稱/值的對)。XML 的屬性值須加引號,不過單引號和雙引號均可使用。
沒有什麼規矩可以告訴我們什麼時候該使用屬性,而什麼時候該使用子元素。我的經驗是在 HTML 中,屬性用起來很便利,但是在 XML 中,您應該儘量避免使用屬性。如果信息感覺起來很像數據,那麼請使用子元素吧。
XML文件實例
上圖表示下面的 XML 中的一本書:
<?xml version="1.0"encoding="UTF-8"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
例子中的根元素是 <bookstore>。文檔中的所有 <book> 元素都被包含在 <bookstore> 中。
<book> 元素有 4 個子元素:<title>、< author>、<year>、<price>。
實體引用
在 XML 中,一些字符擁有特殊的意義。
如果你把字符 "<" 放在 XML 元素中,會發生錯誤,這是因爲解析器會把它當作新元素的開始。
這樣會產生 XML 錯誤:
<message>if salary < 1000then</message>
爲了避免這個錯誤,請用實體引用來代替 "<" 字符:
<message>if salary < 1000 then</message>
在 XML 中,有 5 個預定義的實體引用:
< |
< |
小於 |
> |
> |
大於 |
& |
& |
和號 |
' |
' |
單引號 |
" |
" |
引號 |
註釋:在 XML 中,只有字符 "<" 和 "&" 確實是非法的。大於號是合法的,但是用實體引用來代替它是一個好習慣。
XML 中的註釋
在 XML 中編寫註釋的語法與 HTML 的語法很相似:
<!This is a comment>
避免 XML 屬性?
因使用屬性而引起的一些問題:
- 屬性無法包含多重的值(元素可以)
- 屬性無法描述樹結構(元素可以)
- 屬性不易擴展(爲未來的變化)
- 屬性難以閱讀和維護
請儘量使用元素來描述數據。而僅僅使用屬性來提供與數據無關的信息。
不要做這樣的蠢事(這不是 XML 應該被使用的方式):
<note day="08" month="08" year="2008"
to="George" from="John" heading="Reminder"
body="Don't forget the meeting!">
</note>