Мне часто приходится разрабатывать схемы 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"
Знаете ли вы лучший подход?