簡體   English   中英

如何使用JAXB針對模式驗證XML?

[英]How to validate an XML against schema using JAXB?

我正在使用XMLJAXB因為我正在解組並將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM