2010-05-12 2 views
13

Мне нужно преобразовать данные XML в объекты Java. Какова была бы наилучшая практика для преобразования этих данных XML в объект?Что лучше всего подходит для преобразования объекта XML в Java?

Идея заключается в получении данных через веб-службу (она не использует WSDL, а только HTTP GET-запросы, поэтому я не могу использовать какую-либо фреймворк), а ответы в XML. Что было бы лучшей практикой для решения этой ситуации?

+0

Существует также schemaless подход, в случае, если вы даже не хотите использовать schema..http: //onjava.com/pub/ a/onjava/2007/09/07/schema-less-java-xml-data-binding-with-vtd-xml.html –

ответ

10

Посмотрите на XStream. Это может быть не самый быстрый, но это один из самых удобных для пользователя и простых преобразователей в Java, особенно если ваша модель не сложна.

+0

+1 хороший ответ, это не стандарт, но он намного удобнее в моем опыте, чем JAXB. – maerics

+2

Отъезд: http://bdoughan.blogspot.com/2010/10/how-does-jaxb-compare-to-xstream.html –

+0

можно ли это использовать для анализа html? он терпим к отказам? благодаря! – trillions

2

Другим вариантом является Sax Parser. Это процедурный, т. Е. Шаблон посетителя, но если xml достаточно легкий (и даже средний вес), я нашел, что это очень полезно для этого.

4

Для проекта JMS мы были маршаллинг и unmarshalling (переход от java к xml и xml к java) XML, встроенный в TextMessages (свойство строки). Мы попробовали JAXB, Jibx и XMLBeans. Мы обнаружили, что XMLBeans лучше всего работают для нас. Быстрая, легко настраиваемая, хорошая документация и простая интеграция Maven.

+0

Я использовал JaxB, XStream и XMLBeans, с ними все хорошо и плохо.Jaxb, что его часть платформы XStream, что ее быстрее, чем все выйти, но если ваш XML очень сложный, XMLBeans это путь. – mezmo

3

я использовал и будет продолжать использовать JDOM -> www.jdom.org

0

Я использовал XStream, как хорошо, это простой в использовании и настраиваемый. Вы можете добавить свои собственные преобразователи, и это было очень удобно для меня ...

1

Я использовал JIBX в модуле MQ. Он работает очень хорошо. Ant config прост. Используется конвертер Xsd2Jibx для генерации файлов привязки и Java-компонентов из схемы XML. Marshalling и un-marshalling позволяют указать параметр набора символов. В моем проекте было полезно обрабатывать пользовательский набор символов. Но я нашел проблему в компиляторе привязки. Если Java-компонент имеет более длинное имя пути, он генерирует файл класса с более длинным именем файла, что вызовет проблему в Windows XP (максимальное ограничение длины файла).

Я не использовал другие API. Поэтому я не пытаюсь сравнивать с другими. Если вы решили использовать JIBX, я надеюсь, что это будет полезно.

Подробнее см JIBX website

2

JAXB API, который поставляется в Java (встроенные).

+1

Реализация Metro поставляется в комплекте с Java SE 6. Также есть EclipseLink JAXB (MOXy) и Apache JaxMe. –

0

Так удивлены, что больше людей не упомянули Jibx. Удивительная библиотека, и я думаю, что намного проще использовать, чем Jaxb. Производительность также потрясающая!

0

Для этого вы можете также рассмотреть вопрос о bitwixt Апача и простую структуру для XML

Смежные вопросы