У меня следующая ситуация:
Есть 2 файла xsd. Первый определяет корневой элемент и несколько типов.
Второй включает в себя первый и расширяет один из типов. Там
в этом файле не определен корневой тип.
Начиная с первого xsd, модель генерируется в пакете (a).
Вторая схема должна создать новый пакет (б) для дополнительного
типы, но повторно использовать сгенерированный пакет a. Я решил это с помощью
файл привязки, который указывает на ранее созданные элементы (в
пакет а).
Пока это работает, но ..
JAXB генерирует ObjectFactory в пакете A, который содержит создание
метод для корневого элемента.
Для второй схемы также создается ObjectFactory в пакете B.
И у этого класса также был метод create для того же корневого элемента.
Чтобы иметь возможность использовать все типы, контекст jaxb создается с использованием
несколько объектных фабрик (newInstance(a.ObjectFactory.class, b.ObjectFactory.class)
).
Во время выполнения это приводит к следующей ошибке:
com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 2
подсчет IllegalAnnotationExceptions
Имя элемента {http://www.example.org/Scenario/}scenario имеет больше
чем одно отображение
Должен ли я генерировать пакеты по-другому? Или есть что-то
возможно использование файла привязки для предотвращения фабрики объектов от
иметь дубликаты методов?