【发布时间】:2015-03-17 20:34:06
【问题描述】:
我正在使用 Java,我想检查一个 XML 文件是否对 DTD 有效。
假设我们确实有一个 DTD 文件,我想检查某个 XML 文件是否对 DTD 文件中提出的相同定义有效。
有没有办法使用 JDOM 来做到这一点?
【问题讨论】:
我正在使用 Java,我想检查一个 XML 文件是否对 DTD 有效。
假设我们确实有一个 DTD 文件,我想检查某个 XML 文件是否对 DTD 文件中提出的相同定义有效。
有没有办法使用 JDOM 来做到这一点?
【问题讨论】:
是的,你可以,在 JDOM 中。在 JDOM 2.x(相对于 1.x)中它是最简单的。
请参阅采用 XMLReaderJDOMFactory 的 the SAXBuilder constructor。一个示例用法是:
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);
请注意,上述代码根据 DocType 声明(“note.dtd”)中指定的 DTD 验证了 XML,该 DTD 位于相对于 note-ex_dtd.xml 文档的位置。
【讨论】: