0

在 Java 中的 DOM 或 SAX 解析器中,可以通过调用方法 DocumentBuilderFactory.setSchema(..) 或 SAXParserFactory.setSchema(...) 来定义要使用的 XML Schema。

使用 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=markup

svn.apache.org/viewvc/xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/validator/ValidatingInfoXMLStreamReader.java?view=markup

于 2013-03-26T18:13:39.423 回答