У меня довольно большой xsd
из которого я генерирую классы JaxB, используя org.jvnet.jaxb2.maven2.maven-jaxb2-plugin
. Имена элементов - это все заглавные буквы, обозначенные символами подчеркивания, такими как FOO_BAR_BAZ
. Это приводит к отвратительным именам для сгенерированных классов, например, FOOBARBAZ
. Идеализм Я бы хотел, чтобы он был привязан к FooBarBaz
. Расширение определения с помощью <jxb:class>
Элементы не являются опцией.
Есть ли общий способ переопределить, как jaxb сопоставляет имена элементов именам java-класса?
В этом случае вы можете исследовать создание настраиваемого подключаемого модуля XJC для настройки того, как производятся имена классов Java.
Вы можете использовать внешний файл декларации привязки, файл .xjb
содержащий что-то похожее на это:
<jxb:bindings node="//xs:element[@name='FOO_BAR_BAZ']">
<jxb:class name="FooBarBaz"/>
<jxb:property name="FooBarBaz"/>
</jxb:bindings>
Но вам нужно будет сделать это для всех классов, которые будут созданы. Вы можете alos настроить конфигурацию bindingDirectory
proprerty плагина maven.