Какая библиотека Java OXM лучше?
Несмотря на то, что я был разработчиком некоторое время, мне посчастливилось избежать большой работы с XML. Итак, теперь у меня есть проект, в котором мне нужно взаимодействовать с некоторыми веб-сервисами, и я хотел бы использовать какое-то решение для преобразования объектов в XML.
Единственный, кого я знаю, это JAXB. Это лучшее, чтобы пойти с? Есть ли другие рекомендации?
Один улов - я застрял с использованием Java 1.4, поэтому я ничего не могу сделать с аннотациями.
4 ответа
Если вы звоните в веб-сервис с WSDL, JAXB - абсолютно лучший вариант. Взгляните на wsimport, и вы будете готовы к работе через 10 минут.
Я не думаю, что JAXB 2.0 будет возможен на Java 1.4. Возможно, вам придется использовать Axis вместо:
java -cp axis-1.4.jar;commons-logging-1.1.jar;commons-discovery-0.2.jar;jaxrpc-1.1.jar;saaj-1.1.jar;wsdl4j-1.4.jar;activation-1.1.jar;mail-1.4.jar org.apache.axis.wsdl.WSDL2Java http://someurl?WSDL
Это создаст сходные заглушки для JAXB.
Если у вас нет WSDL или XSD, вы всегда можете сгенерировать его.
JAXB - лучший выбор:
- Открытый API включен в Java SE 6
- Связующий слой для JAX-WS (веб-сервисы)
- Связующий слой для JAX-RS (Rest)
- Может сохранить XML Infoset
- Несколько реализаций: Metro, MOXy, JaxMe и т. Д.
EclipseLink JAXB (MOXy) - лучшая реализация:
MOXy - это реализация JAXB с расширениями
MOXy имеет внешний файл конфигурации (на основе аннотаций JAXB с расширениями):
- http://bdoughan.blogspot.com/2010/12/extending-jaxb-representing-annotations.html
- http://wiki.eclipse.org/EclipseLink/Examples/MOXy/EclipseLink-OXM.XML
Имеет отображение на основе XPath, для глубокого отображения:
- http://bdoughan.blogspot.com/2010/07/xpath-based-mapping.html
- http://bdoughan.blogspot.com/2011/03/map-to-element-based-on-attribute-value.html
- http://bdoughan.blogspot.com/2010/09/xpath-based-mapping-geocode-example.html
Предназначен для обработки сопоставленных объектов ORM, включая поддержку двунаправленных отношений:
JIBX - известный по производительности
JAXB2 - Простота использования
Castor - Простота использования
другие - XMLBean, Xstream
Там XStream. Кажется, я помню, что использовал это давным-давно, и это было прекрасно. Не могу сказать, что у меня достаточно опыта, чтобы рекомендовать его за или против, но это стоит проверить как альтернативу.