Как применить проверку локального файла DTD на файл xml в java?

Мне нужно разобрать кучу входящих документов XML, но в нем нет объявления DTD. В настоящее время я разбираю XML-документы с использованием SAX Parser, но без проверки DTD. Теперь я хочу применить проверку DTD. DTD создается мной. Как я могу проверить XML-файл, используя DTD, созданный мной (SAX-парсер)? Я нашел несколько руководств, использующих Transformer, но все для DOM Parser.

Как анализировать XML-файл с помощью SAX Parser, а также применять проверку DTD. Любая помощь….

Ниже приведен пример, который, я считаю, поможет сделать то, что вы хотите:

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; } }