Отображение данных JAXB в модель предметной области - PullRequest
1 голос
/ 15 марта 2011

Я получаю InputStream от вызова веб-служб и использую JAXB для преобразования его в объекты, поэтому мне не нужно анализировать xml.

Объекты содержат кучу данных, которые мне не интересныв и из данных, которые меня интересуют, я хочу создать экземпляр объекта типа модели пользовательского домена.Например, объекты JAXB содержат около 50 фрагментов данных, распределенных по, возможно, 20 классам.Я хочу выбрать данные, которые меня интересуют, около 10 частей данных и создать экземпляр класса моей модели домена с 10 частями данных.

Мне нужно использовать Java 1.4, есть ли фреймворк, который я могу использовать,или я должен просто перебрать объекты JAXB и получить данные, которые мне нужны, а затем создать экземпляр модели предметной области и установить данные?

Ответы [ 2 ]

1 голос
/ 15 марта 2011

Использование JAXB 1.0

Вы можете применить XSLT-преобразование к документу только к той информации, которая вас интересует.Затем вы можете создать XML-схему для этого меньшего документа и сгенерировать из него вашу объектную модель.Мой ответ ниже на связанный вопрос даст вам представление о том, как вписываются API javax.xml.transform:

Использование JAXB 2.0

Если вы можете перейти на Java SE 5, вы можете использовать JAXB 2.0.Я возглавляю реализацию EclipseLink JAXB (MOXy) , и вас может заинтересовать наше расширение XPath:

0 голосов
/ 15 марта 2011

Написание некоторых пользовательских XPath-запросов для выделения полей, которые вы хотите, было бы довольно чистым и простым. Вы можете получить XPath как часть xalan или несколько других библиотек xml, которые я считаю: API Link

Чтобы уточнить (если вы ранее не использовали XPath), XPath позволяет вам написать простой патчированный запрос для поиска в документе XML. Таким образом, root/child/grandchild/ вернет значение узла внука, который находится под дочерним узлом, который находится под корневым узлом.

...