1

SAXパーサーからすべての検証エラーを取得したいのですが、私のスニペットでは最初のエラーしか受け取りません。どうすればこれを達成できますか?

ありがとうございました!

スニペット

def factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI)
def xml = new StreamSource(inputStream)
def xsd = new StreamSource(new FileReader(schema), systemId)

try {
    factory?.newSchema(xsd)?.newValidator()?.validate(xml)
} catch(SAXParseException saxpe) {
    continueImport = false
    log.error("Error while parsing the import xml", saxpe)
}
4

1 に答える 1

7

ErrorHandlerを実装してみましたか?これにより、エラー/警告および致命的なエラーを受信して​​記録できるようになります。

ドキュメントから:

SAXアプリケーションでカスタマイズされたエラー処理を実装する必要がある場合は、このインターフェイスを実装してから、setErrorHandlerメソッドを使用してインスタンスをXMLリーダーに登録する必要があります。その後、パーサーはこのインターフェースを介してすべてのエラーと警告を報告します。

これがコード例です。

于 2009-12-11T12:17:05.760 に答える