Jakie są najlepsze praktyki dotyczące wersjonowania schematów XML?
Często muszę projektować schematy XML dla różnych procedur importowania baz XML. Oczywiste jest, że schematy XML będą ewoluować w miarę upływu czasu lub mogą zawierać błędy do usunięcia, dlatego ważne jest, aby przechwycić wersję schematu i mieć jakiś mechanizm wiązania z konkretną wersją.
Obecnie mam dwa scenariusze:
Błąd znajduje się w schemacie, a wszystkie instancje schematu muszą być zgodne z poprawioną wersją.
Uaktualniony schemat i powinien być traktowany jako preferowany, ale stary również powinien być obsługiwany.
Wreszcie wpadłem na przechowywanie informacji o wersji w przestrzeni nazw schematu:
targetNamespace="http://schemas.company.com/Geodesy/2010/River.xsd"
Naprawiając błąd, naprawiam go w tej samej przestrzeni nazw, ale jeśli zamierzam uaktualnić schemat, muszę utworzyć nową przestrzeń nazw, ale z dodanym miesiącem aktualizacji:
targetNamespace="http://schemas.company.com/Geodesy/2010/01/River.xsd"
A jeśli mam więcej niż jedną aktualizację w ciągu miesiąca, to po prostu dołącz także dzień:
targetNamespace="http://schemas.company.com/Geodesy/2010/01/17/River.xsd"
Czy znasz jakieś lepsze podejście?