Объект в XML, обратная и прямая совместимость

Я работаю в приложении, в котором нам нужно сохранять объекты в формате XML и загружать их позже, когда это потребуется. Для этого я использовал JAXB для маршалинга и демаршаллинга XML-файлов обратно в классы Java.

Моя проблема в том, что мне когда-нибудь приходится изменять модели Java (путем добавления, переименования или удаления атрибутов), в результате у меня будут несовместимые сохраненные XML, которые не могут быть связаны с новой формой класса.

Чтобы решить эту проблему, каждый раз, когда мне нужно внести изменения, я беру копию всех классов в новом пакете (названном в честь его версии) и применяю запросил изменения. И при сохранении XML я сохраняю его версию, чтобы я мог решить, какой пакет следует сканировать JAXB, чтобы демаршалировать этот XML.

Мой вопрос: Есть ли другой способ реализовать обратную и прямую совместимость с использованием JAXB? Если нет, существует ли какая-либо другая технология, которая может это поддерживать?

8
задан palacsint 24 June 2012 в 10:22
поделиться