2009-09-21 125 views
1

可能重複:
How to design storing complex object settings in an xml
XML attribute vs XML elementXml屬性vs Xml屬性?

有什麼標準決定是否事情應該這樣做時使用:

<Blur Type="Gaussian", Amount=5></Blur> 

<Blur>Gaussian, 5</Blur> 

如果它是#1,那麼你會在括號內放什麼?

另外我不知道括號內的值是什麼(Gaussian, 5):inside properties

+1

' Gaussian,5'很難重用,因爲您在一個字段中混入了兩個值(屬性?)。 – voyager 2009-09-21 18:13:10

+1

Dupe:http://stackoverflow.com/questions/1455872/ – GEOCHET 2009-09-21 18:13:14

回答

2

使用

<Blur Type="Gaussian" Amount="5"/> 

這些被稱爲屬性,

內iscalled節點

2

的價值這真的取決於該XML將如何被使用。我的一般經驗法則是:

  • 對於簡單類型(int,double,string,datetime)使用屬性。
  • 對於複雜類型,請使用子元素。
6
  1. XML標籤內的值稱爲標記值。

  2. 你的第二個例子是如何不構建XML的例子(一般來說,對於任何數據存儲,包括XML,你不想將大於1的屬性值捆綁到一個blob中,除非你永遠保證這兩個值將永遠不會被單獨使用/查詢,捆綁的性能優勢非常顯着)。

    應該改爲

<Blur> 
<Type>Gaussian</Type> 
<Amount>5</Amount> 
</Blur> 

兩者之間的選擇有時是模糊的,但一個very good set of guidelines exists from IBM

+0

fwiw,重新:第1點,他們被稱爲「屬性」 – annakata 2009-09-22 16:31:38

4

好吧,首先第一種形式的不XML用逗號和沒有引號。

其次,你在談論屬性VS子元素,這已經涵蓋hereherehere並多次在elsewhere

最後,#2門並不是任何合理類型的數據結構。一般情況下:使用關係爲元數據的屬性,在關係爲組合的情況下使用子元素。

+0

-1 *爲什麼?* – annakata 2009-09-21 18:44:04

+0

不知道爲什麼這被拒絕,因爲它似乎是非常明智的答案... – 2009-09-21 18:45:21

+0

謝謝安娜,我給了+1。 – 2009-09-21 20:17:27

0

我認爲這取決於個人喜好,如果你喜歡:

<blur> 
    <type>Gaussian</type> 
    <amount>5</amount> 
</blur> 

<blur type="Gaussian" amount="5" /> 

而且,任何使你解析自己更費力。有時,引用兒童比屬性更容易,這顯然取決於你將用於解析的語言。