質問
大きな XML ファイルを XSD に対して検証する方法を見つけようとしています。質問を見ました ...XML を検証する最良の方法... しかし、答えはすべて、検証に Xerces ライブラリを使用することを示していました。唯一の問題は、そのライブラリを使用して 180 MB ファイルを検証すると、OutOfMemoryException が発生することです。
通常よりも大きな XML ファイルを検証するための他のツール、ライブラリ、戦略はありますか?
編集:SAX ソリューションは Java 検証には機能しましたが、libxml ツールに関する他の 2 つの提案は、Java 以外の検証にも非常に役立ちました。
解決
DOMParser を使用する代わりに、SAXParser を使用します。これは入力ストリームまたはリーダーから読み取るため、XML をすべてメモリにロードするのではなく、ディスク上に保持できます。
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(true);
factory.setNamespaceAware(true);
SAXParser parser = factory.newSAXParser();
XMLReader reader = parser.getXMLReader();
reader.setErrorHandler(new SimpleErrorHandler());
reader.parse(new InputSource(new FileReader ("document.xml")));
所属していません StackOverflow