2012-01-16 66 views
2

我遇到了一些XML驗證問題,並試圖調試我的問題。我使用JAXBContext.generateSchema()隨時生成我的XSD,然後使用SchemaFactory.newSchema(模式)創建統一模式。但是,我的驗證失敗。我想看看newSchema創建的統一模式是否與我預期的一樣,但是我似乎無法找到將結果Schema類導出到字符串或文本文件的方法。如何將java JAXB Schema類導出到xsd文件?

是否有任何方法將javax.xml.validation.Schema類導出爲可讀的String和/或XSD文件?我翻看了API,似乎無法找到任何東西。

感謝,

埃裏克

回答

0

而是從JAXBContext.generateSchema創建它們之後你的模式相結合的(),爲什麼不直接產生他們都從你的JAXBContext一次。

JAXBContext jc = JAXBContext.newInstance(new Class[] { Class1.class, 
                 Class2.class, 
                 Class3.class 
                 } 
             ); 
jc.generateSchema(new SchemaOutputResolver() { 
    @Override 
    public Result createOutput(String namespaceUri, String suggestedFileName) throws IOException { 
     File file = new File(suggestedFileName); 
     return new StreamResult(file); 
    } 
}); 
+0

我看了這段代碼已經有一段時間了,但是如果你有多個命名空間,你就無法做到這一點。使用不同名稱空間生成多個模式的解決方案可以在http://stackoverflow.com/a/2696765/827480找到。但是,我現在的問題是讓它們按正確的順序解決。我最終得到它的工作(請參閱http://stackoverflow.com/a/8885327/827480),但仍然想知道是否有任何出口統一架構的方式。到目前爲止,還沒有找到解決這個問題的方法。 – 2012-03-30 03:41:05