如何在不使用 XMLReader 的情况下验证 SAXParser 中的 XML 文档?

发布于 2024-09-13 17:34:58 字数 976 浏览 2 评论 0原文

我想创建一个进行验证的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉城已无爱 2024-09-20 17:34:58

也许我误解了,但这对你来说是一个解决方案吗? -->
使用 SAXParser 进行 Xerces2 XSD 验证

Maybe I misunderstand, but is this a solution for you? -->
Xerces2 XSD Validation with SAXParser

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文