XML 文檔包含 XML 元素。


什么是 XML 元素?

XML 元素指的是從(且包括)開始標(biāo)簽直到(且包括)結(jié)束標(biāo)簽的部分。

一個(gè)元素可以包含:

  • 其他元素

  • 文本

  • 屬性

  • 或混合以上所有...

<bookstore>
<book category="CHILDREN">
     <title>Harry Potter</title>
       <author>J K. Rowling</author>
     <year>2005</year>
     <price>29.99</price>
</book>
<book category="WEB">
     <title>Learning XML</title>
     <author>Erik T. Ray</author>
     <year>2003</year>
     <price>39.95</price>
</book>
</bookstore>

在上面的實(shí)例中,<bookstore> 和 <book> 都有 元素內(nèi)容,因?yàn)樗麄儼渌亍?lt;book> 元素也有屬性(category="CHILDREN")。<title>、<author>、<year> 和 <price> 有文本內(nèi)容,因?yàn)樗麄儼谋尽?/p>


XML 命名規(guī)則

XML 元素必須遵循以下命名規(guī)則:

  • 名稱可以包含字母、數(shù)字以及其他的字符

  • 名稱不能以數(shù)字或者標(biāo)點(diǎn)符號(hào)開始

  • 名稱不能以字母 xml(或者 XML、Xml 等等)開始

  • 名稱不能包含空格

可使用任何名稱,沒有保留的字詞。


最佳命名習(xí)慣

使名稱具有描述性。使用下劃線的名稱也很不錯(cuò):<first_name>、<last_name>。

名稱應(yīng)簡短和簡單,比如:<book_title>,而不是:<the_title_of_the_book>。

避免 "-" 字符。如果您按照這樣的方式進(jìn)行命名:"first-name",一些軟件會(huì)認(rèn)為您想要從 first 里邊減去 name。

避免 "." 字符。如果您按照這樣的方式進(jìn)行命名:"first.name",一些軟件會(huì)認(rèn)為 "name" 是對(duì)象 "first" 的屬性。

避免 ":" 字符。冒號(hào)會(huì)被轉(zhuǎn)換為命名空間來使用(稍后介紹)。

XML 文檔經(jīng)常有一個(gè)對(duì)應(yīng)的數(shù)據(jù)庫,其中的字段會(huì)對(duì)應(yīng) XML 文檔中的元素。有一個(gè)實(shí)用的經(jīng)驗(yàn),即使用數(shù)據(jù)庫的命名規(guī)則來命名 XML 文檔中的元素。

在 XML 中,éòá 等非英語字母是完全合法的,不過需要留意,您的軟件供應(yīng)商不支持這些字符時(shí)可能出現(xiàn)的問題。


XML 元素是可擴(kuò)展的

XML 元素是可擴(kuò)展,以攜帶更多的信息。

請(qǐng)看下面的 XML 實(shí)例:

<note>
<to>Tove</to>
<from>Jani</from>
<body>Don't forget me this weekend!</body>
</note>

讓我們設(shè)想一下,我們創(chuàng)建了一個(gè)應(yīng)用程序,可將 <to>、<from> 以及 <body> 元素從 XML 文檔中提取出來,并產(chǎn)生以下的輸出:

MESSAGE
To: Tove
   From: Jani
Don't forget me this weekend!

想象一下,XML 文檔的作者添加的一些額外信息:

<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

那么這個(gè)應(yīng)用程序會(huì)中斷或崩潰嗎?

不會(huì)。這個(gè)應(yīng)用程序仍然可以找到 XML 文檔中的 <to>、<from> 以及 <body> 元素,并產(chǎn)生同樣的輸出。

XML 的優(yōu)勢之一,就是可以在不中斷應(yīng)用程序的情況下進(jìn)行擴(kuò)展。