Я недавно перешел в проект, где заметил, что существует определенное требование для хранения некоторых данных в виде XML.
Предыдущая команда использовала сгенерированные Castor классы для Маршалла и Унмаршалла данных.
Теперь у меня есть новое требование, которое требует от меня добавить некоторые дополнительные (но необязательные) поля в этот XML.Однако я понял, что предыдущая команда, возможно, вообще не проверяла XSD, и у меня нет возможности связаться с ними.
XSD наверняка был большим и сложным, поскольку он отвечает за создание около 50 классов.Поэтому повторное написание XSD будет подвержено ошибкам, а также риску того, что я могу в итоге создать XML-файлы, которые теперь совместимы со старым XML.
Другой альтернативой, о которой я подумал, было использование такого инструмента, как XMLШпионите и попытайтесь выполнить обратный инжиниринг XSD из XML, однако это тоже звучит немного сложно, поскольку мне нужно будет провести обратный инжиниринг 20 нечетных XML для генерации XSD, а затем объединить все эти XSD в один, так как XML имел несколько необязательных разделов.В этом подходе все еще возможен элемент ошибки.
Лучший вариант, который я могу придумать, - это обратный инжиниринг классов в XSD - однако, предположительно, Castor не поддерживает эту функцию.Поэтому у меня нет средств для преобразования этих сгенерированных Castor классов обратно в XSD!Хотя классы, сгенерированные в Castor, действительно имеют некоторые специфические для Castor методы, по сути они являются Pojos, если специфические для Castor методы игнорируются!
Есть ли у нас какие-либо предложения по получению или генерации XSD из классов Java?Есть ли у нас другие предложения по решению обсуждаемых мной проблем?
Спасибо.