我正在使用 Xerces-C 中的 SAX2 来读取 XML 文档。但是,我想检查 Doctype 声明(如果有的话)以确保 XML 文件是我期望的格式。
我已经尝试了DTDHandler中的 unparsedEntityDecl 和 notationDecl 方法,而EntityResolver似乎比我正在寻找的更底层。
我这样做的动机是能够确认输入是我期望的格式,以便我可以区分不产生输出的文档和完全错误格式的文档。
我正在使用 Xerces-C 中的 SAX2 来读取 XML 文档。但是,我想检查 Doctype 声明(如果有的话)以确保 XML 文件是我期望的格式。
我已经尝试了DTDHandler中的 unparsedEntityDecl 和 notationDecl 方法,而EntityResolver似乎比我正在寻找的更底层。
我这样做的动机是能够确认输入是我期望的格式,以便我可以区分不产生输出的文档和完全错误格式的文档。
查看LexicalHandler - startDTD 将为您提供 Doctype。但是,它并不能验证文档实际上是否遵循该 Doctype。您需要使用setFeature在阅读器中启用验证才能做到这一点。(我只用过Java Xerces,但从文档看,方法基本一样。)