При работе с информационными моделями важно грамотно организовать версионность XML‑документов. Это обусловлено тем, что XML‑схемы постоянно развиваются, и приложения должны уметь взаимодействовать с различными их версиями. Для решения этой задачи применяются специальные методы, стандарты и инструменты.
Методы управления версиями
Существует несколько проверенных подходов к организации версионности XML‑документов:
- Модификация атрибута версии схемы. Предусматривает изменение числового значения в необязательном атрибуте версии, размещённом в начале XML‑схемы. Такой способ даёт приложениям возможность определить новую версию схемы и предпринять необходимые действия.
- Добавление атрибута schemaVersion в корневой элемент. В экземпляре документа явно указывается версия (или несколько версий) схемы, с которой он совместим. Значение атрибута может представлять собой список или определяться согласно заранее установленным правилам.
- Изменение имени или расположения схемы. Версия может обозначаться через добавление номера версии или даты в имя файла. Однако этот метод имеет недостаток: он может потребовать обновления всех экземпляров документов, даже если изменения схемы на них не влияют.
- Сохранение предыдущих версий схемы. Позволяет приложениям использовать старые версии и обеспечивает плавный переход пользователей на новые версии за счёт поддержания совместимости. Например, URI schemaLocation может указывать на документ со списком доступных версий схемы, что даёт инструменту возможность выбрать нужную версию.
- Определение политики обратной совместимости (backwards‑compatibility). Например, включение необязательных элементов не должно нарушать работу отправителей и получателей, если они придерживаются политики игнорирования неизвестных элементов.
Ключевое требование: механизм версионности должен функционировать в рамках экосистемы XML‑документов и XML‑схем без привлечения внешних механизмов. Так, процесс согласования версии между отправителем и получателем не входит в обработку схем и не всегда возможен — например, для статических XML‑файлов.
Стандарты версионирования
Ряд документов регламентирует процессы управления версиями XML‑документов:
- W3C XML Schema Versioning Use Cases. Документ описывает ожидаемое поведение процессоров XML‑схем при обработке различных версий схем и их экземпляров. В нём приведены типичные сценарии, которые должны решаться механизмами версионирования, а также указаны желаемые реакции процессоров.
- Рекомендации по версионированию XML‑схем (например, на xfront.com). Содержат практические советы по организации версионности, включая методы идентификации версии схемы и проверки совместимости экземпляра с конкретной версией.
Инструменты реализации
Для внедрения механизма версионирования в информационных моделях применяются следующие инструменты:
- Системы контроля версий (VCS). Позволяют:
- сравнивать разные версии одного файла;
- визуализировать изменения между версиями;
- отображать историю изменений в виде дерева проекта.
- Специализированные инструменты для работы с XML‑схемами. Обеспечивают:
- идентификацию версии схемы;
- выбор подходящей схемы на основе номера версии;
- проверку совместимости экземпляров с версиями схемы.
Системы управления базами данных (СУБД). Некоторые СУБД включают встроенные механизмы преобразования иерархических данных в реляционную модель, что упрощает работу с XML‑документами и поддержку версионности. Например, Microsoft Access DBMS предоставляет возможности для импорта и обработки XML‑данных.