[英]How to validate an XML against schema using JAXB?
我正在使用XML
和JAXB
因為我正在解組並將XML編組為Java對象,反之亦然。 現在我試圖根據我們的模式驗證我們的XML(test.xsd)。 假設我的XML中缺少任何必需字段,那么我想知道在針對模式test.xsd驗證XML之后缺少哪個字段。
public void unmarshal(final InputStream is) {
final XMLInputFactory factory = XMLInputFactory.newInstance();
final XMLStreamReader reader = factory.createXMLStreamReader(is);
Object req = unmarshaller.unmarshal(reader);
// how would I validate here?
}
我如何根據test.xsd架構驗證我的XML。 我的test.xsd架構路徑是 -
C:\\工作空間\\一個\\ 2 \\ 3 \\ SRC \\主\\的java \\ COM \\包\\ SERV \\ AP \\ VersionOne的\\ test.xsd
更新:加載test.xsd為:
Schema schema = factorySchema.newSchema(new File("C:\\workspace\\one\\two\\three\\src\\main\\java\\com\\package\\serv\\ap\\versionOne\\test.xsd"));
在執行unmarshal之前,您只需要在Unmarshaller
上設置javax.xml.validation.Schema
的實例。 您可以在Unmarshaller
上指定ValidationEventHandler
的實現,以捕獲在解組過程中發生的任何問題。
欲獲得更多信息
我在博客上寫了更多關於這個用例的文章:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.