我有一个相当大的xsd
,我使用org.jvnet.jaxb2.maven2.maven-jaxb2-plugin
从中生成JaxB类。元素名称都是由FOO_BAR_BAZ
等下划线分隔的大写字母。这导致生成的类的可怕名称,例如FOOBARBAZ
。理想我希望将它贴到FooBarBaz
。使用<jxb:class>
元素扩展定义不是一个选项。
是否有一种通用的方法来覆盖jaxb如何将元素名称映射到java类名?
答案 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
专有权。