Как автоматически генерировать аннотации @XmlRootElement без использования <xjc: simple />? - PullRequest
0 голосов
/ 22 мая 2019

Есть ли способ заставить maven-jaxb22-plugin генерировать эти аннотации, не прибегая к флагу <xjc:simple/>?

Контекст:

<xjc:simple/> вызывает автоматическое создание очень полезных аннотаций @XmlRootElement, не требуя дополнительной настройки. К сожалению, он также создает множественные имена методов и, что более важно, не всегда использует точные имена типов для классов, как указано в XSD.

Я знаю, что мы можем использовать ObjectFactory для создания JAXBElement, который предоставляет ту же информацию, что и аннотация @XmlRootElement, но люди забывают делать это все время, и ошибка возникает только во время выполнения при попытке записи ( маршал) объект в xml, и даже тогда, только если рассматриваемый элемент действительно использовался.

Я также знаю, что плагину можно поручить делать это вручную, но этот подход не масштабирует нас до наших огромных многофайловых xsd-схем (которые мы не можем редактировать, он должен был бы перейти в bindings.xml):

<jaxb:bindings node="//xs:complexType[@name='personType']">
    <annox:annotate>
        <annox:annotate annox:class="javax.xml.bind.annotation.XmlRootElement" name="person"/>
    </annox:annotate>
</jaxb:bindings>
...