как правило, изменить отображение имени класса JaxB

1

У меня довольно большой xsd из которого я генерирую классы JaxB, используя org.jvnet.jaxb2.maven2.maven-jaxb2-plugin. Имена элементов - это все заглавные буквы, обозначенные символами подчеркивания, такими как FOO_BAR_BAZ. Это приводит к отвратительным именам для сгенерированных классов, например, FOOBARBAZ. Идеализм Я бы хотел, чтобы он был привязан к FooBarBaz. Расширение определения с помощью <jxb:class> Элементы не являются опцией.

Есть ли общий способ переопределить, как jaxb сопоставляет имена элементов именам java-класса?

Теги:
maven
jaxb

2 ответа

1
Лучший ответ

В этом случае вы можете исследовать создание настраиваемого подключаемого модуля XJC для настройки того, как производятся имена классов Java.

  • 0
    это выглядит многообещающе. Я надеялся, что кто-то уже сталкивался с такой проблемой и сделал именно это.
0

Вы можете использовать внешний файл декларации привязки, файл .xjb содержащий что-то похожее на это:

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

Но вам нужно будет сделать это для всех классов, которые будут созданы. Вы можете alos настроить конфигурацию bindingDirectory proprerty плагина maven.

  • 0
    Определение может быть изменено, поэтому мне нужно общее решение. Также количество Элементов сделало бы это решение непрактичным.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню