XML教學 | 屬性
XML
屬性
XML
元素具有屬性,類似HTML
。
屬性(Attribute)提供有關元素的額外訊息。
在HTML
中,屬性提供有關元素的額外訊息:
1 | <img src="computer.gif"> |
屬性通常提供不屬於資料組成部分的訊息。
此範例中,文件類型與資料無關,但是對需要處理這個元素的軟體來說卻很重要:
1 | <file type="gif">computer.gif</file> |
屬性必須加引號
屬性值必須被引號包圍,可以使用單引號或雙引號。
舉例對於一個人的性別,<person>
元素可以這樣寫:
1 | <person gender="female"> |
如果屬性值本身包含雙引號,可以使用單引號,如範例所示:
1 | <gangster name='George "Shotgun" Ziegler'> |
註:特殊字符,可以參考XML教學 | 語法規則。
元素與屬性
1 | <person gender="female"> |
1 | <person> |
在第一個範例中,性別是一個屬性。
最後一個範例中,性別是一個元素。
以上這兩個範例都提供了相同的訊息。
沒有關於何時使用屬性或何時使用XML
中的元素的規則。
在HTML
中,屬性用起來方便,但是在XML
中,應該盡量避免使用屬性。如果訊息感覺起來很像資料,那麼就用元素吧。
常見的方式
以下三個XML
文件包含完全相同的訊息:
第一個使用了日期屬性:
1
2
3
4<note date="2008-01-10">
<to>Tove</to>
<from>Jani</from>
</note>第二個使用了
<date>
元素:1
2
3
4
5<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
</note>第三個使用了擴展的
<date>
元素:1
2
3
4
5
6
7
8
9<note>
<date>
<year>2008</year>
<month>01</month>
<day>10</day>
</date>
<to>Tove</to>
<from>Jani</from>
</note>
避免使用的情況
使用屬性時需要考慮的一些事是:
- 屬性不能包含多個值(元素可以)
- 屬性不能包含樹結構(元素可以)
- 屬性不易擴展(以備將來更改)
要知道屬性步好閱讀與維護。請使用元素來描述資料。而僅僅使用屬性來提供與資料無關的訊息。
以下範例不是XML
應該被使用的方式:
1 | <note day="10" month="01" year="2008" to="Tove" from="Jani" heading="Reminder" body="Don't forget me this weekend!"> |
元資料的屬性
有時ID
引用會分配給元素。這些ID
可用於標識XML
元素,其方式與HTML
中的id
屬性非常相似。
參考範例:
1 | <messages> |
上面的 id 屬性僅僅是一個標識符,用於標識不同的便簽。它並不是便簽資料的組成部分。
這裡想說的是元資料(有關資料的資料)應該作為屬性儲存,而資料本身應該作為元素儲存。
id="501"
,id="502"
只是這個<note>
資料流水號,他並不是資料本身。<to>
,<from>
,<heading>
,<body>
,這些就是資料本身。
結語
了解了元素中的使用方式與使用時機,可以更好的操作XML
裡面的資料。在此基本的XML
算是學習完畢了。
下一章節將會對XML
進行所謂的驗證。
註:以上參考了
w3resource.com - XML Attributes
RUNOOB.COM - XML 属性
維基百科-XML
Family with 220 icons by inipagi