Rozdíly mezi JAXB a XmlBeans

JAXB vs XmlBeans

JAXB je součástí standardů JavaEE a odkazuje na Java Architecture for XML Binding. Je to tento proces, který se používá pro zpracování dokumentů XML. Použití JAXB je upřednostňováno, protože nabízí alternativu ke zpracování XML dokumentů v Javě, aniž by bylo nutné pochopit všechny malé detaily technologie XML. JAXB je k dispozici v aplikacích kompatibilních s JavaEE 5 jako open source balíček. Balíček umožňuje datovou vazbu a snadné čtení a přístup k dokumentům XML napsaným v programovacím jazyce Java. XMLBeans je naproti tomu projekt s otevřeným zdrojovým kódem vyvinutý systémy BEA, který poskytuje podobnou funkčnost jako JAXB v přístupu k dokumentům XML. Při jednání s XMLBeans se však vyžaduje dobrá znalost pozadí v XML. Existují však rozdíly mezi nimi a jsou diskutovány níže.

Rozdíly

Před vývojem JAXB a XMLBeans bylo jediným možným způsobem zpracování XML použití softwaru analyzujícího jazyk SAX (Simple API pro XML) nebo použití DOM (Document Object Model), oba analyzující jazyky poskytované programem JAXP (Java API pro zpracování API). Vývojář musel vytvořit kód, který byl zaměřen na vyvolání DOM nebo SAX pomocí JAXP, aby kód mohl analyzovat jazyk v dokumentu XML. Při skenování kód obvykle rozdělil kód na odlišné části, aby mohl být zpřístupněn cíleným aplikacím.

Hlavní rozdíl zaznamenaný mezi JAXB a XMLBeans je přístup, který každý používá při zařazování a nesouhlasu dokumentů XML. XMLBeans zpracovává celý dokument XML, aniž by procházel konverzí jazyka Java, protože se ukázala ztráta integrity dat v dokumentu XML. XMLBeans má vytvořený kurzor, který prohledává dokument XML. Pomocí kurzoru lze přistupovat k libovolnému prvku dokumentu včetně informací o schématu nebo komentářů, protože je zachována věrnost dokumentu. XMLBeans také zajišťuje provádění XQuery ve stejném dokumentu. Další typovaný přístup zajišťuje XMLBeans s poněkud obecným typem přístupu, který se stává odrazem API. XMLBeans, jak již bylo zmíněno, vyžaduje rozsáhlou znalost XML a rozšířením SAX nebo dokonce DOM.

Na druhé straně JAXB je svázán se schématem XML. Toto je problém, který vznikl s prvním vydáním JAXB, protože nemohl podporovat všechny funkce schématu XML, které by mohly podporovat pouze DTD (Definice typu dokumentu). To ve skutečnosti znamenalo, že první vydání JAXB nemohlo zajistit čitelné vazby. JAXB 2.0 usnadňuje zpracování vývoje, protože poskytuje plnou podporu schématu XML, mapování schémat Java do XML, přenositelnost a vývoj schématu. Dále JAXB zavedl flexibilní unmarshalling XML obsahu, který je neplatný a nerozhodnuto, zda ukončit unmarshalling nebo ne.

Souhrn:

- XMLBeans je lepší, pokud dáváte přednost robustnějším funkcím XML, např. XQueries a přímý přístup k dokumentům XML. Jeho použití přichází na úkor správy paměti a výkonu.

- JAXB je preferován, pokud si přejete vyšší výkon a správu paměti, i když to není tak důkladné jako XMLBeans.

- JAXB by měl být vybrán, pokud jste po jednoduché konverzi dokumentů XML.

- Vazba přizpůsobení nastane nejlépe v JAXB na rozdíl od XMLBeans.

- JAXB nabízí efektivní využití paměti na rozdíl od použití XMLBeans, což je proces závislý na paměti.

- Pokud si přejete zrušit sdílení dokumentu XML, JAXB je vaší volbou, protože XMLBeans čelí potížím při sdílení. Po vazebném schématu můžete použít ObjectFactory pro vytváření objektů a použít metody generování při vytváření obsahu.