2009-09-01 13 views
24

Ktoś może mi powiedzieć, który z nich jest lepszy (JAXB lub Apache XMLBeans) biorąc pod uwagę wydajność plików większych niż 10 MB?JAXB vs Apache XMLBeans

+1

** Uwaga dla deweloperów: ** obecnie projekt XMLBeans jest oficjalnie wycofany, a aktywny rozwój zostaje zakończony. Zwróć uwagę na wiadomość umieszczoną na Apache XMLBeans [strona główna] (https://xmlbeans.apache.org/) (quote): _ "2014/05/23 - Apache XMLBeans został ** wycofany **. więcej informacji, zapoznaj się z [Apache Attic] (http://attic.apache.org/projects/xmlbeans.html). "_ – informatik01

Odpowiedz

18

Oba mają podobną wydajność, jednak nawet jeśli Apache XMLBeans wydaje się mieć lepszą wydajność, ja zwykle wybieram JAXB, ponieważ nie chcę zwiększać rozmiaru moich aplikacji za pomocą narzędzi innych firm.

Z Apache XMLBeans potrzebujesz małego pakietu około 2mb, prawdopodobnie jest łatwy do nauczenia i dobrze udokumentowany. Miej pełne wsparcie dla specyfikacji XSD i przestrzeni nazw oraz mapuj tylko za pomocą definicji schematu XML (XSD). Wydaje się również używać nieaktualnych interfejsów API.

+0

Próbuję utworzyć aplikację webstart, więc rozmiar ostatecznej aplikacji jest bardzo ważny i prawdopodobnie najcięższy czynnik w mojej decyzji, ponieważ różnica w wydajności nie jest zbyt duża. – Simon

1

zgadzam się z Bruno. JAXB jest dołączany do Javy z powodu

+4

Nie, ponieważ wygrał on loterię xml-java-mapowanie obiektów :) – Nico

+0

Podczas gdy "loteria" nie brzmi jak wybór jakości, ale przez szczęście ... – Henning

+9

JAXB nie jest narzędziem, ale spec (http : //jcp.org/en/jsr/detail? id = 222). Metro JAXB impl (https://jaxb.dev.java.net/) jest zawarte w Java SE 6. Istnieją inne implikacje JAXB, takie jak MOXy (http://www.eclipse.org/eclipselink/moxy.php) i JaxMe (http://ws.apache.org/jaxme/). –

4

Wolę XMLBeans, ponieważ jest wyposażony w poręczne narzędzie o nazwie "inst2xsd", które pozwala na wygenerowanie schematu XML z dokumentu instancji XML. JAXB nie może tego zrobić.

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

+5

JAXB 2 może generować schematy XML, zobacz 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 nie może wygenerować schematu z xml. Narzędzie schemagen generuje schemat wyłącznie z klas java. – Kamran

+0

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

7

Architekt XMLBeans pisał o tym, dlaczego zdecydował się zbudować XMLBeans, choć JAXB była ustanowiona norma. Spójrz na jego blog, w szczególności na problems with jaxb Najbardziej przekonującą zaletą było zastępowanie typów.

+14

Post "Problem z jaxb' blog jest w odniesieniu do JAXB 1 (JSR-31). JAXB 2 (JSR-222) jest lepszy i lepszy. Wynika to po części z wkładu wniesionego przez Davida Bau, który był członkiem grupy ekspertów JAXB 2. –