Проверить совместимость XML-документа с DTD, используя JDOM?
Я работаю с Java, и я хочу проверить, является ли файл XML допустимым для DTD.
Предполагая, что у нас есть файл DTD, я хочу проверить, является ли определенный файл XML действительным в отношении тех же определений, предложенных в файле DTD.
Есть ли способ сделать это с помощью JDOM?
1 ответ
Да, вы можете в JDOM. Это проще всего в JDOM 2.x (в отличие от 1.x).
Смотрите конструктор SAXBuilder, который принимает XMLReaderJDOMFactory. Пример использования:
SAXBuilder sb = new SAXBuilder(XMLReaders.DTDVALIDATING);
Document doc = sb.build("http://www.w3schools.com/dtd/note_ex_dtd.xml");
XMLOutputter xout = new XMLOutputter(Format.getPrettyFormat());
xout.output(doc, System.out);
Обратите внимание, что приведенный выше код проверяет XML на соответствие DTD, указанному в объявлении DocType ("note.dtd"), которое находится в месте, относящемся к документу note-ex_dtd.xml.