2014-10-29 78 views
0

我想驗證一個xml針對java中的xsd。 在XSD中的一個字段(tax_id)被定義爲管理元素。 但是在我的場景中,我將xml傳遞給另一個組件,該組件填充了管理 字段(tax_id)。 在將xml發送到下一個組件之前,我必須針對xsd驗證xml。 由於XSD元素tax_id被定義爲強制性元素,所以我得到了不填充強制元素(tax_id)的例外。 我可以通過將tax_id設置爲可選字段來創建一個新的xsd,但是對於這一點,我們將擁有2個xsds。如何跳過在java中的xsd幾個元素驗證

有沒有什麼辦法可以在java中驗證時跳過/忽略少量元素?

回答

1

一般來說,沒有。 XSD的目的是指定文檔必須符合的規則,以使其有效。您不能忽略或跳過其中一些規則。如果可以的話,你可能會遇到其他問題。例如,如果需要的元素真的是可選的(或者可能是),那麼從技術上講,任何包含一堆其他元素的元素在該更寬鬆的驗證下可能是空的(並且仍然有效)。

在你的情況,你可能有兩種選擇:

  1. 更改您的工作流程 - 確保第一組分填充用空tax_id的XML。然後它會驗證。
  2. 引入第二個模式 - 在處理的「管道」中較早的模式,不需要tax_id。然後驗證這一點。