В настоящее время мы участвуем в гибком проекте, в котором как новые улучшения, так и исправления ошибок появляются быстро и яростно, в результате чего полезные данные XML постоянно не проходят проверку XSD. Программный движок Java требует, чтобы XML и XSD совпадали.
Что еще хуже, нашей целью является база данных, макеты таблиц которой также должны соответствовать быстрым изменениям. Я решил часть базы данных, но у меня нет идеального решения для достаточно быстрой обработки различий XML/XSD.
Мы полагаемся на другой отдел, который присылает нам обновленный XSD всякий раз, когда макеты меняются на их стороне, но они, к сожалению, не в состоянии идти в ногу с быстрым темпом изменений, поэтому мы в конечном итоге вручную создаем новые версии XSD с нашей стороны.
Я разработал систему, в которой каждый XML-файл, который мы обрабатываем, проверяется в одном из нескольких версионных XSD-файлов (начиная с самой последней версии и заканчивая самой старой). Это работает, за исключением случаев, когда для данного XML не работает ни одна версия, поэтому нам нужно найти наиболее близкое совпадение и сгенерировать новую версию. В XML есть информация о метке времени, и вы можете использовать имя файла xsd, чтобы найти его ближайшее существующее совпадение.
Я использую имена файлов xsd, такие как YYYY-MM-DD-SEQ.XSD, например
Должен быть более простой способ сделать это, но я не нахожу способ. Я действительно не хочу тратить время на программирование генератора XSD, но, возможно, это лучший способ? Есть ли лучший, более простой способ?