我无法理解这一点:
为什么微软将 Xattribute 放在 Xobject 下?
他们说 :
属性不是从 XNode 派生的;它们不是 XML 树中的节点。相反,它们只是与元素关联的名称/值对。
很好......有一个元素。
那么为什么不在我抽奖的地方呢?
我无法理解这一点:
为什么微软将 Xattribute 放在 Xobject 下?
他们说 :
属性不是从 XNode 派生的;它们不是 XML 树中的节点。相反,它们只是与元素关联的名称/值对。
很好......有一个元素。
那么为什么不在我抽奖的地方呢?
属性属于一个元素。
使用继承意味着“属性是一种(特殊的)元素”,这显然是不正确的。例如,一个属性不能有子级。
该树是一棵继承树,它实际上并没有显示对象是如何一起使用的。
从继承的角度来看,您建议的位置不起作用。元素可以有子元素和属性,因此如果 XAttribute 是从 XElement 派生的,则意味着 Attributes 可以有子元素和它们自己的属性。XContainer 也是如此,因此在树中将 XAttribute 放在 XElement 旁边也没有任何意义。
XNode 是下一步。XAttribute 能适应 XNode 吗?并不真地。当您查看 XML 时,在一般意义上,有 2 个基本结构元素,节点和属性。两者都不是从另一个派生的,因此 XAttribute 和 XNode 位于 XObject 树的不同分支上是有意义的。
剩下的就是 XObject,它是基本的 Xml2Linq 对象类型,所有东西都必须从它派生,所以这是 XAttribute 类型的最佳(也是唯一合适的位置)。
这是一棵继承树,XAttribute
派生自XObject
.