2011-08-17 3 views
1

これは有効なXMLであるxmlを持っています。今私はそれをSaxParserを使って解析すると、完全に検証されます。xmlキャッチした後の解析と検証例外

     <A> 
         <B> 
          <C> 
           <D/> 
          </C> 
          <C> 
           <D/> 
          </c> 
         </B> 
        </A> 

がよく構造と有効ではないではありません、次のXMLを考えてみましょう(</C>不足している).ITはその時点でSaxParserExceptionがスローされます。しかし、私はこの例外をキャッチし、このXMLの次のタグのセットを検証し続けるコードを書く必要があります。

    <A> 
         <B> 
          <C> 
           <D/> 

          <C> 
           <D/> 
          </c> 
         </B> 
        </A> 

することは、通常、それは不可能ですし、可能であるべきではない例外

+0

私は以前の質問を見ると、スキーマとXMLを制御していたという印象を受けました。そのような場合は、このような状況に陥るべきではありません。いつでも有効なXMLを得るために全力を尽くしてください。一方、あなたの質問ではAndreasはTolerantSaxDocumentBuilderについて教えてくれました。ありがとう:-) – Wivani

答えて

2

をキャッチポイントからのXMLの検証を続行する方法を誰もが知っています。 2番目の例では、実際には何も分かりません。最初の<C>の後に1つの終了タグ(2)、2番目の<C>の後に、(3)too many opening <C>タグがありますか。 <C>タグは実際には<C />となりますか?ドキュメント構造を修正するにはあまりにも多くの方法があります。

とにかく、sourceforgeにxmlunitという名前のプロジェクトがあり、開始と終了タグが見つからないと処理できると主張するTolerantSaxDocumentBuilderが含まれています。それはすでにあなたの実際の問題を解決するかもしれません。少なくとも正しい方向を指しています:カスタムサックスパーサーが必要な動作を実装する必要があります。

関連する問題