проверить совместимость XML-документа с DTD с помощью JDOM?

Я работаю с Java и хочу проверить, совместим ли файл XML с DTD.

Предполагая, что у нас есть файл DTD, я хочу проверить, соответствует ли определенный файл XML тем же определениям, которые предложены в файле DTD.

Есть ли способ сделать это с помощью JDOM?


person steevn    schedule 16.03.2015    source источник


Ответы (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.

person rolfl    schedule 16.03.2015
comment
можете ли вы дать мне более четкий код, начиная с создания файла DTD, затем XML-файла и, наконец, проверьте, является ли файл XML действительным в соответствии с объявленным DTD - person steevn; 17.03.2015
comment
@steevn - ты можешь запустить этот код. файлы xml и dtd существуют по URL-адресу, используемому в примере, который я показываю. См. w3schools.com/dtd/default.asp. - person rolfl; 17.03.2015