Как применить проверку локального файла 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; } } 
Intereting Posts
Шифрование базы данных Android Файл default.realm не отображается в браузере Chrome Нет хорошего примера о RecyclerView и StaggeredGridLayoutManager в Android Docs HasSystemFeature (PackageManager.FEATURE_CAMERA) возвращает true для устройства без камеры Установить / Unistall из команды оболочки в Android Как добавить клиентский сертификат pkcs12 в Postman Chrome, W7? Gcc disable -Wall флаг для определенных файлов / папок Android Lollipop с пользовательским логотипом Material theme не действует, как DrawerToggle Как я могу увидеть журнал ошибок (logcat) для Android в Eclipse? Можно ли использовать один файл ключей для подписи двух разных приложений? Откройте действие или фрагмент с глубоким связыванием нижнего листа Почему некоторые API Android не отображаются на вкладке «Целевая аудитория AVD»? Android.util.Log при публикации – что я могу сделать / не делать RecyclerView: Внутренние классы не могут иметь статическую декларацию Как использовать данные сенсора SensorChanged в сочетании с OpenGL