如何在使用SAX2时在Xerces-C中获取Doctype声明?

时间:2010-05-12 21:19:15

标签: c++ xml xerces

我使用Xerces-C的SAX2来读取XML文档。但是,我想检查Doctype声明(如果有的话)以确保XML文件采用我期望的格式。

我尝试了DTDHandler中的unparsedEntityDecl和notationDecl方法,而EntityResolver似乎比我想要的更低级。

我的动机是能够确认输入是我期望的格式,这样我就可以区分不产生输出的文档和完全错误格式的文档。

1 个答案:

答案 0 :(得分:1)

查看LexicalHandler - startDTD会为您提供Doctype。 但是,它不会验证文档是否实际遵循该Doctype。 您需要在setFeature的阅读器中启用验证才能执行此操作。 (我只使用了Java Xerces,但是从文档中看,它看起来像是方法   基本相同。 )