通常会更改JaxB类名称映射

时间:2014-07-04 14:34:40

标签: java xml maven jaxb generated

我有一个相当大的xsd,我使用org.jvnet.jaxb2.maven2.maven-jaxb2-plugin从中生成JaxB类。元素名称都是由FOO_BAR_BAZ等下划线分隔的大写字母。这导致生成的类的可怕名称,例如FOOBARBAZ。理想我希望将它贴到FooBarBaz。使用<jxb:class>元素扩展定义不是一个选项。

是否有一种通用的方法来覆盖jaxb如何将元素名称映射到java类名?

2 个答案:

答案 0 :(得分:1)

对于此用例,您可以研究创建自定义XJC插件以自定义Java类名称的派生方式。

答案 1 :(得分:0)

您可以使用外部绑定声明文件,.xjb文件包含类似于此的内容:

<jxb:bindings node="//xs:element[@name='FOO_BAR_BAZ']">
    <jxb:class name="FooBarBaz"/>
    <jxb:property name="FooBarBaz"/>
</jxb:bindings>

但是你必须为所有要生成的类做到这一点。您可能还需要配置maven插件的bindingDirectory专有权。