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