0

我需要根据 DTD 验证第三方生成的多个文件;这些文件没有 dtd 声明,我不能更改它,因为我不是所有者,有没有办法通过单独提供 DTD 来使用 dom4j 验证它们?

谢谢

4

1 回答 1

0

您始终可以将 DTD 转换为模式(例如使用trang),并针对每个文档的模式执行内存验证。

为此,您将javax.xml.validation.ValidationHandler使用转换后的模式创建一个,并将其提供给 DOM4J SAXWriter

另一种选择当然是

  1. 将不经验证的每个文档解析为 DOM4JDocument
  2. 将 DOM4j 添加DefaultDocumentType到已解析的文档中
  3. 将文档写入临时字符串缓冲区
  4. 再次解析,但这次需要验证SAXReader
于 2012-10-01T16:41:55.473 回答