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