2009-09-01 5 views
24

Любой может сказать мне, какой из них лучше (JAXB или Apache XMLBeans), принимая во внимание производительность файлов размером более 10 МБ?JAXB vs Apache XMLBeans

+1

** В качестве примечания для разработчиков: ** в настоящее время проект XMLBeans официально удален, а активное развитие прекращено. Обратите внимание на сообщение поверх Apache XMLBeans [домашняя страница] (https://xmlbeans.apache.org/) (цитата): _ «2014/05/23 - Apache XMLBeans был уволен **. Для более подробную информацию, пожалуйста, изучите [Apache Attic] (http://attic.apache.org/projects/xmlbeans.html). "_ – informatik01

ответ

18

Оба имеют схожие характеристики, однако, даже если Apache XMLBeans, как представляется, обеспечивает лучшую производительность, я обычно выбираю JAXB, потому что я не хочу увеличивать размер своих приложений с помощью сторонних инструментов.

С Apache XMLBeans вам нужен небольшой пакет размером около 2 МБ, он, вероятно, легко учится и хорошо документирован. Полностью поддерживать спецификацию XSD и пространства имен, а также отображение только через XML Schema Definition (XSD). Он также, кажется, использует устаревшие API.

+0

Я пытаюсь создать приложение webstart, так что размер окончательного приложения очень важен и, вероятно, самый тяжелый фактор в моем решении, поскольку разница в производительности не слишком велика. – Simon

1

согласен с bruno. JAXB в комплекте с Java по какой-то причине

+4

Нет, потому что он выиграл лотерею xml-java-object-mapping-tool :) – Nico

+0

Хотя «лотерея» не походит на выбор по качеству, а на удачу ... – Henning

+9

JAXB - это не инструмент, а спецификация (http : //jcp.org/en/jsr/detail ID = 222). Metro JAXB impl (https://jaxb.dev.java.net/) включен в Java SE 6. Есть и другие JAXB-импланты, такие как MOXy (http://www.eclipse.org/eclipselink/moxy.php) и JaxMe (http://ws.apache.org/jaxme/). –

4

Я предпочитаю XMLBeans, потому что он поставляется с удобным инструментом под названием «inst2xsd», который позволяет вам сгенерировать XML-схему из документа экземпляра XML. JAXB не может этого сделать.

См http://xmlbeans.apache.org/docs/2.0.0/guide/tools.html#inst2xsd

+5

JAXB 2 может генерировать XML-схемы, см. Http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/javax/xml/bind/JAXBContext. html # generateSchema (javax.xml.bind.SchemaOutputResolver) –

+3

JAXB 2 не может генерировать схему из xml. Инструмент schemagen генерирует только схему из классов java. – Kamran

+0

См. Http://stackoverflow.com/questions/7212064/is-it-possible-to-generate-a-xsd-from-a-jaxb-annotated-class :) – everlasto

7

Архитектором XMLBeans писал о том, почему он решил построить XMLBeans, несмотря на то, JAXB был создан стандарт. Взгляните на его blog, в частности problems with jaxb. Наиболее убедительным преимуществом была замена типа.

+14

Сообщение «Проблемы с jaxb» в блоге относится к JAXB 1 (JSR-31). JAXB 2 (JSR-222) лучше прыжков. Частично это объясняется вкладами Дэвида Бау, который был членом экспертной группы JAXB 2. –