XML指南-XML 屬性

黄舟
發布: 2017-02-11 15:16:52
原創
1729 人瀏覽過

  
跟HTML一樣,XML元素再開始標記處可以由元素屬性。
屬性通常包含一些關於元素的額外資訊。

XML屬性
XML元素可以擁有屬性。
你一定還記得這樣的HTML代碼吧: XML指南-XML 屬性。 src是img元素的屬性,提供了關於img元素的額外資訊。
在HTML中 (在XML中也是一樣)元素的屬性提供了元素的額外資訊。

<img src="computer.gif"> 
<a href="demo.asp">
登入後複製


書信提供的資訊通常不是資料的一部分。在下面的例子中,類型和資料毫不相關,但對於操作這個元素的軟體來說卻相當重要。

<file type="gif">computer.gif</file>
登入後複製


引用風格"female" 還是 'female'?
屬性值必須用引號引著。單引號、雙引號都可以使用。例如一個人的性別,person元素可以這樣寫:

<person sex="female">
登入後複製

也可以這樣寫: 

<person sex=&#39;female&#39;>
登入後複製


上面的兩種寫法在一般情況下是沒有區別的,使用雙引號的應用更普遍一些。但在某些特殊的情況下就必須使用單引號,例如下面的例子:

<gangster name=&#39;George "Shotgun" Ziegler&#39;>
登入後複製


使用子元素還是使用屬性
資料既可以儲存在子元素中也可以儲存在屬性中。
請看下面的例子:

<person sex="female"> 
Anna 
Smith 
 
 
female 
Anna 
Smith 
登入後複製

在第一個例子中,sex是一個屬性,在第二個例子中,sex則是一個子元素。這兩個例子都提供了相同的資訊。
什麼時候用屬性,什麼時候用子元素沒有現成的規則可以遵循。我的經驗是屬性在HTML中可能相當便利,但在XML中,你最好避免使用。



我喜歡的風格
我更願意把資料儲存到子元素中。
下面的三個XML文檔包含了相同的信息:
第一個例子使用了data屬性:

<note date="12/11/99"> 
<to>Tove</to> 
<from>Jani</from> 
<heading>Reminder</heading> 
<body>Don&#39;t forget me this weekend!</body> 
</note>
登入後複製


第二個例子使用了data元素:

<note> 
<date>12/11/99</date> 
<to>Tove</to> 
<from>Jani</from> 
<heading>Reminder</heading> 
<body>Don&#39;t forget me this weekend!</body> 
</note>
登入後複製


第三個例子使用了擴展的data元素: (這是我推薦的樣式):

<note> 
<date> 
<day>12</day> 
<month>11</month> 
<year>99</year> 
</date> 
<to>Tove</to> 
<from>Jani</from> 
<heading>Reminder</heading> 
<body>Don&#39;t forget me this weekend!</body> 
</note>
登入後複製



避免使用屬性?
應該避免使用屬性麼?
這裡有一些使用屬性引發的問題: 
屬性不能包含多個值(子元素可以)。 
屬性不容易擴充。 
屬性無法描述結構(子元素可以)。 
屬性很難被程式碼處理。 
屬性值很難通過DTD進行測試。 
如果使用屬性來儲存數據,那麼所寫的XML文件一定很難閱讀和操作。盡量使用元素來描述數據,僅使用屬性來描述那些與數據無關的額外資訊。
不要像下面的例子那樣(如果你那麼做了說明你還沒明白上面的觀點)。

<note day="12" month="11" year="99" 
to="Tove" from="Jani" heading="Reminder"  
body="Don&#39;t forget me this weekend!"> 
</note>
登入後複製

屬性規則的例外
規則總是有例外的。
我的關於屬性的規則也有一個例外:
有些時候應該為一個元素設計一個ID引用,透過這個ID可以引用訪問特定的XML元素,就像HTML中的name和id屬性一樣。請看下面的例子:

<messages> 
<note ID="501"> 
<to>Tove</to> 
<from>Jani</from> 
<heading>Reminder</heading> 
<body>Don&#39;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屬性就相當於一個計數器,或者是一個唯一的標識符,在XML文檔中標識不同的便條信息,他不是便條信息的一部分。
我們所要盡力向讀者說明的是:元資料(與資料有關的資料)應該以屬性的方式存儲,而資料本身應該以元素的形式儲存。               

以上是XML指引-XML 屬性的內容,並有更多相關內容請關注PHP中文網(www.php.cn)!


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!