Есть ли декларативный способ разбора XML на объекты Java? - PullRequest
5 голосов
/ 16 августа 2010

Я пишу функцию импорта файлов XML в мое приложение Java. Я использую XOM для разбора файлов XML. Код для синтаксического анализа XML не так прост для понимания, он является жестко запрограммированным .getChild(3) и так далее. Трудно следовать коду по сравнению с декларативным документом XML.

Нет ли более удобного способа разбора XML-документов на объекты Java? Мне бы хотелось, чтобы он был более декларативным, чтобы я мог указать, какие теги соответствуют каким классам Java.

Ответы [ 7 ]

3 голосов
/ 16 августа 2010

Посмотрите на JAX / B - довольно простой подход, основанный на аннотациях.Это стандартный Java API.

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

2 голосов
/ 17 августа 2010

Мне действительно нравится Простой для преобразования XML в Java.

1 голос
/ 23 ноября 2010

XML-инфраструктура Simple использует аннотации для объявлений полей и методов, а также для определений классов для отображения XML на Java и обратно. Это во много раз легче, чем JAXB (который тянет в тоннах зависимостей). На самом деле у него вообще нет внешних зависимостей. И это тоже быстрее. Я пробовал JAXB много раз, но нашел аннотации и функциональность неловкими и громоздкими. Ознакомьтесь с Tutorial .

1 голос
/ 17 августа 2010

Согласовано JAXB (JSR-222) - лучшее решение. Обратите внимание, что JAXB - это спецификация, означающая, что у вас есть выбор реализаций:

Стандартный JAXB позволяет указывать сопоставления с помощью аннотаций, MOXy JAXB также позволяет указывать ваши метаданные через XML:

Если вы хотите обслуживаемое решение, вам нужно разорвать взаимно-однозначное отношение между элементами XML, обнаруживаемыми почти во всех решениях XML-привязки, и использовать отображение на основе XPath, используемое в MOXy:

1 голос
/ 16 августа 2010

Посмотрите на Apache Commons Digester .

0 голосов
/ 08 ноября 2010

Я наконец нашел XStream , который был прост в использовании и анализирует XML декларативным способом.

0 голосов
/ 16 августа 2010

Проверка Castor XML Mapping

Вот документация для того же: http://www.castor.org/xml-mapping.html

...