2012-11-12 79 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的一点点。