我有一个使用framework.xsd进行JAXB生成的项目。这会生成一个带有xsd和jaxb对象的jar以及围绕这些东西的其他类。
然后另一个组(两个不同的组)将使用schema扩展stuff扩展framework.xsd和subxmling以扩展framework.xsd中的对象。他们也希望生成jaxb对象但是他们希望他们的SomeClass.java显然扩展我的Framework.java并且不希望最终得到一个全新的层次结构。
这可能吗? 谢谢, 迪安
答案 0 :(得分:1)
您希望在为第一个架构生成JAXB类时使用剧集文件:http://weblogs.java.net/blog/kohsuke/archive/2006/09/separate_compil.html。
$ xjc -episode framework.episode framework.xsd
然后使用framework.jar的另一个组应该:
1)在自己的架构中导入架构,例如:
<xsd:import namespace="http://www.myorg.com/framework" schemaLocation="framework.xsd"/>
2)生成他们的JAXB类
$ xjc extend.xsd -b framework.episode
(他们需要xjc时间的xsd和剧集文件的副本,以及类路径中的framework.jar)
请注意,根据上面的博客文章,您还可以将jar.episode文件放在jar中(例如至少JAXB RI的/META-INF/sun-jaxb.episode - 其他JAXB impl可能有其他方式完成相同的事情),以便可以省略-b framework.episode选项。我个人认为这有点不切实际,你仍然需要XSD。