2012-03-24 2 views
0

イム苦労:Linq2Xml XAttribute階層の場所?これを理解する

enter image description here

MicrosoftはのXObjectの下Xattributeを置く理由は?彼らはと言う

属性はXNodeから派生されていません。それらはXML ツリーのノードではありません。代わりに、それらは単に 要素に関連付けられた名前と値のペアです。

細い ...要素を使用しています。

なぜ私はドローをしたのですか?

答えて

1

ツリーは継承ツリーであり、実際にどのようにオブジェクトが一緒に使用されるかを示していません。

あなたが提案している場所は、継承の観点からは機能しません。要素は子と属性を持つことができるので、XAttributeがXElementから派生している場合は、属性に子要素と独自の属性がある可能性があります。同じことがXContainerにも当てはまるので、ツリー内のXElementの隣にXAttributeを置くのは意味がありません。

次のステップはXNodeです。 XAttributeはXNodeの下に収まるでしょうか?あんまり。 XMLを見ると、一般的な意味で、2つの基本的な構造要素、ノードと属性があります。どちらも他のものから派生していないので、XAttributeとXNodeがXObjectツリーの異なる枝にあることは意味があります。

これは基本的なXml2Linqオブジェクト型であるXObjectを残すだけであり、すべてがXAttribute型の最適な(実際には唯一の適切な場所である)ため、すべてから派生する必要があります。

2

アトリビュートは、エレメントにが属します。

継承を使用すると、「属性です(特別な種類の)要素」であることは明らかですが、これは間違いです。例えば、属性は子供を持つことはできません。

0

これは継承ツリーであり、XAttributeXObjectから派生したものです。

関連する問題