XML、XMLList、XMLListCollectionの違い

FlexXMLを扱うのに、XML、XMLList、XMLListCollectionと、3つほどタイプがあって、いまいちこの違いが理解できていない。今回のその整理。

まずそのまえに、ArrayとArrayCollectionから。Arrayとは単純な配列だが、これもArrayCollectionというものがある。その違いは、オンラインマニュアルには以下のようにある。

ArrayCollection クラスは,ICollectionView または IList インタフェースのメソッドとプロパティを使用して,アクセスおよび操作できるコレクションとして配列を公開するラッパークラスです。

要するに,Arrayをデータ元とし高度なメソッドが用意されているクラスらしい。

それによると、XMLList と XMLListCollection も同様の関係なことが推測できる。じゃあ、XML と XMLList は何が違うのか。XMLオブジェクトはrootノードを一つしか持たないが、XMLListは複数持つことができる。どういうことかというと、XMLオブジェクトはそれ自体完結したXML形式である必要があるのに対して、XMLListは、XML オブジェクトの任意のコレクションを表し、完全な XML ドキュメント、XML フラグメント、または XML クエリの結果を含むことができる。

端的に言って、XML < XMLList < XMLListCollection といった感じでラップされているイメージか。


参考:http://itpro.nikkeibp.co.jp/article/COLUMN/20070316/265472/