LINUX.ORG.RU

Кастомный класс в jaxb

 , , ,


0

1

С удивлением обнаружил в проекте 4 абсолютно одинаковых класса и попытался понять что за фигня происходит. Как выяснилось, 3 из 4 классов генерятся jaxb, который сопротивляется попыткам использовать один общий класс.

Собственно кто-нибудь знает адекватный, человечный и безболезненный (без адаптеров и аннотаций в три этажа) способ заставить jaxb юзать класс из жабофайла импортом?

Пример того что хотелось бы в идеале

<element name="inst" type="org.test.MyClass" />

Может я где импорт упускаю?

Переписать не предлагайте, уже близок к этому

★★★★★

Лучше так не делать. Классы приходят из разных схем, завтра одна схема поменяется, остальные останутся старыми и будешь ловить загадочные баги. Хоть классы сейчас и одинаковые, концептуально они скорее всего разные.

А так — пиши jxb-биндинги, указывай там пакеты и тд.

Legioner ★★★★★
()

А зачем jaxb их генерирует? Сам возьми и напиши один раз правильный.

А заставить jaxb использовать конкретный класс - очень просто: их можно передавать в JaxbContext.

JAXBContext jc = JAXBContext.newInstance(MyClass.class);

Но конечно всё зависит от того, нафига jaxb что-то там генерирует. Если принципиально чтоб XmlType генерировались из схемы - то да, на каждую схему будет собственная пачка классов, ибо как писали выше - мало ли, поменяется схема и всё посыпится.

А так, да, классическая проблема Code First vs Schema First

anonymous
()
Ответ на: комментарий от Legioner

Хоть классы сейчас и одинаковые, концептуально они скорее всего разные.

Классы идентичные, нужны только потому что генеренные дружно вызываются из генеренного же мастера, а обычный класс в них переводится прямым конвертором.

upcFrost ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.