如何在不使用 XMLReader 的情况下验证 SAXParser 中的 XML 文档?
我想创建一个进行验证的 SAXParser
,但似乎唯一的方法是创建一个 XMLReader
并使用 setErrorHandler()
或让SAXParser.parse()
中的 ContentHandler
还实现了 ErrorHandler
。
我错过了什么吗?我想做的就是创建一个验证 SAXParser
,如下所示:
private SAXParser createParser(final boolean validateXML) throws ParserConfigurationException, SAXException {
final SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(validateXML);
factory.setFeature("http://apache.org/xml/features/validation/schema", validateXML);
SAXParser parser = factory.newSAXParser();
Assert.assertNotNull("Checking parser exists", parser);
Assert.assertEquals("Checking validation", validateXML, parser.isValidating());
Assert.assertTrue("Checking namespace awareness", parser.isNamespaceAware());
return parser;
}
我正在使用 Xerces 2.9.1
感谢您的任何提示!
埃里克
I want to create a SAXParser
which validates, but it seems the only way is either to create an XMLReader
and use setErrorHandler()
or let the ContentHandler
in SAXParser.parse()
also implement ErrorHandler
.
Am I missing something? All I want to do is create a validating SAXParser
like this:
private SAXParser createParser(final boolean validateXML) throws ParserConfigurationException, SAXException {
final SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(validateXML);
factory.setFeature("http://apache.org/xml/features/validation/schema", validateXML);
SAXParser parser = factory.newSAXParser();
Assert.assertNotNull("Checking parser exists", parser);
Assert.assertEquals("Checking validation", validateXML, parser.isValidating());
Assert.assertTrue("Checking namespace awareness", parser.isNamespaceAware());
return parser;
}
I'm using Xerces 2.9.1
Thanks for any hints!
Eric
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
也许我误解了,但这对你来说是一个解决方案吗? -->
使用 SAXParser 进行 Xerces2 XSD 验证
Maybe I misunderstand, but is this a solution for you? -->
Xerces2 XSD Validation with SAXParser