2012-08-08 78 views
0

是否可以通過部分驗證大型xml部件?在java中部分針對xsd進行xml驗證

對於如

<retail> 
<pdt> 
</pdt> 
<pdt> 
</pdt> 
<pdt> 
</pdt> 
</retail> 

認爲這是一個大的XML file.I需要驗證對一個XSD和我的驗證應該返回真,即使PDT中的任何一個成功的驗證,也應該給予理由其他人失敗。

+0

我不明白。 – 2012-08-08 08:14:22

+0

@edem - 這是你的問題。如果你不明白爲什麼回答? – 2012-08-08 13:26:58

+0

我沒有回答。 – 2012-08-08 13:59:20

回答

0

首先是指這個XML validation in Java。 對於您的要求「需要驗證對一個XSD和我的驗證應該返回真,即使PDT中的任何一個成功的驗證,也應說明理由爲什麼別人失敗」

通過實施org.xml使自定義的ErrorHandler。 sax.ErrorHandler接口,然後註冊這個在這樣給出的示例中的驗證對象的ErrorHandler:

validator.setErrorHandler(new CustomValidationErrorHandler()); 

確保您調用validate()方法之前做到這一點。 在您的CustomErrorHandler中,您可以記錄在驗證時將會得到的異常,以查看xml中的所有錯誤,並且如果要繼續進行驗證,則不會引發該異常。你會得到它,當你開始實施這個。

+0

@Sirkorski非常感謝您的幫助。它的工作原理!!其實我已經有了xml驗證代碼,您可以參考「Java鏈接中的XML驗證」。 – vino 2012-08-09 03:51:28

+0

那麼你可以檢查它作爲答案:) – Sikorski 2012-08-09 06:00:24

0

JAXP validate()方法接受一個Source,所以你應該能夠提供一個包裝pdt元素節點的DOMSource。但是,這假定模式包含元素pdt的全局元素聲明。