Rozdíly mezi JAXB a XmlBeans

Anonim

JAXB vs XmlBeans

JAXB je součástí standardů JavaEE a odkazuje se na architekturu Java pro vazbu XML. Právě tento proces se používá pro zpracování dokumentů XML. Použití JAXB je upřednostňováno, neboť nabízí alternativu pro zpracování XML dokumentů v Javě, aniž by museli nutně rozumět všem malým detailům technologie XML. JAXB je k dispozici v aplikacích kompatibilních s JavaEE 5 jako balíček s otevřeným zdrojovým kódem. Balíček umožňuje vazbu dat a snadné čtení a přístup k dokumentům XML napsaným v programovacím jazyce Java. XMLBeans, na druhé straně, je open-source projekt vyvinutý systémy BEA a tyto poskytují podobnou funkcionalitu jako JAXB umožňující přístup k dokumentům XML. Dobré poznatky o pozadí v XML se však vyžadují při práci s XMLBeans. Existují však mezi těmito dvěma rozdíly, které jsou uvedeny níže.

Rozdíly

Před vývojem modulů JAXB a XMLBeans byl jediný způsob, jak lze zpracovat jazyk XML, pomocí softwaru pro analýzu jazyků SAX (Simple API for XML) nebo s použitím DOM (Document Object Model), což je oba analytické jazyky, které poskytuje JAXP (Java API pro zpracování API). Vývojář musel vytvořit kód, který byl zaměřen na vyvolání DOM nebo SAX prostřednictvím JAXP, aby kód mohl analyzovat jazyk v dokumentu XML. Při skenování kód obvykle rozdělil kód na jednotlivé kusy, aby mohl být dostupný pro cílené aplikace.

Hlavním rozdílem mezi JAXB a XMLBeans je přístup, který každá z nich přijímá při řazení a vyjímání XML dokumentů. XMLBeans zpracovává celý dokument XML, aniž by prošel konverzí Java, protože se ukázala ztráta integrity dat XML dokumentu. XMLBeans má vytvořený kurzorem, který skenuje dokument XML. Pomocí kurzoru lze přistupovat k libovolnému prvku dokumentu včetně informací o schématu nebo komentářů, protože zachovává věrnost dokumentu. XMLBeans také umožňuje provedení XQuery ve stejném dokumentu. Další zadaný přístup poskytuje XMLBeans s poměrně obecným typem přístupu, který se stává odrazem rozhraní API. XMLBeans, jak již bylo zmíněno výše, vyžaduje rozsáhlou znalost XML a případně SAX nebo dokonce DOM.

JAXB, na druhé straně, je vázán schématem XML. Toto je následující problém, který vznikl při prvním vydání JAXB, protože nebyl schopen podporovat všechny funkce schématu XML, které dokáží podporovat pouze DTD (Definice typů dokumentů). To ve skutečnosti znamenalo, že první vydání JAXB nemohlo zajistit čitelnou vazbu. JAXB 2.0 dělal vývojové zpracování poměrně snadné, protože poskytuje úplnou podporu schématu XML, mapování schématu Java na XML, přenositelnost a vývoj schématu. Dále společnost JAXB zavedla flexibilní rozmazání obsahu XML, který je neplatný a nerozhoduje, zda ukončit rozbalení nebo ne.

Souhrn:

- XMLBeans je lepší, pokud preferujete robustnější funkce XML, např. XQueries a přímý přístup k dokumentům XML. Jeho využití je 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, ačkoli to není tak důkladné jako XMLBeans.

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

- Binding customization 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 založený na paměti.

- Pokud si přejete zrušit XML dokument, JAXB je vaší volbou, jelikož XMLBeans čelí potížím s unmarshalling. Na základě schématu vazby můžete použít objekt ObjectFactory pro vytváření objektů a použít metody vytváření obsahu při vytváření obsahu.