2011-04-19 15 views
1

私は読んでおく必要のある別のXMLファイルを持っています。ファイルをデシリアライズしてカスタムオブジェクトにするか、XDocumentオブジェクトとLinq-to-XMLを使ってデータを読み込むべきかどうか疑問に思っています。XMLシリアル化またはXMLオブジェクトからの読み取り?

ファイルのサイズは1〜2kbから3mb +までで、さまざまなオブジェクトも複雑さがあります(属性のあるものもあれば、子供のものもあれば、両方のものもあれば、まったくないものもあります)。

私は、Linq-to-XMLとは対照的にオブジェクトを扱う方が簡単だが、それらのオブジェクトを作成するには時間を要するだろうと考えている。 Linqとは対照的に、逆直列化するときの大まかなルールや提案はありますか?

ありがとうございました!親指のない本当にありません

C:\work>xsd test.xml 
C:\work>xsd /classes test.xsd 

ルール:

答えて

2

本当にあなたがデータを使って何をしているかによって異なります。 XML文書で提供されるすべての情報を使用していない場合は、LINQベースのアプローチがおそらく最も簡単です。 RSSフィードを取って、記事の日付だけを記録しておくことを考えてください。この場合、逆シリアル化手法を使用しても、実際には何もしません。

XML文書内の最後のビットごとにデータを使用しており、その構造がオブジェクトモデルのデータを反映している場合は、確実に逆シリアル化します。これは、私が設定ファイルや単純なファイルフォーマットのようなことをしているときに、何時でもやっていることです。

あなたのケースでは、すでに存在していて、ある外部ソースによって作成されていて、コード内のデータのオブジェクト表現を既に持っていないので、LINQベースのアプローチを使用することをお勧めします。さらに、ファイルのバリエーションが多いので、LINQの柔軟性が再び役立ちます。あなたの説明に基づいてそれは野生の推測です。

+0

私はあなたの意見が正しいと思います。特に、最初の段落です。ありがとう! –

1

は、あなたがXMLファイルを与えられたからこれらのクラスを生成することがありましたxsd.exeツールを使用することができます。個人的には、ファイルサイズが大きくなるまで厳密に型指定されたオブジェクトを使用することをお勧めします。その場合はXmlReaderに切り替えます。

関連する問題