XML教程之了解學(xué)習(xí) XML 屬性_Xml教程
推薦:如何驗(yàn)證XML是合法的XML擁有正確語法的XML是構(gòu)成良好的XML。 通過某種DTD進(jìn)行了驗(yàn)證的XML是合法的XML。 構(gòu)成良好的XML文檔 一個(gè)構(gòu)成良好的XML文檔擁有正確的語法。 一個(gè)W構(gòu)成良好的XML文檔會(huì)遵守前幾章介紹過的XML語法規(guī)則: XML文檔必須有根元素 XML文檔必須有關(guān)閉標(biāo)簽 XML標(biāo)
與HTML類似,XML元素也可以在開始標(biāo)簽中包含屬性。
屬性被用于提供關(guān)于元素的附加信息。
XML 屬性
XML元素可擁有屬性。
回憶一下HTML的這個(gè)標(biāo)簽:<IMG SRC="computer.gif">。SRC屬性提供了關(guān)于img元素的附加信息。
在HTML(以及XML)中,屬性可提供有關(guān)元素的附加(額外的)信息:
<img src="computer.gif"> <a href="demo.asp">
屬性常常會(huì)提供并非數(shù)據(jù)組成部分的信息。在下面的例子中,文件的類型和數(shù)據(jù)是無關(guān)的,但是對(duì)需要處理這個(gè)元素的軟件來說卻很重要:
<file type="gif">computer.gif</file>
引號(hào)類型,"female" 還是 'female'?
屬性值必須被引號(hào)所包圍,不過單引號(hào)和雙引號(hào)均可使用。比如某人的性別,person標(biāo)簽可以這樣寫:
<person sex="female">
或者這樣也可以:
<person sex='female'>
注釋:如果屬性值本身包含雙引號(hào),那么有必要使用單引號(hào)包圍它,就像這個(gè)例子:
<gangster name='George "Shotgun" Ziegler'>
注釋:如果屬性值本身包含單引號(hào),那么有必要使用雙引號(hào)包圍它,就像這個(gè)例子:
<gangster name="George 'Shotgun' Ziegler">
使用元素還是屬性
數(shù)據(jù)可被存儲(chǔ)于子元素之中,或者在屬性中也可以。
請(qǐng)看這些例子:
<person sex="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
<person> <sex>female</sex> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
在第一個(gè)例子中,sex是一個(gè)屬性。在第二個(gè)例子中,sex則是一個(gè)子元素。兩個(gè)例子均可提供相同的信息。
沒有規(guī)則可以告訴我們什么時(shí)候該使用屬性,而什么時(shí)候該使用子元素。我的經(jīng)驗(yàn)是在HTML中,屬性用起來很便利,但是在XML中,您應(yīng)該盡量避免使用屬性。如果信息感覺起來很像數(shù)據(jù),那么請(qǐng)使用子元素吧。
我最喜歡的方式
我喜歡在子元素中存儲(chǔ)數(shù)據(jù)。
下面是三個(gè)包含相同的信息的XML文檔:
第一個(gè)例子中使用了屬性:
<note date="12/11/2002"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
第二個(gè)例子中使用了元素:
<note> <date>12/11/2002</date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
第三個(gè)例子中使用了擴(kuò)展的元素(這是我的最愛):
<note> <date> <day>12</day> <month>11</month> <year>2002</year> </date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
避免使用屬性?
我們應(yīng)當(dāng)避免使用屬性嗎?
因使用屬性而引起的一些問題:
- 屬性無法包含多個(gè)值(子元素可以)
- 屬性不易擴(kuò)展(為未來的變化)
- 屬性無法描述結(jié)構(gòu)(子元素可以)
- 屬性更難被編程代碼處理
- 不易通過某個(gè)DTD對(duì)屬性值進(jìn)行測試 - DTD用來定義XML文檔的合法元素
如果您使用屬性作為數(shù)據(jù)的容器,那么就會(huì)造就難以閱讀和維護(hù)的文檔。請(qǐng)盡量使用元素來描述數(shù)據(jù)。而僅僅使用屬性來提供與數(shù)據(jù)無關(guān)的信息。
不要做這樣的蠢事(這不是XML應(yīng)該被使用的方式):
<note day="12" month="11" year="2002" to="Tove" from="Jani" heading="Reminder" body="Don't forget me this weekend!"> </note>
屬性規(guī)則的一個(gè)例外
規(guī)則總有例外。
有時(shí)候,我會(huì)向元素分配ID索引。這些ID索引可被用來訪問XML元素,其作用的方式與HTML中的NAME屬性或者ID屬性是一樣的。這個(gè)例子向我們演示了這種情況:
<messages> <note id="p501"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> <note id="p502"> <to>Jani</to> <from>Tove</from> <heading>Re: Reminder</heading> <body>I will not!</body> </note> </messages>
這個(gè)例子中的ID只是一個(gè)計(jì)數(shù)器,或者一個(gè)唯一的標(biāo)識(shí)符,用來標(biāo)示XML文件中不同的便簽,并不是便簽數(shù)據(jù)的一部分。
在此我們極力向您傳遞的理念是:元數(shù)據(jù)(有關(guān)數(shù)據(jù)的數(shù)據(jù))應(yīng)當(dāng)存儲(chǔ)為屬性,而數(shù)據(jù)本身應(yīng)當(dāng)存儲(chǔ)為元素。
分享:XML教程之XML 瀏覽器支持幾乎所有的主流瀏覽器均支持XML和XSLT。 Mozilla Firefox 從1.0.2版本開始,F(xiàn)irefox就已開始支持XML和XSLT(包括CSS)。 Mozilla Mozilla含有用于XML解析的Expat,并支持顯示XML + CSS。Mozilla同時(shí)擁有對(duì)Namespaces的某些支持。 Mozilla同樣可做到對(duì)XSLT的
- xml創(chuàng)建節(jié)點(diǎn)(根節(jié)點(diǎn)、子節(jié)點(diǎn))
- WML開發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
- WMLScript的語法基礎(chǔ)
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫
- WML教程之文本框控件Input
- 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
- xml文件的結(jié)構(gòu)解讀
- 關(guān)于XSL - XSL教程
- 選擇模式 - XSL教程 - 2
- XPath入門 - XSL教程 - 3
- 匹配模式 - XSL教程 - 4
- 測試模式 - XSL教程 - 5
Xml教程Rss訂閱編程教程搜索
Xml教程推薦
- XML to DDL的項(xiàng)目關(guān)鍵:與數(shù)據(jù)庫同步
- WML學(xué)習(xí)(一):概述和基本規(guī)則
- 怎樣利用XSLT來換XML的根
- 使用Spry輕松將XML數(shù)據(jù)顯示到HTML頁的方法
- XML 輕松學(xué)習(xí)手冊(比較不錯(cuò))
- 文檔標(biāo)準(zhǔn)的真實(shí)謊言
- 淺析XML教程之XML DHTML 行為
- 了解 XML實(shí)現(xiàn)通用的數(shù)據(jù)訪問
- XML卷之實(shí)戰(zhàn)錦囊(4):選單連動(dòng)
- Javascript XML實(shí)現(xiàn)分頁的實(shí)例
- 相關(guān)鏈接:
- 教程說明:
Xml教程-XML教程之了解學(xué)習(xí) XML 屬性。