我有一个使用 xerces API 解析 XML 文档的 java 程序。
我的解析类扩展了 org.apache.xerces.parsers.XMLDocumentParser,重载了 startElement、endElement、characters 方法。
由于是手工编写的复杂 XML 文档(主要是某种配置元素),经典的 xsd 或 dtd 验证是不够的,我必须向用户返回 XML 文档无效。
但是我无法实现的一件事是在错误消息中添加有关当前正在解析的行号(以及为什么不列号)的信息以及发生错误的位置。
我认为这是可能的,因为当 XML 文档不是 XML 有效时解析器生成的异常 (org.apache.xerces.xni.parser.XMLParseException) 包含这些信息。