Декларативный XML -> преобразование POJO

Мне нужно написать процесс (на Java), который периодически обращается к URL-адресу, считывает возвращенный XML-документ и сохраняет эти данные в БД. Эти данные в дальнейшем используются моим приложением, поэтому я смоделировал их как объекты POJO с отображением Hibernate.

Я могу анализировать XML, а затем создавать соответствующие объекты POJO, но я искал более простой декларативный подход. Какие доступны библиотеки, которые могут принимать входную конфигурацию и создавать объекты POJO из XML-документа?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
0
3 742
5

Ответы 5

Вы можете использовать XStream для десериализации XML и сопоставить его напрямую с отображенными в Hibernate POJO.

Ваше здоровье.

Получив одобрение, с XStream всегда было немного легче работать, чем с JAXB. xstream.codehaus.org

Freiheit 07.07.2010 20:44

Другой альтернативой может быть JiBX

Кроме того, хотя вы сказали, что не хотите анализировать XML, XPath может быть очень кратким способом извлечения интересующего вас контента?

JiBX выглядит наиболее универсальным - начать с кода, начать со схемы, написать файл привязки вручную.

Karsten Silz 24.11.2009 16:16

Используя Hibernate, вы можете напрямую сопоставить XML с таблицей. Это экспериментальная функция. Проверить здесь http://www.hibernate.org/hib_docs/v3/reference/en-US/html/xml.html

JAXB может автоматически создавать классы на основе схемы XML (при условии, что она у вас есть для источника XML). Затем во время выполнения он может преобразовать XML-документ в POJO, представляющие XML. Он декларативен в том смысле, что вы можете немного настроить сопоставление схемы с классом.

Если я правильно понимаю вашу задачу, это в значительной степени вариант использования JAXB (хотя он может делать и другие вещи). Это часть Java 1.6 (может быть, и 1.5?), В пакетах: javax.xml.bind. *

EclipseLink JAXB (MOXy) имеет расширения для сопоставления сущностей JPA с XML (у сущностей JPA есть такие вещи, как встроенные классы идентификаторов, отложенная загрузка и отношения составных ключей, которые требуют особой обработки), я не знаю ни одного другого решения OXM, которое делает это.

Для получения дополнительной информации см .:

Другие вопросы по теме