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