2012-11-12 105 views
1

我正在看JAXB作爲一種方式來解組從一個Web服務的API返回到POJO的XML,但我想先生成POJO,而不是手工編寫/註釋它們。我遇到了xjc(來自JAXB的POJO生成器),但是它需要一個XSD我相信,Web服務只返回XML,並且沒有可用的XSD/DTD,所以我想知道實現這一點的最佳方式是什麼。生成沒有.xsd的POJO?

  • 有沒有辦法從直接的XML生成POJO?我很高興地假設所有字段都是字符串字段,我不需要類型安全。
  • 或者,有一些方法可以從XML文件中對XSD進行「逆向工程」 - 這些都不錯嗎?如果是這樣,爲什麼這個功能沒有內置到像xjc這樣的工具中的任何特定原因?

回答

2

我試用了JAXBuilder Eclipse插件,它允許您在Eclipse中創建項目並放入xsd或xml文件,它們將被自動分析爲POJO。它提供了使用Castor或JAXB2作爲生成器的選項,並且有一些配置選項。然而,我發現直接的XML - > POJO轉換是有點脾氣的,所以我選擇使用免費的基於網絡的http://www.freeformatter.com/xsd-generator.html從我的xml生成一個xsd,然後複製並粘貼到Eclipse中JAXBuilder項目獲得POJO。這種方法顯然不是編程上完美的或可擴展的(複製和粘貼XML),但似乎是一個很好的開始使用JAXB的一點點。