2014-01-22 34 views
0

我使用java sax解析器解析xml文檔並根據模式對其進行驗證。當確認爲空元素,如果該元素的格式如下在啓動元素java sax處理器之前調用的錯誤方法

<submitmonth></submitmonth> 

我收到的錯誤是良好的解析器工作正常(即說一個月提交爲空,應該是這樣或那樣的)。其中碼執行的順序是

  1. 開始元素

  2. 驗證錯誤

  3. 端元件

使用短手XML時

<submitmonth/> 

,方法調用順序似乎改變。我注意到調用以低於

  1. 驗證錯誤

  2. 開始元素

  3. 結束元素

不知道爲什麼發生這種情況。我希望速記是相同的方式處理作爲常規XML

請幫助

回答

1

有一個在SAX不能保證時報告的時候開始和結束元素被報告與錯誤有關。您的程序應該可以寫入以容忍這種變化。

如果您認爲解析器應該對該行爲更規律,則可以使用該解析器的作者或嘗試另一個SAX解析器。

除了提供這兩個建議之外,我們確實沒有什麼可以做的。

+0

我使用開箱即用的jdk api,並且對註釋也有點擔心。有沒有可能是一個結束標籤將被稱爲開始,雖然我沒有注意到這種行爲? – user993797

+0

否。結束標記在啓動之前不會發生。然而,錯誤本質上是一個旁道。 – keshlam

+0

接受的答覆 – user993797

相關問題