У меня есть следующая ситуация:JAXB xsd: включить и отдельные пакеты
Есть 2 файла xsd. Первый определяет корневой элемент и несколько типов.
Второй включает в себя первый и расширяет один из типов. Там не является корневым типом, определенным в этом файле.
С первого xsd модель создается в пакете (a). Вторая схема должна создать новый пакет (b) для дополнительных типов , но повторно использовать сгенерированный пакет a. Я решил это, используя файл привязки , который указывает на ранее созданные элементы (в пакете ). До сих пор это работает, но ...
JAXB генерирует ObjectFactory в пакете A, который содержит метод для корневого элемента. Для второй схемы также создается ObjectFactory в пакете B. И этот класс также имел метод create для того же корневого элемента.
Чтобы использовать все типы, контекст jaxb создается с использованием объектов с несколькими объектами (newInstance(a.ObjectFactory.class, b.ObjectFactory.class)
).
Во время выполнения это приводит к следующей ошибке:
com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions The element name {http://www.example.org/Scenario/}scenario has more than one mapping
Должен ли я генерировать пакеты по-другому? Или есть что-то , используя файл привязки, чтобы предотвратить создание объекта с с использованием дублирующих методов?
Спасибо за ответ. Я уже изменил его, чтобы использовать импорт вместо include, действительно, кажется, лучше. Я взгляну на сообщение в блоге, кажется многообещающим до сих пор. – Alexander 2010-11-25 13:49:34