Я использую XMLBeans для генерации кода клиента Java из двух очень похожих XSD. Сгенерированные XMLBeans классы входят в два параллельных пакета. Затем я извлекаю данные из базы данных для взаимодействия с сгенерированными классами для создания двух (опять же, почти идентичных) выходных файлов XML. Несмотря на то, что XSD примерно на 95% одинаковы, между ними нет определенной взаимосвязи - никакого наследования или чего-либо еще. К сожалению, эти устаревшие XSD использовались годами, и мне не разрешено их модифицировать.XMLBeans - Как обрабатывать почти идентичные устаревшие XSD?
Моя проблема заключается в том, что, несмотря на то, что большинство данных и структур точно совпадают между двумя файлами XML, я не могу понять, как избежать тонны повторяющегося кода, чтобы вылить данные на два независимых набора Сгенерированные XMLBeans классы. Я могу создать общий набор бизнес-объектов между DAO и структурами XML. Но мне все равно придется сопоставлять каждый из этих объектов с соответствующими генерируемыми типами XML, и это кажется невероятно утомительным и неэффективным.
Я не хочу изменять сгенерированный Java-код XMLBeans (например, реализовать общий интерфейс), и я не могу изменить XSD. Я посмотрел на такие шаблоны, как Adapter и Bridge, но я не думаю, что они заставили меня присутствовать, чтобы избежать дублирования кода/усилий. Есть ли элегантное дизайнерское решение, которое мне не хватает?
Трудно определить, какую часть вы можете изменить и то, что вы не можете. Некоторый код даст лучшую идею. Вы пробовали JAXB? –
+1 У нас только одна и та же проблема, и было бы неплохо иметь достойное решение. –