JAXB proti XmlBeans
JAXB je del JavaEE standardov in se nanaša na Java Architecture for XML Binding. Ta postopek se uporablja za obdelavo dokumentov XML. Zaželena je uporaba JAXB, saj ponuja alternativo za obdelavo dokumentov XML na Javi, ne da bi bilo treba razumeti vse majhne podrobnosti tehnologije XML. JAXB je na voljo v aplikacijah, skladnih s programom JavaEE 5, kot odprtokodni paket. Paket omogoča zavezujoče podatke in enostavno branje in dostop do dokumentov XML, napisanih v programskem jeziku Java. Po drugi strani je XMLBeans projekt z odprto kodo, ki so ga razvili sistemi BEA, in omogočajo podobno funkcionalnost kot JAXB, saj omogočajo dostop do dokumentov XML. Kljub temu pa je pri delu z XMLBeans potrebno dobro poznavanje XML. Vendar pa obstajajo razlike med obema in so obravnavane v nadaljevanju.
Razlike
Pred razvojem JAXB in XMLBeans je bil edini način, da je bilo mogoče obdelati XML, z uporabo programske opreme za analizo jezika SAX (Simple API for XML) ali z uporabo DOM (Document Object Model), obeh analiz jezikov, ki jih predvideva JAXP (Java API za obdelavo API-ja). Razvijalec je moral ustvariti kodo, ki je bila usmerjena v priklic DOM ali SAX prek JAXP, da bi lahko koda analizirala jezik v dokumentu XML. Po skeniranju je koda običajno razčlenila kodo na različne koščke, tako da je bila dostopna ciljnim aplikacijam.
Glavna razlika med JAXB in XMLBeans je pristop, ki ga vsak upošteva pri pregledu in razstavljanju dokumentov XML. XMLBeans obdeluje celoten dokument XML, ne da bi šel skozi pretvorbo Java, saj se je pokazalo, da je celovitost podatkov dokumenta XML izgubljena. XMLBeans ima ustvarjen kazalec, ki pregleduje dokument XML. S kazalcem je mogoče dostopati do katerega koli elementa dokumenta, vključno s podatki o shemi ali komentarji, saj se ohrani verodostojnost dokumenta. XMLBeans predvideva tudi izvedbo XQuery v istem dokumentu. Nadaljnji tipkani dostop omogočajo XMLBeans s precej splošnim tipom dostopa, ki postane odraz API-ja. Kot je bilo že omenjeno, XMLBeans zahteva veliko znanja o XML in, povedano, SAX ali celo DOM.
Po drugi strani je JAXB vezan na shemo XML. Sledi težava, ki je nastala s prvo izdajo JAXB, saj ni mogel podpreti vseh funkcij sheme XML, ki lahko podpirajo samo DTD (definicije vrste dokumenta). To je dejansko pomenilo, da prva izdaja JAXB ne bi mogla zagotoviti berljivih vezi. JAXB 2.0 je razvojno obdelavo precej olajšal, saj omogoča popolno podporo shem XML, preslikavo sheme Java v XML, prenosljivost in razvoj shem. Poleg tega je JAXB uvedel prožno razčlenitev vsebine XML, ki je neveljavna in ni odločeno, ali naj prekine razveljavitev ali ne.
Povzetek:
- XMLBeans je boljši, če imate raje bolj robustne funkcije XML, npr. XQueries in neposreden dostop do dokumentov XML Njegova uporaba prihaja na račun upravljanja pomnilnika in zmogljivosti.
- JAXB je najprimernejši, če želite boljše delovanje in upravljanje pomnilnika, čeprav ni tako temeljit kot XMLBeans.
- JAXB bi morali izbrati, če ste po preprosti pretvorbi dokumentov XML.
- Prilagoditev vezave je najboljša v JAXB v nasprotju s XMLBeans.
- JAXB ponuja učinkovito uporabo pomnilnika v nasprotju z uporabo XMLBeans, kar je proces, ki temelji na pomnjenju.
- Če želite razstaviti dokument XML, je vaša izbira JAXB, saj se XMLBeans sooča s težavami pri razstavljanju. Po zavezujoči shemi lahko uporabite ObjectFactory za ustvarjanje predmetov in uporabite generirane metode pri ustvarjanju vsebine.