2012-03-24 53 views
0

林無法理解這一點:Linq2Xml XAttribute層次結構位置?

enter image description here

爲什麼微軟把Xattribute X對象下?

他們說:

屬性不是從XNode導出;它們不是XML 樹中的節點。相反,它們只是與 元素關聯的名稱/值對。

罰款 ...用元素。

那麼爲什麼不在我抽籤的地方?

回答

1

這棵樹是一棵繼承樹,它實際上並不顯示這些對象如何一起使用。

你所建議的位置從繼承的角度看並不起作用。元素可以具有子元素和屬性,因此如果XAttribute是從XElement派生的,則意味着屬性可以具有子元素和它們自己的屬性。 XContainer也是如此,因此將XAttribute放置在樹中的XElement旁邊也沒有任何意義。

XNode是下一步。 XAttribute可以放在XNode下嗎?不是真的。從一般意義上講,當您查看XML時,有2個基本結構元素,節點和屬性。兩者都不是從另一個派生的,所以XAttribute和XNode在XObject樹的不同分支上是有意義的。

這只是保留了XObject,它是基本的Xml2Linq對象類型,並且所有東西都必須從它派生出來,所以對於XAttribute類型來說這是最好的(也是唯一合適的位置)。

2

屬性屬於的元素。

使用繼承意味着「一個屬性一種(特殊的)元素」,這顯然是不正確的。例如,一個屬性不能有孩子。

0

這是繼承樹,並且XAttribute源自XObject