如何让JAXB2发出CamelCase绑定?

我正在使用jaxws-maven-plugin的wsimport目标从WSDL生成Java类。 开箱即用,这将从XML模式生成可怕的类和方法; 例如,来自名为MY_OBJECT的XML元素的名为MYOBJECT的类。

我发现我可以使用外部文件自定义JAXB2绑定 ; 这对于少数类和方法是可接受的,但是在这种情况下手动命名所有内容的开销是不合需要的。

一些搜索揭示了对XJC CamelCase Always插件的引用,但这似乎没有维护,大多数链接都是404。 不愿意放弃,我确实找到了一个似乎提供此function的camelcase-always Maven工件,但我不知道如何配置它以便jaxws-maven-plugin使用它。

如何在不指定全部手动的情况下获取CamelCase绑定?

我没有找到如何使用jaxws-maven-plugin执行此操作的示例,但我确实找到了使用maven-jaxb2-plugin示例。

首先,您需要在POM中添加一个存储库:

  releases Releases https://oss.sonatype.org/content/repositories/releases  

请注意添加到maven-jaxb2-plugin执行的插件声明和参数。

  org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.8.0   jaxb-generate generate-sources  generate     YOUR.PACKAGE.HERE  -camelcase-always  src/main/binding   http://YOUR.WSDL.HERE   true   org.andromda.thirdparty.jaxb2_commons camelcase-always 1.0     

有关更多详细信息,请参阅文档 。

可能对Apache CXF和cxf-xjc-plugin的用户有用。

  org.apache.cxf cxf-xjc-plugin 3.1.0   org.andromda.thirdparty.jaxb2_commons:camelcase-always:1.0     generate-sources generate-sources  xsdtojava   ${basedir}/target/generated-sources/cxf   YOUR.XSD.HERE YOUR.PACKAGE.HERE  -camelcase-always  true