如何将本地DTD文件的validation应用于java中的xml文件?

我需要解析一堆传入的XML文档,但它不包含DTD声明。 目前我正在使用SAX Parser解析xml文档但没有DTDvalidation。 现在我想应用DTDvalidation。 DTD由我自己创建。 如何使用自己创建的DTD(SAX解析器)validationXML文件? 我找到了一些使用Transformer的教程,但都是针对DOM Parser的。

如何使用SAX Parser解析XML文件并应用DTDvalidation。 任何帮助……

以下是我认为可以帮助您做到您想要的样本:

private void loadXML(Reader reader) throws ParserConfigurationException, SAXException { SAXParserFactory parserFactory = SAXParserFactory.newInstance(); parserFactory.setValidating(true); SAXParser parser = parserFactory.newSAXParser(); parser.parse(new InputSource(reader), new MyHandler()); } private static class MyHandler extends DefaultHandler { private static final String PREFS_DTD_URI = "http://www.example.com/dtd/document.dtd"; public InputSource resolveEntity(String publicId, String systemId) throws SAXException { if (systemId.equals(PREFS_DTD_URI)) { InputSource is = new InputSource(new StringReader(PREFS_DTD)); // PREFS_DTD is a string containing actual DTD, any other Reader could be here is.setSystemId(PREFS_DTD_URI); return is; } // else use the default behaviour return null; } }