Verschillen tussen JAXB en XmlBeans Verschil tussen
JAXB versus XmlBeans
JAXB is een onderdeel van de JavaEE-normen en verwijst naar Java-architectuur voor XML-binding. Het is dit proces dat wordt gebruikt voor de verwerking van XML-documenten. Het gebruik van JAXB heeft de voorkeur omdat het een alternatief biedt voor de verwerking van XML-documenten in Java zonder noodzakelijkerwijs alle kleine details van XML-technologie te hoeven begrijpen. JAXB is beschikbaar in JavaEE 5-compatibele applicaties als een open source-pakket. Het pakket zorgt voor databinding en leesgemak en toegang tot XML-documenten geschreven in de Java-programmeertaal. XMLBeans is echter een open-sourceproject dat is ontwikkeld door BEA-systemen en deze bieden vergelijkbare functionaliteit als JAXB bij het toestaan van toegang tot XML-documenten. Een goede achtergrondkennis in XML is echter vereist bij het omgaan met XMLBeans. Er zijn echter verschillen opgemerkt tussen de twee en ze worden hieronder besproken.
Verschillen
Vóór de ontwikkeling van JAXB en XMLBeans was de enige manier waarop XML kon worden verwerkt, het gebruik van SAX-software voor het analyseren van taal (Simple API for XML) of het gebruik van de DOM (Document Object Model), beide analysetalen waarin JAXP voorziet (Java API voor API-verwerking). De ontwikkelaar moest code maken die was gericht op het oproepen van DOM of SAX via JAXP, zodat de code de taal in het XML-document kon analyseren. Bij het scannen verbrak de code meestal de code in afzonderlijke stukken, zodat deze beschikbaar kon worden gemaakt voor de beoogde toepassingen.
Het belangrijkste verschil tussen JAXB en XMLBeans is de benadering die elk inneemt bij het rangschikken en het unmarshalling van XML-documenten. XMLBeans verwerkt het volledige XML-document zonder door de Java-conversie te gaan, omdat er is aangetoond dat de gegevensintegriteit van het XML-document verloren is gegaan. XMLBeans heeft een cursor gemaakt die het XML-document doorzoekt. Met de cursor kan elk element van het document worden geopend, inclusief schema-informatie of opmerkingen, omdat de getrouwheid van het document wordt behouden. XMLBeans biedt ook de uitvoering van XQuery binnen hetzelfde document. Verdere getypte toegang wordt geboden door XMLBeans met een nogal generiek toegangstype dat een weerspiegeling van API wordt. XMLBeans vereist, zoals eerder vermeld, een enorme kennis van XML en, bij uitbreiding, SAX of zelfs DOM.
JAXB, aan de andere kant, komt gebonden aan het XML-schema. Dit is het gevolg van een probleem dat ontstond met de eerste JAXB-release omdat het niet in staat was om alle functies van XML-schema's alleen DTD's (Document Type Definitions) te ondersteunen. Dit betekende in feite dat de eerste release van JAXB geen leesbare koppelingen kon bieden.JAXB 2. 0 heeft de ontwikkeling gemakkelijk gemaakt, omdat het voorziet in volledige ondersteuning voor XML-schema's, schema's voor Java-naar-XML-schema's, portabiliteit en schema's. Verder heeft JAXB de flexibele unmarshalling van XML-inhoud geïntroduceerd die ongeldig is en niet zeker is of unmarshalling moet worden beëindigd of niet.
Samenvatting:
- XMLBeans is beter als u de voorkeur geeft aan meer robuuste XML-functies e. g. XQueries en directe XML-documenttoegang. Het gebruik ervan gaat ten koste van geheugenbeheer en prestaties.
- JAXB heeft de voorkeur als u hogere prestaties en geheugenbeheer wilt, hoewel het niet zo grondig is als XMLBeans.
- JAXB moet worden gekozen als u op zoek bent naar een eenvoudige XML-documentconversie.
- Bindende aanpassing gebeurt het best in JAXB in tegenstelling tot XMLBeans.
- JAXB biedt efficiënt geheugengebruik in tegenstelling tot het gebruik van XMLBeans, een proces dat afhankelijk is van het geheugen.
- Als u een XML-document wilt ontmaskeren, is JAXB uw keuze, omdat XMLBeans problemen ondervindt bij het unmarshalling. Na het bindende schema kunt u het gebruik van ObjectFactory voor het maken van objecten gebruiken en set-methoden gebruiken bij het genereren van inhoudcreatie.