jaxb-xsd前缀包名称



我有一个大型xsd文件(带有导入),只有当xjc编译器根据每个xsd文件中指定的目标属性选择包名称时,才能生成该文件。如果我指定了一个特定的包名称,那么它会尝试将所有生成的内容放在一个包中,我会遇到大量的名称冲突。

问题在于程序包名称。我想把这些包裹的名字加上前缀。理想情况下,我希望com.othercompany.spec_2.Error改为com.mycompany.productx.data.spec.Error。但我可以使用com.mycompany.productx.data.com.othercompany.spec.2.Error

后者只需要在所有生成的包名称前面加上"com.mycompany.productx.data."的前缀。

这可能吗?

或者,我可以接受xjc生成的输出,并让Eclipse将java文件移动到另一个包中,但这是一个手动步骤,我希望有一个自动化的构建过程来处理它,这样,当其他人必须在6个月后重新生成它时,他们就不必考虑这一点。

要为每个XML模式获得不同的包名称,可以通过利用XJC中的事件文件扩展名,分别从XML模式生成类。

从.xsd生成Java类以打包com.example.a

xjc -d out -p com.example.a -episode a.episode a.xsd

从b.xsd(导入a.xsd)生成Java类到包com.example.b

xjc -d out -p com.example.b b.xsd -extension -b a.episode

有关更多信息

  • http://blog.bdoughan.com/2011/12/reusing-generated-jaxb-classes.html

最新更新