我无法理解这一点:
为什么Microsoft将Xattribute放在Xobject下?
他们说:属性不是从XNode派生的;它们不是XML中的节点 树。相反,它们只是与a相关联的名称/值对 元件。
罚款 ...使用元素。
那么为什么不在哪里画画?
答案 0 :(得分:2)
属性属于元素。
使用继承意味着“属性是 a(特殊种类)元素”,这显然是不正确的。例如,属性不能包含子项。
答案 1 :(得分:1)
树是一个继承树,它实际上并没有显示对象是如何一起使用的。
您建议的位置无法从继承的角度出发。元素可以具有子元素和属性,因此如果XAttribute是从XElement派生的,则意味着Attributes可以具有子元素和它们自己的属性。 XContainer也是如此,因此将XAttribute放在树中的XElement旁边也没有意义。
XNode是下一步。 XAttribute可以在XNode下适合吗?并不是的。当您查看XML时,从一般意义上讲,有两个基本结构元素,即节点和属性。两者都不是从另一个派生的,所以XAttribute和XNode在XObject树的不同分支上是有道理的。
只留下XObject,它是基本的Xml2Linq对象类型,并且所有内容都必须从它派生,因此这是XAttribute类型的最佳(也是唯一合适的位置)。
答案 2 :(得分:0)
这是一个继承树,XAttribute
派生自XObject
。