Atribute ng XML
- 上一页 Elemento ng XML
- 下一页 Namespace ng XML
Ang element ng XML ay maaaring magkaroon ng attribute sa tag na mula sa simula, katulad ng HTML.
Ang attribute (Attribute) ay nagbibigay ng karagdagang (addition) impormasyon tungkol sa element.
Ang attribute ng XML ay dapat na may quotes
Ang halaga ng attribute ay dapat na naka-quotes, ngunit maaaring gamitin ang single at double quotes.
Halimbawa, kung ang kasarian ng isang tao, ang tag <person> ay pwedeng magiging tulad ng ito:
<person gender="female">
Oo, maari din ito:
<person gender='female'>
Kung ang halaga ng attribute ay naglalaman ng double quotes, maaari kang gamitin ang single quote, tulad ng halimbawa:
<gangster name='George "Shotgun" Ziegler'>
Oo, maari ka ring gamitin ang character entity:
<gangster name="George "Shotgun" Ziegler">
XML Element at Attribute
Mangyaring tingnan ang dalawang halimbawa:
<person gender="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person> <person> <gender>female</gender> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
在第一個例子中,sex 是一個屬性。在第二個例子中,sex 則是一個子元素。兩個例子均可提供相同的信息。
XML 中沒有規則可以告訴我們什麼時候該使用屬性,什麼時候該使用子元素。我的經驗是在 HTML 中,屬性用起來很便利,但是在 XML 中,您應該盡量避免使用屬性。如果信息感覺起來很像是數據,那麼請使用子元素吧。
我最喜歡的方式
下面的三個 XML 文件包含完全相同的信息:
第一個例子中使用了 date 屬性:
<note date="2008-01-10"> <to>George</to> <from>John</from> </note>
第二個例子中使用了 <date> 元素:
<note> <date>2008-01-10</date> <to>George</to> <from>John</from> </note>
第三個例子中使用了擴展的 date 元素(這是我的最爱):
<note> <date> <year>2008</year> <month>01</month> <day>10</day> </date> <to>George</to> <from>John</from> </note>
避免使用 XML 屬性?
使用屬性時需要考慮的一些事項是:
- 屬性不能包含多個值(元素可以)
- 屬性無法描述樹結構(元素可以)
- 屬性不易擴展(為未來的變化)
請盡量使用元素來描述數據。而僅僅使用屬性來提供與數據無關的信息。
不要做這樣的愚事(這不是 XML 應該被使用的方式):
<note day="10" month="01" year="2008" to="George" from="John" heading="Reminder" body="Don't forget the meeting!"> </note>
針對元數據的 XML 屬性
有時會向元素分配 ID 引用。這些 ID 索引可用於識別 XML 元素,它起作用的方式與 HTML 中 ID 屬性相同。這個例子向我們展示了這種情況:
<messages> <note id="501"> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> <note id="502"> <to>John</to> <from>George</from> <heading>Re: Reminder</heading> <body>I will not</body> </note> </messages>
上面的 ID 仅仅是一个标识符,用于标识不同的便签。它并不是便签数据的组成部分。
在此我们极力向您传递的理念是:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。
- 上一页 Elemento ng XML
- 下一页 Namespace ng XML