Во-первых, поддержка импорта старых версий намного проще, чем экспорт.Это потому, что обычно более поздние версии отличаются, потому что они поддерживают больше функций.Следовательно, сохранение в старом формате может означать потерю данных.Следовательно, мой опыт заключается в поддержке импорта нескольких версий, охватывающих более десяти лет.
XML, конечно, является разумным решением.Он разработан с учетом этой проблемы.Ключевым моментом для меня является то, что чистая структура кода следует из чистой модели данных.При условии, что в новых версиях добавлены функции, и они представлены поддержкой дополнительных тегов, вам вообще не нужно перекодировать обработку существующих тегов.
Теперь вы можете изменить семантику существующих теговтребуя их перекодировки.Решение: не делайте этого, если можете этого избежать.Когда вы добавляете атрибут или тег, убедитесь, что вы определили значение по умолчанию, а затем старые и новые файлы данных обрабатываются без проблем.
Так что мне кажется, что с осторожностью вы сможете избежать многих случаев, когда выдействительно имеют существенно различный код для обработки одних и тех же полей в разных версиях файлов.Там, где это происходит, я предполагаю, что есть «особые обстоятельства» (это жизнь с программным обеспечением).При разработке универсального решения вы будете иметь в виду конкретные варианты использования, и такие особые случаи могут не обрабатываться в любом случае.
В заключение: вы будете наиболее эффективны в будущем, определив путь обновления данныхмодель.