启动元素java sax处理器之前调用的错误方法
我正在使用JavaSAX解析器解析xml文档,并根据模式对其进行验证。验证空元素时,如果元素的格式如下,则解析器工作正常启动元素java sax处理器之前调用的错误方法,java,sax,Java,Sax,我正在使用JavaSAX解析器解析xml文档,并根据模式对其进行验证。验证空元素时,如果元素的格式如下,则解析器工作正常 <submitmonth></submitmonth> 我收到的错误是好的(说提交月份是空的,应该是某某)。代码的执行顺序是 起始元素 验证错误 末端元件 使用速记xml时 <submitmonth/> ,方法调用顺序似乎发生了变化。我注意到呼叫命令在下面 验证错误 起始元素 末端元件 不知道为什么会这样。我希望速记的处理方式与
<submitmonth></submitmonth>
我收到的错误是好的(说提交月份是空的,应该是某某)。代码的执行顺序是
<submitmonth/>
,方法调用顺序似乎发生了变化。我注意到呼叫命令在下面
请提供帮助在SAX中,无法保证何时报告错误,何时报告开始和结束元素。您的程序可能应该能够容忍这种变化 如果您认为解析器应该更规范地处理该行为,请与该解析器的作者联系,或者尝试另一个SAX解析器
除了提供这两个建议之外,我们实在无能为力。我使用的是现成的jdk api,我也有点担心评论。尽管我没有注意到这种行为,但是否可能在开始之前调用结束标记?否。结束标记不会在开始之前出现。然而,错误本质上是一个旁道。对不起,还有一个澄清,与特定标记相关的错误将在下一个标记开始纠正之前完全完成?换句话说,开始、结束、错误回调将在下一个标记开始之前完成?开始和结束将按文档中的顺序排列。我不确定在报告错误的确切时间方面是否有任何承诺。在发现第一个错误后放弃解析文档是很常见的,因为根本不清楚如何从错误中恢复,并且更正可能会影响流中稍后的内容是否格式正确或有效。我正在维护元素的状态,并在持久化之前将错误关联到“当前”元素。如果错误报告的顺序不正确,则可能是一个问题。例如,与标记的第二次出现相关联的错误在第一次出现之前报告?