Я часто должен разрабатывать XML-схемы для различных стандартных программ импорта XML-оснований. Ясно, что XML-схемы будут развиваться со временем, или они могли содержать ошибки, которые будут зафиксированы, таким образом, важно получить версию схемы и иметь некоторый механизм для привязки против определенной версии.
В настоящее время у меня есть два сценария:
Ошибка найдена в рамках схемы, и все экземпляры схемы должны выполнить исправленную версию.
Обновленную схему и нужно рассмотреть как предпочтительную, но старый должен также поддерживаться.
Наконец я придумал хранение информации о версии в пространстве имен схемы:
targetNamespace="http://schemas.company.com/Geodesy/2010/River.xsd"
При исправлении ошибки я фиксирую его в том же пространстве имен, но если я собираюсь обновить схему тогда, я должен создать новое пространство имен, но с добавленным месяцем обновления:
targetNamespace="http://schemas.company.com/Geodesy/2010/01/River.xsd"
И если у меня есть больше чем одно обновление за месяц, тогда просто добавляют день также:
targetNamespace="http://schemas.company.com/Geodesy/2010/01/17/River.xsd"
Вы знаете какой-либо лучший подход?
Это такая сложная тема, что это даже не смешно, и тот, который я провел годы, предоставляя поддержку консультации.
Есть много лучших практик , но большинство из них не работают во всех ситуациях. Например, многие защищает использование «XSD: любой», чтобы разрешить расширениями, и это просто рецепт стихийных бедствий, если разработчики отвечают за поддержание схемы, превращая его в свалку.
Вот несколько советов для вас, если вы начинаете:
Удача!