2013-02-23 69 views
0

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

如何在使用StAX解析器时做类似的事情(启用XML Schema验证)?其实我创建解析器如下:

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文档。

+0

检查斯塔克斯验证线程http://stackoverflow.com/questions/5793087/stax- xml-validation – JRR 2013-02-23 09:30:15

+0

谢谢你的链接。它解释了一切。 – robertp1984 2013-02-24 09:46:46

回答

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

上stackoverflow-
+0

您能否添加一段代码来说明如何实现这一点? – Trinimon 2013-03-26 18:38:06