XML元素是可擴展的,它們之間是存在著某些關系。
XML元素須遵守一些簡單的命名規則。
XML元素是可被擴展,來攜帶更多的信息。
請看下面這個XML標簽例子:
<note> <to>Tove</to> <from>Jani</from> <body>Don't forget me this weekend!</body> </note>
讓我們設想一下,我們創建了一個應用程序,可將<to>、<from>以及<body>元素提取出來,並產生以下的輸出:
MESSAGE To: Tove From: Jani Don't forget me this weekend!
想象一下,之後這個XML文檔作者又向這個文檔添加了一些額外的信息:
<note> <date>2002-08-01</date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
那麼這個應用程序會中斷或崩潰嗎?
不會。這個應用程序仍然可以找到XML文檔中的<to>、<from>以及<body>元素,並產生同樣的輸出:
XML文檔是可擴展的。
元素之間有父與子的關系。
為了理解XML的術語,我們需要了解XML之間的關系是如何命名的,以及元素的內容是如何被描述的。
想象一下,關於某本書的描述:
我的第一個XML XML 簡介 Html 的概念 XML 的概念 XML 的語法 元素必須擁有關閉標簽 元素必須被正確地嵌套
想象一下,XML文檔是如何描述這本書的:
<book> <title>我的第一個XML</title> <prod id="33-657" media="paper"></prod> <chapter>XML 簡介 <para>Html 的概念</para> <para>XML 的概念</para> </chapter> <chapter>XML 的語法 <para>元素必須擁有關閉標簽</para> <para>元素必須被正確地嵌套</para> </chapter> </book>
book(書)是根元素。Title、prod以及chapter是book的子元素。book是Title、prod以及chapter的父元素。Title、prod以及chapter是兄弟元素或者姐妹元素,這是因為它們都擁有相同的父母。
元素可以擁有不同的內容類型。
一個XML元素由(且包括)元素的開始標簽起始,到(且包括)元素的結束標簽終止。
一個元素可以擁有元素內容、混合型內容、簡易內容或者空內容。元素也可以擁有屬性。
在上面的例子中,book有元素內容,因為它包含了其他的元素。chapter擁有混合型內容,因為即包含文本,也包含其他的元素。para擁有簡易內容(或文本內容),因為它僅包含文本。prod擁有空內容,因為它沒有攜帶信息。
在上面的例子中,僅有prod元素擁有屬性。名為id的屬性的值為"33-657"。名為medea的屬性的值為"paper"。
當您“發明創造”元素名稱時,請留意並遵循下面的簡單的規則:
您可以使用任何名稱,沒有保留字,但是理想的做法是使名稱具有描述性。使用下劃線的名稱也是不錯的。
例子: <first_name>,<last_name>
應該在名稱中避免"-"和"."。比方說,如果您將某個元素命名為"first-name",那麼當您的軟件試圖從first段來提取名稱時可能會出現混亂的局面。或者如果您將某個元素命名為"first.name",您的軟件也許會認為"name"是"first"對象的一個屬性。
元素名稱可以是你希望的任何長度,但是也不要太誇張。名稱應當比較簡短,比如:<book_title>,而不是:<the_title_of_the_book>。
XML文檔經常有一個對應的數據庫,其中的域會對應XML文檔中的某個元素。有一個實用的經驗,即使用數據庫的名稱規則命名XML文檔中的元素。
非英語的字母比如éòá也是合法的XML元素名,不過需要注意當軟件開發商不支持字母時出現的問題。不應在XML元素名稱中使用":",這是由於它是用於被稱作命名空間(namespaces)的保留字。