XML元素可以有屬性,就像HTML。
屬性被設計為包含與特定元素的數據。
XML屬性必須加引號
屬性值必須加引號。 任一單引號或雙引號都可以使用。
對於一個人的性別,在<person>元素可以這樣寫:
<person gender="female">
或者是這樣的:
<person gender='female'>
如果屬性值本身包含雙引號,你可以使用單引號,就像這個例子:
<gangster name='George "Shotgun" Ziegler'>
或者您可以使用字符實體:
<gangster name="George "Shotgun" Ziegler">
XML元素與屬性
看看這些例子:
<person gender="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<gender>female</gender>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
在第一個例子中的性別是一個屬性。 在過去,性別是一個元素。 兩個例子都提供相同的信息。
沒有關於何時使用或當屬性來使用XML元素的規則。
我最喜歡的方式
下面的三個XML文檔包含完全相同的信息:
一個日期屬性是在第一實施例中使用:
<note date="2008-01-10">
<to>Tove</to>
<from>Jani</from>
</note>
一個<date>元素在第二個例子中使用:
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
</note>
擴大的<date>元素中的第三個例子使用: (THIS IS MY FAVORITE) :
<note>
<date>
<year>2008</year>
<month>01</month>
<day>10</day>
</date>
<to>Tove</to>
<from>Jani</from>
</note>
避免XML屬性?
有些事情要考慮在使用的屬性有:
- 屬性不能包含多個值(elements can)
- 屬性不能包含的樹結構(elements can)
- 屬性不容易擴展(for future changes)
最終不會是這樣的:
<note day="10" month="01" year="2008"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
XML屬性的元數據
有時ID引用分配給元素。 這些ID可以用於識別在大致相同的方式作為XML元素id在HTML屬性。 這個例子說明了這一點:
<messages>
<note id="501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note id="502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not</body>
</note>
</messages>
該id上面的屬性是用於識別不同的音符。 它不是音符本身的一部分。
我想在這裡說的是,元數據(data about data)應當存儲為屬性,而數據本身應當存儲為元素。