DOM4J针对运行时提供的DTD验证xml

时间:2012-09-26 12:46:25

标签: dtd xml-validation dom4j

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

谢谢

1 个答案:

答案 0 :(得分:0)

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

为此,您可以使用转换的架构创建一个javax.xml.validation.ValidationHandler,并将其提供给DOM4J SAXWriter

另一种选择当然是

  1. 将未经验证的每个文档解析为DOM4J Document
  2. 将DOM4j DefaultDocumentType添加到已解析的文档
  3. 将文档写入临时字符串缓冲区
  4. 再次解析,但这次使用验证SAXReader