Настройте сгенерированные JAXB 2.0 имена методов из элемента xsd: choice - PullRequest
3 голосов
/ 09 февраля 2010

Я пытаюсь выяснить, как настроить имя метода, генерируемого JAXB 2.1.12. У меня есть эпическая XML-схема (которая не находится под моим контролем), и она содержит группу с элементом выбора, который содержит около 200 других элементов. Поэтому, когда я генерирую классы JAXB, созданный метод get () оказывается довольно бесполезным - в конечном итоге он выглядит как «getElement1AndElement2AndElement3 ()».

Я бы хотел переименовать метод get (), чтобы он был лучше, но я не могу понять, как именно это сделать. Я знаю, что в учебнике описывается настройка имен классов с использованием элемента.

Я нашел действительно старую статью (http://onjava.com/pub/a/onjava/2003/12/10/jaxb.html?page=2), которая описывает присоединение атрибута «name» к элементу, что, по-видимому, является тем, что мне нужно сделать. К сожалению, я думаю, что статья ссылается на 1.x Версия JAXB и атрибут name больше не действительны в элементе выбора с JAXB 2.0.

Так кто-нибудь знает, как я могу настроить генерируемое имя метода? Пожалуйста, дайте мне знать, если примеры или любая другая информация будет полезна, или если то, что я пытаюсь сделать, просто невозможно.

Спасибо!

1 Ответ

5 голосов
/ 09 февраля 2010

Я пробовал на примере, представленном в предоставленной вами ссылке, и работает следующий связующий файл. Xjb:

<jxb:bindings version="1.0"
    xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <jxb:bindings>
      <jxb:bindings schemaLocation="po4.xsd" node="/xs:schema/xs:element[@name='Widgets']//xs:complexType//xs:choice">
            <jxb:property name="Shapes"/>
        </jxb:bindings>
    </jxb:bindings>
</jxb:bindings>

Я также использую JAXB 2.1.12.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...