0

Java の DOM または SAX パーサーでは、メソッド DocumentBuilderFactory.setSchema(..) または SAXParserFactory.setSchema(...) を呼び出して、使用する XML スキーマを定義することができます。

StAX パーサーを使用する場合、どうすれば同様のこと (XML スキーマ検証を有効にする) を行うことができますか? 実際には、次のようにパーサーを作成しています。

XMLInputFactory factory = XMLInputFactory.newInstance();
factory.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, true);
XMLStreamReader reader = factory.createXMLStreamReader(docIs);
parseDoc(reader); // own method which reads data from XML

また、XML ドキュメントがスキーマと一致しない場合や無効な XML ドキュメントである場合を知りたいです。

4

1 に答える 1

0

XMLBeansには、このためのツールがあります。ValidatingXMLStreamReader を利用する StreamInstanceValidator を確認してください。

svn.apache.org/viewvc/xmlbeans/trunk/src/xmlcomp/org/apache/xmlbeans/impl/tool/StreamInstanceValidator.java?view=マークアップ

svn.apache.org/viewvc/xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/validator/ValidatingInfoXMLStreamReader.java?view=マークアップ

于 2013-03-26T18:13:39.423 に答える