【发布时间】:2010-10-04 12:38:10
【问题描述】:
在 Java 中,我可以使用 javax.xml.validation.Validator 针对 XSD 模式验证 XML 文档,或者通过使用 org.xml.sax.XMLReader 简单地解析文档来针对 DTD 验证 XML 文档。
我需要的是一种以编程方式确定文档本身是否针对 DTD(即它包含 <!DOCTYPE ...> 语句)或 XSD 进行验证的方法。理想情况下,我需要在不将整个 XML 文档加载到内存的情况下执行此操作。有人可以帮忙吗?
(或者,如果在 Java 中有一种单一方法来验证 XML 文档,该方法适用于 XSD 和 DTD - 并允许自定义资源解析 - 那会更好!)
非常感谢,
一个
【问题讨论】:
-
我不太确定我是否理解这个问题。您是想查明文档是否真正有效,还是只想知道它使用的是 DTD 还是 XSD?还是完全不同的东西?
-
第二个 - 我知道如何针对 XSD 验证文档,以及如何针对 DTD 进行验证,但我需要确定使用哪种方法,即文档是使用 DTD 还是 XSD。感谢您的回复。
-
@Alan,这真的是个好主意吗?不要求 XML 文档包含模式引用或 DTD 声明,事实上,大多数 XML 文档不包含此类信息。如果您处理的是纯 XML,是否由您决定如何验证它?
-
@Kevin,总的来说你是对的,但这是一种特殊情况,XML 来自有限数量的来源,并且文档总是指定它们符合的模式。不过,展望未来,我将不得不处理可能未指定其模式的 XML。要记住的事情;谢谢。
标签: java xml validation xsd dtd