最新的Web開發教程
 

XML屬性


XML元素可以有屬性,就像HTML。

屬性被設計為包含與特定元素的數據。


XML屬性必須加引號

屬性值必須加引號。 任一單引號或雙引號都可以使用。

對於一個人的性別,在<person>元素可以這樣寫:

<person gender="female">

或者是這樣的:

<person gender='female'>

如果屬性值本身包含雙引號,你可以使用單引號,就像這個例子:

<gangster name='George "Shotgun" Ziegler'>

或者您可以使用字符實體:

<gangster name="George &quot;Shotgun&quot; 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)應當存儲為屬性,而數據本身應當存儲為元素。