我想创建一个验证的SAXParser,但似乎唯一的方法是创建一个XMLReader并使用setErrorHandler()或让ContentHandler中的SAXParser.parse()也实现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

感谢您的提示!

埃里克

最佳答案

也许我误会了,但这是您的解决方案吗? ->
Xerces2 XSD Validation with SAXParser

10-04 20:09