2011-12-22 7 views
3

C#でxsdスキーマを使用して大きなxmlファイルを検証する必要があります。 1000行のXMLコードの検証には長い時間がかかります。XMLのXSD検証はどれくらいの費用がかかりますか?

有効性を確認するヒントはありますか?

大規模なXML検証でより速く動作するコード例を投稿できますか?

編集1:私は編集2本 Validating XML with XSD

のような検証:大きなファイルの場合は10秒以上かかります。そして、私は非常に速いために検証が必要です。

編集3:ファイルサイズが10 MBの

編集4以上である:私はあまりにもthisアプローチを検討しています、私はあまりにも、データベースおよびXSDでXMLファイルを保存したいです。

+2

ファイルの大きさ(バイト;「線」はあいまいです)、現在撮影している時間はどのくらいですか、現在どのように行っていますか? –

+0

これはXML構造によって異なります。 –

答えて

4

現在、文書全体がメモリにロードされていますが、にかかわらず、の検証が行われています。より良いオプションは、リーダーを介して解析することです(as shown here on MSDN)。そのページ上の例からキーポイント:

  • それは文書全体
  • while(reader.Reader())がちょうど
  • 検証が​​
+0

あなたが提供した回答は、この質問の回答と同じです。http://stackoverflow.com/questions/1277595/possible-to-validate-xml-against-xsd-using-code-at-runtime-c妥当性検査ははるかに高速になる –

2
を経由して有効になっているノードレベルでファイル全体を列挙ロードしたことがありません

バリデーションのないドキュメントの解析には、検証なしの解析の約2倍の時間がかかることが予想されます。しかし、その比率はあなたのスキーマによって大きく変わるでしょう。例えば、すべての属性が正規表現によって制御され、正規表現が複雑である場合、検証のオーバーヘッドは、この経験則よりもはるかに高くなる可能性があります。

また、複雑なスキーマを構築するコストがかかりません。何百もの要素型を定義する大きなスキーマがある場合、スキーマのコンパイルには数MBのデータを検証するよりも時間がかかります。

関連する問題