Razlike između JAXB i XmlBeans

Anonim

JAXB vs XmlBeans

JAXB je dio JavaEE standarda i odnosi se na Java arhitekturu za XML vezivanje. To je ovaj proces koji se koristi za obradu XML dokumenata. Upotreba JAXB-a je poželjna jer nudi alternativu za obradu XML dokumenata u Javi, a da nužno ne mora razumjeti sve male detalje XML tehnologije. JAXB je dostupan u aplikacijama kompatibilnim s JavaEE 5 kao paketom otvorenog koda. Paket omogućuje vezivanje podataka i jednostavnost čitanja i pristupa XML dokumentima napisanim u Java programskom jeziku. XMLBeans, s druge strane, otvoreni je projekt koji su razvili BEA sustavi, a oni pružaju sličnu funkcionalnost za JAXB prilikom pristupa pristupu XML dokumentima. Dobro poznavanje pozadine u XML-u ipak je potrebno kada se bave XMLBeansom. Postoje, međutim, razlike koje su zabilježene između dva i opisane su u nastavku.

Razlike

Prije razvoja JAXB i XMLBeans, jedini način na koji se XML može obraditi bio je korištenje softvera koji analizira jezik SAX (Simple API for XML) ili korištenje DOM-a (Document Object Model), oba jezika analizirajući JAXP (Java API za obradu API-ja). Razvojni programer morao je stvoriti kod koji je usmjeren na pozivanje DOM-a ili SAX-a putem JAXP-a, tako da kôd može analizirati jezik u XML dokumentu. Nakon skeniranja, kôd je obično razbio kôd u različite dijelove kako bi mogao biti dostupan ciljanim aplikacijama.

Glavna razlika zabilježena između JAXB i XMLBeans je pristup koji svaki od njih traži marširanje i unmarshalling XML dokumenata. XMLBeans obrađuje cijeli XML dokument bez prolaska kroz Java pretvorbu jer je pokazano da je izgubljen podatkovni integritet XML dokumenta. XMLBeans kreira pokazivač koji skenira putem XML dokumenta. Pomoću pokazivača možete pristupiti bilo kojem elementu dokumenta, uključujući podatke o shemi ili komentare, jer se održava vjernost dokumenta. XMLBeans također omogućuje izvršavanje XQuerya u istom dokumentu. Daljnji pristup tipiziran je za XMLBeans s prilično općenitom vrstom pristupa koji postaje odraz API-ja. XMLBeans, kao što je već spomenuto, zahtijeva ogromno znanje o XML-u i proširenje SAX ili čak DOM.

JAXB, s druge strane, dolazi vezan uz XML shemu. Ovo je nakon problema koji je nastao s prvim izdanjem JAXB jer nije mogao podržati sve značajke XML shema koje mogu samo podržavati DTD-ove (definicije vrste dokumenta). To je u stvari značilo da prvo izdanje JAXB nije moglo osigurati čitljiva povezivanja. JAXB 2.0 je preradio razvoj prilično jednostavan jer pruža potpuni XML shema podrške, Java za XML shemu mapiranje, prenosivost i evoluciju sheme. Nadalje, JAXB je uveo fleksibilni unmarshalling XML sadržaja koji je nevažeći i neodlučan je li prekinuti unmarshalling ili ne.

Sažetak:

- XMLBeans je bolji ako želite više robusnih XML sadržaja, npr. XQueries i izravni pristup dokumentu XML-a. Njegova uporaba dolazi na štetu upravljanja memorijom i performansi.

- JAXB je poželjan ako želite veću učinkovitost i upravljanje memorijom, iako nije baš temeljita kao i XMLBeans.

- JAXB bi trebao biti izabran ako ste nakon jednostavne XML dokument pretvorbe.

- Prilagođavanje veze javlja se najbolje u JAXB za razliku od XMLBeans.

- JAXB nudi učinkovito korištenje memorije za razliku od korištenja XMLBeans-a, koji je proces memorije.

- Ako želite unmarshal XML dokumenta, JAXB je vaš izbor jer se XMLBeans suočava s teškoćama u unmarshallingu. Po shemi vezivanja, možete upotrijebiti ObjectFactory za stvaranje objekata i zapošljavati postavljene metode u stvaranju stvaranja sadržaja.