• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SAXでXMLファイルを読むときにチェック(?)する)

SAXでXMLファイルを読むときにチェックする方法

このQ&Aのポイント
  • SAXParserFactoryを使用してXMLファイルを読み込む際に、DTDのチェックを行う方法を説明します。
  • SAXParserFactoryのsetValidatingメソッドをtrueに設定することで、DTDのチェックを有効にします。
  • また、SAXのバージョンによっても結果が異なる場合があるため、バージョンにも注意が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • tekebon
  • ベストアンサー率62% (36/58)
回答No.1

DefaultHandlerはErrorHandlerを実装していますが、 この中のerror()メソッドはオーバーライドしていますか? 妥当でない場合にはこのerror()メソッドが呼び出されるようになっています。 (データとしては致命的ではないのでparse()メソッドに対する例外は発生しません) DeafaultHandlerを拡張したクラスに public void error(SAXParseException exp){ System.out.println("妥当でないかも"); } の記述を追加してみてください。 詳しくはAPIドキュメントのorg.xml.sax.ErrorHandlerを確認してみてください。

chi-kon
質問者

お礼

早速のご解答ありがとうございます。 アドバイスを参考にやってみたところできました。 自分としてはDTDのそぐわないとなにかすごい例外がでて 処理がストップするものだと思っていました。 仕様としてこうなっているのですね。 APIもこういうところまで読まないとだめですね。。。 ありがとう御座いました。

関連するQ&A