Rozdiely medzi JAXB a XmlBeans

JAXB vs XmlBeans

JAXB je súčasťou štandardov JavaEE a odkazuje na architektúru Java pre väzbu XML. Je to tento proces, ktorý sa používa na spracovanie dokumentov XML. Uprednostňuje sa použitie JAXB, pretože ponúka alternatívu na spracovanie dokumentov XML v Jave bez toho, aby bolo potrebné porozumieť všetkým malým detailom technológie XML. JAXB je k dispozícii v aplikáciách kompatibilných s JavaEE 5 ako balík s otvoreným zdrojom. Balík umožňuje dátovú väzbu a ľahké čítanie a prístup k dokumentom XML napísaným v programovacom jazyku Java. Na druhej strane XMLBeans je projekt s otvoreným zdrojovým kódom vyvinutý systémami BEA, ktorý poskytuje podobnú funkčnosť ako JAXB pri sprístupňovaní dokumentov XML. Pri rokovaniach s XMLBeans sa však vyžaduje dobrá znalosť pozadia v XML. Existujú však rozdiely medzi nimi a sú diskutované nižšie.

rozdiely

Pred vývojom JAXB a XMLBeans bol jediný spôsob, ako sa XML mohlo spracovať, pomocou softvéru na analýzu softvéru SAX (Simple API for XML) alebo použitia DOM (Document Object Model), pričom oba jazyky analyzovali jazyky JAXP (Java API pre spracovanie API). Vývojár musel vytvoriť kód, ktorý bol zameraný na vyvolanie DOM alebo SAX prostredníctvom JAXP, aby kód mohol analyzovať jazyk v dokumente XML. Po naskenovaní kód zvyčajne rozdelí kód na rôzne časti, aby sa dal sprístupniť cieleným aplikáciám.

Hlavným rozdielom zaznamenaným medzi JAXB a XMLBeans je prístup, ktorý každý uplatňuje pri zaraďovaní a rozdeľovaní dokumentov XML. XMLBeans spracováva celý dokument XML bez toho, aby prešiel konverziou Java, pretože sa ukázalo, že sa stratila integrita údajov v dokumente XML. XMLBeans má vytvorený kurzor, ktorý prehľadáva dokument XML. Pomocou kurzora je možné získať prístup k akémukoľvek prvku dokumentu vrátane informácií o schéme alebo komentárov, pretože sa zachováva vernosť dokumentu. XMLBeans tiež zabezpečuje vykonanie XQuery v rámci toho istého dokumentu. Ďalší typizovaný prístup poskytuje XMLBeans s pomerne všeobecným typom prístupu, ktorý sa stáva odrazom API. Ako už bolo spomenuté, XMLBeans si vyžaduje rozsiahlu znalosť XML, a teda aj SAX alebo dokonca DOM.

Na druhej strane JAXB je prepojený so schémou XML. Toto je problém, ktorý vznikol pri prvom vydaní JAXB, pretože nedokázal podporovať všetky funkcie schémy XML tak, že dokázal podporovať iba DTD (Definície typu dokumentu). To v skutočnosti znamenalo, že prvé vydanie JAXB nemohlo zabezpečiť čitateľné väzby. JAXB 2.0 zjednodušil vývojové spracovanie, pretože poskytuje plnú podporu schém XML, mapovanie schém Java do XML, prenosnosť a vývoj schém. Ďalej spoločnosť JAXB zaviedla flexibilné rozčlenenie obsahu XML, ktoré je neplatné a nerozhoduje sa o tom, či ukončí rozčlenenie alebo nie..

Zhrnutie:

- XMLBeans je lepší, ak uprednostňujete robustnejšie funkcie XML, napr. XQueries a priamy prístup k dokumentom XML. Jeho použitie prichádza na úkor správy a výkonu pamäte.

- JAXB je preferovaný, ak chcete vyšší výkon a správu pamäte, aj keď to nie je také dôkladné ako XMLBeans.

- JAXB by sa mal zvoliť, ak ste po jednoduchej konverzii dokumentov XML.

- Viazanie prispôsobenia nastane najlepšie v JAXB na rozdiel od XMLBeans.

- JAXB ponúka efektívne využitie pamäte na rozdiel od použitia XMLBeans, čo je proces závislý od pamäte.

- Ak si želáte zrušiť zdieľanie dokumentu XML, JAXB je vaša voľba, pretože XMLBeans čelia ťažkostiam pri výmene. Po väzbovej schéme môžete použiť ObjectFactory na vytvorenie objektu a použiť generované metódy na tvorbu obsahu.