iT邦幫忙

DAY 23
8

XML系列 第 23

[XML]23-文件之屬性

介紹過了元素之後,此篇接著來介紹的是「屬性」。
屬性(attributes)最主要的功能是在描述元素的額外資訊,而簡單地使用物件導向程式語言來做類比,元素是 class 的話,那麼屬性就是 class 裡的 attribute / property。

以一本書的資料而言,舉例如下:
可以看出 bookname 和 publishdate 都是描述書的資訊

<Book bookname="誰溫暖了工程師" publishdate="2010-09-09">
</Book>

看到上面這個例子,或許你會質疑,為什麼不寫成下面這種型式

<Book>
   <bookname>誰溫暖了工程師</bookname>
   <publicshdate>2010-09-09</publishdate>
</Book>

的確如此,在 XML 中可以任意使用元素或屬性來描述所帶的資訊。那麼在什麼情形下使用元素,又在什麼情形下使用屬性呢?

這裡一個簡單的判斷依據,就是用「出現一次或是出現多次」做判斷,如下例:

//bookname, publishdate只出現一次,用屬性或用元素,沒有太大差別
<Book bookname="誰溫暖了工程師" publishdate="2010-09-09"></Book>
<Book>
   <bookname>誰溫暖了工程師</bookname>
   <publicshdate>2010-09-09</publishdate>
</Book>

//如果出現多次,就只能用元素了,如下例中的 PaymentItem, MOA 和 PaymentDate:
<PaymentInfo>
   <PaymentDetail>
      <PaymentItem>001</PaymentItem>
      <MOA>1000000</MOA>
      <PaymentDate>2011-10-10</PaymentDate>
   </PaymentDetail>
   <PaymentDetail>
      <PaymentItem>002</PaymentItem>
      <MOA>1200000</MOA>
      <PaymentDate>2011-11-10</PaymentDate>
   </PaymentDetail>
   <PaymentDetail>
      <PaymentItem>003</PaymentItem>
      <MOA>1400000</MOA>
      <PaymentDate>2011-12-10</PaymentDate>
   </PaymentDetail>
</PaymentInfo>

有時即使只出現一次,使用元素也會比使用屬性的方式要好,主要原因是在「結構定義的可重用性」,就是類似高階程式裡的「模組化」。請參照先前[XML]18-驗證之 Schema中所提到的列 14 到列 23 的說明。

此外,在使用屬性時要特別注意的,就是「屬性一定要用括號括起來」,如下所示:

//在HTML中,以下兩列都合法
<a href=http://ithelp.ithome.com.tw>iTHelp</a>
<a href="http://ithelp.ithome.com.tw">iTHelp</a>

//但在XML中,一定要加括號如下
<a href="http://ithelp.ithome.com.tw">iTHelp</a>

本系列文章列表
Next : [XML]24-文件之名稱空間


上一篇
[XML]22-文件之元素
下一篇
[XML]24-文件之名稱空間
系列文
XML30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
Ken(Bigcandy)
iT邦大師 1 級 ‧ 2011-10-20 00:28:53

我等全集到時候一起研讀,不然滿頭疼的....看沒有!!

這應該放在您那篇
更應景些
謝謝

鐵殼心 iT邦高手 1 級 ‧ 2011-10-20 06:24:04 檢舉


搬過來給糖叔坐開心

0
chiounan
iT邦研究生 1 級 ‧ 2011-10-20 10:26:32

筆記
用功用功

我要留言

立即登入留言