Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
启动元素java sax处理器之前调用的错误方法_Java_Sax - Fatal编程技术网

启动元素java sax处理器之前调用的错误方法

启动元素java sax处理器之前调用的错误方法,java,sax,Java,Sax,我正在使用JavaSAX解析器解析xml文档,并根据模式对其进行验证。验证空元素时,如果元素的格式如下,则解析器工作正常 <submitmonth></submitmonth> 我收到的错误是好的(说提交月份是空的,应该是某某)。代码的执行顺序是 起始元素 验证错误 末端元件 使用速记xml时 <submitmonth/> ,方法调用顺序似乎发生了变化。我注意到呼叫命令在下面 验证错误 起始元素 末端元件 不知道为什么会这样。我希望速记的处理方式与

我正在使用JavaSAX解析器解析xml文档,并根据模式对其进行验证。验证空元素时,如果元素的格式如下,则解析器工作正常

<submitmonth></submitmonth>

我收到的错误是好的(说提交月份是空的,应该是某某)。代码的执行顺序是

  • 起始元素

  • 验证错误

  • 末端元件

  • 使用速记xml时

    <submitmonth/>
    
    
    
    ,方法调用顺序似乎发生了变化。我注意到呼叫命令在下面

  • 验证错误

  • 起始元素

  • 末端元件

  • 不知道为什么会这样。我希望速记的处理方式与常规xml相同


    请提供帮助

    在SAX中,无法保证何时报告错误,何时报告开始和结束元素。您的程序可能应该能够容忍这种变化

    如果您认为解析器应该更规范地处理该行为,请与该解析器的作者联系,或者尝试另一个SAX解析器


    除了提供这两个建议之外,我们实在无能为力。

    我使用的是现成的jdk api,我也有点担心评论。尽管我没有注意到这种行为,但是否可能在开始之前调用结束标记?否。结束标记不会在开始之前出现。然而,错误本质上是一个旁道。对不起,还有一个澄清,与特定标记相关的错误将在下一个标记开始纠正之前完全完成?换句话说,开始、结束、错误回调将在下一个标记开始之前完成?开始和结束将按文档中的顺序排列。我不确定在报告错误的确切时间方面是否有任何承诺。在发现第一个错误后放弃解析文档是很常见的,因为根本不清楚如何从错误中恢复,并且更正可能会影响流中稍后的内容是否格式正确或有效。我正在维护元素的状态,并在持久化之前将错误关联到“当前”元素。如果错误报告的顺序不正确,则可能是一个问题。例如,与标记的第二次出现相关联的错误在第一次出现之前报告?