1

我有一个相当大xsd的文件,我使用org.jvnet.jaxb2.maven2.maven-jaxb2-plugin. 元素名称都是由下划线分隔的大写字母,例如FOO_BAR_BAZ. 这导致生成的类的名称很丑陋,例如FOOBARBAZ. 理想情况下,我希望将其映射到FooBarBaz. 使用 Elements 扩展定义<jxb:class>不是一种选择。

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

4

2 回答 2

1

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

于 2014-07-04T15:25:01.260 回答
0

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

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

但是对于要生成的所有类,您必须这样做。您可能还必须配置bindingDirectorymaven 插件的属性。

于 2014-07-04T15:29:40.177 回答