Декларативный XML -> POJO преобразование - PullRequest
4 голосов
/ 04 ноября 2008

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

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

Ответы [ 5 ]

4 голосов
/ 04 ноября 2008

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

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

2 голосов
/ 03 декабря 2008

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

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

1 голос
/ 04 ноября 2008

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

Приветствие.

0 голосов
/ 07 июля 2010

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

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

0 голосов
/ 07 ноября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...