0

これを理解するのに苦労しています:

ここに画像の説明を入力

Microsoft が Xattribute を Xobject の下に置く理由

彼らは言った :

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

結構…要素あり。

では、なぜ私が引き分けをしたのですか?

4

3 に答える 3

2

属性は要素に属します。

継承を使用すると、「属性(特別な種類の) 要素である」ことになりますが、これは明らかに正しくありません。たとえば、属性は子を持つことができません。

于 2012-03-24T15:43:22.677 に答える
1

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

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

XNode は次のステップアップです。XAttribute は XNode に適合しますか? あまり。XML を見ると、一般的な意味で、ノードと属性という 2 つの基本的な構造要素があります。どちらも他方から派生したものではないため、XAttribute と XNode が XObject ツリーの異なるブランチにあることは理にかなっています。

XObject はベース Xml2Linq オブジェクト型であり、すべてがそこから派生する必要があるため、XAttribute 型に最適な (そして実際に唯一の適切な場所) です。

于 2012-03-24T17:15:30.703 に答える
0

これは継承ツリーであり、XAttributeから派生していXObjectます。

于 2012-03-24T15:43:24.517 に答える