[英]Linq2Xml XAttribute hierarchy location?
我無法理解這一點:
為什么Microsoft將Xattribute置於Xobject之下?
他們說 :
屬性不是從XNode派生的。 它們不是XML樹中的節點。 相反,它們只是與元素關聯的名稱/值對。
很好 ...帶有元素。
那為什么不去哪里抽獎呢?
屬性屬於元素。
使用繼承將意味着“屬性是 (一種特殊的)元素”,這顯然是錯誤的。 例如,屬性不能有子級。
該樹是一個繼承樹,它實際上沒有顯示如何將對象一起使用。
從繼承的角度來看,您建議的位置不起作用。 元素可以具有子元素和屬性,因此,如果XAttribute是從XElement派生的,則意味着Attributes可以具有子元素和它們自己的屬性。 XContainer也是如此,因此在樹中將XAttribute放在XElement旁邊也沒有意義。
XNode是下一步。 XAttribute是否適合XNode? 並不是的。 一般來講,當您查看XML時,有兩個基本結構元素,即節點和屬性。 兩者都不是從彼此派生的,因此XAttribute和XNode位於XObject樹的不同分支上是有意義的。
剩下的就是XObject,它是基本的Xml2Linq對象類型,一切都必須從該對象類型派生,因此,這是XAttribute類型的最佳位置(實際上是唯一適當的位置)。
這是一個繼承樹,並且XAttribute
是從XObject
派生的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.