XML教程之了解學(xué)習(xí) XML 屬性_Xml教程
推薦:如何驗證XML是合法的XML擁有正確語法的XML是構(gòu)成良好的XML。 通過某種DTD進(jìn)行了驗證的XML是合法的XML。 構(gòu)成良好的XML文檔 一個構(gòu)成良好的XML文檔擁有正確的語法。 一個W構(gòu)成良好的XML文檔會遵守前幾章介紹過的XML語法規(guī)則: XML文檔必須有根元素 XML文檔必須有關(guān)閉標(biāo)簽 XML標(biāo)
與HTML類似,XML元素也可以在開始標(biāo)簽中包含屬性。
屬性被用于提供關(guān)于元素的附加信息。
XML 屬性
XML元素可擁有屬性。
回憶一下HTML的這個標(biāo)簽:<IMG SRC="computer.gif">。SRC屬性提供了關(guān)于img元素的附加信息。
在HTML(以及XML)中,屬性可提供有關(guān)元素的附加(額外的)信息:
<img src="computer.gif"> <a href="demo.asp">
屬性常常會提供并非數(shù)據(jù)組成部分的信息。在下面的例子中,文件的類型和數(shù)據(jù)是無關(guān)的,但是對需要處理這個元素的軟件來說卻很重要:
<file type="gif">computer.gif</file>
引號類型,"female" 還是 'female'?
屬性值必須被引號所包圍,不過單引號和雙引號均可使用。比如某人的性別,person標(biāo)簽可以這樣寫:
<person sex="female">
或者這樣也可以:
<person sex='female'>
注釋:如果屬性值本身包含雙引號,那么有必要使用單引號包圍它,就像這個例子:
<gangster name='George "Shotgun" Ziegler'>
注釋:如果屬性值本身包含單引號,那么有必要使用雙引號包圍它,就像這個例子:
<gangster name="George 'Shotgun' Ziegler">
使用元素還是屬性
數(shù)據(jù)可被存儲于子元素之中,或者在屬性中也可以。
請看這些例子:
<person sex="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
<person> <sex>female</sex> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
在第一個例子中,sex是一個屬性。在第二個例子中,sex則是一個子元素。兩個例子均可提供相同的信息。
沒有規(guī)則可以告訴我們什么時候該使用屬性,而什么時候該使用子元素。我的經(jīng)驗是在HTML中,屬性用起來很便利,但是在XML中,您應(yīng)該盡量避免使用屬性。如果信息感覺起來很像數(shù)據(jù),那么請使用子元素吧。
我最喜歡的方式
我喜歡在子元素中存儲數(shù)據(jù)。
下面是三個包含相同的信息的XML文檔:
第一個例子中使用了屬性:
<note date="12/11/2002"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
第二個例子中使用了元素:
<note> <date>12/11/2002</date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
第三個例子中使用了擴(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)避免使用屬性嗎?
因使用屬性而引起的一些問題:
- 屬性無法包含多個值(子元素可以)
- 屬性不易擴(kuò)展(為未來的變化)
- 屬性無法描述結(jié)構(gòu)(子元素可以)
- 屬性更難被編程代碼處理
- 不易通過某個DTD對屬性值進(jìn)行測試 - DTD用來定義XML文檔的合法元素
如果您使用屬性作為數(shù)據(jù)的容器,那么就會造就難以閱讀和維護(hù)的文檔。請盡量使用元素來描述數(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ī)則的一個例外
規(guī)則總有例外。
有時候,我會向元素分配ID索引。這些ID索引可被用來訪問XML元素,其作用的方式與HTML中的NAME屬性或者ID屬性是一樣的。這個例子向我們演示了這種情況:
<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>這個例子中的ID只是一個計數(shù)器,或者一個唯一的標(biāo)識符,用來標(biāo)示XML文件中不同的便簽,并不是便簽數(shù)據(jù)的一部分。
在此我們極力向您傳遞的理念是:元數(shù)據(jù)(有關(guān)數(shù)據(jù)的數(shù)據(jù))應(yīng)當(dāng)存儲為屬性,而數(shù)據(jù)本身應(yīng)當(dāng)存儲為元素。
分享:XML教程之XML 瀏覽器支持幾乎所有的主流瀏覽器均支持XML和XSLT。 Mozilla Firefox 從1.0.2版本開始,F(xiàn)irefox就已開始支持XML和XSLT(包括CSS)。 Mozilla Mozilla含有用于XML解析的Expat,并支持顯示XML + CSS。Mozilla同時擁有對Namespaces的某些支持。 Mozilla同樣可做到對XSLT的
- xml創(chuàng)建節(jié)點(根節(jié)點、子節(jié)點)
- 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
- 相關(guān)鏈接:
- 教程說明:
Xml教程-XML教程之了解學(xué)習(xí) XML 屬性
。