Я работаю в приложении, где нам нужно сохранять объекты в формате XML и загружать их позже, когда это потребуется. Для этого я использовал JAXB для маршалинга и демаршаллизации XML обратно в классы Java.
Моя проблема заключается в том, что мне приходится когда-нибудь менять модели Java (добавляя, переименовывая или удаляя атрибуты), в результате у меня будут несовместимые сохраненные XML-файлы, которые нельзя привязать к новой форме класса.
Чтобы решить эту проблему, каждый раз, когда мне нужно внести изменение, я беру копию всех классов в новом пакете (названном в честь его версии) и применяю запрошенные изменения. И при сохранении XML я сохраняю его версию, чтобы я мог решить, какой пакет должен быть проверен JAXB, чтобы демонтировать этот XML.
Мой вопрос: есть ли другой способ реализации обратной и прямой совместимости с использованием JAXB? Если нет, то есть ли какая-либо другая технология, которая может это поддержать?