Différences entre JAXB et XmlBeans Différence entre

Anonim

JAXB vs XmlBeans

JAXB fait partie des standards JavaEE et fait référence à Java Architecture for XML Binding. C'est ce processus qui est utilisé pour le traitement des documents XML. L'utilisation de JAXB est préférée car elle offre une alternative pour le traitement de documents XML en Java sans nécessairement avoir à comprendre tous les petits détails de la technologie XML. JAXB est disponible dans les applications compatibles JavaEE 5 en tant que package open source. Le paquet permet la liaison de données et la facilité de lecture et d'accès aux documents XML écrits dans le langage de programmation Java. XMLBeans, d'autre part, est un projet open-source développé par les systèmes BEA, et ceux-ci fournissent des fonctionnalités similaires à JAXB en permettant l'accès aux documents XML. Une bonne connaissance de base en XML est cependant requise pour traiter les XMLBeans. Il y a, cependant, des différences notées entre les deux et ils sont discutés ci-dessous.

Différences

Avant le développement de JAXB et de XMLBeans, la seule façon de traiter XML était d'utiliser un langage d'analyse de logiciel SAX (Simple API for XML) ou l'utilisation de DOM (Document Object Model), les deux analysant les langages fournis par JAXP (API Java pour le traitement des API). Le développeur a dû créer du code qui visait à appeler DOM ou SAX via JAXP afin que le code puisse analyser la langue dans le document XML. Lors de la numérisation, le code décomposait généralement le code en plusieurs parties distinctes afin qu'il puisse être mis à la disposition des applications ciblées.

La principale différence notée entre JAXB et XMLBeans est l'approche que chacun adopte pour le marshalling et le unmarshalling des documents XML. XMLBeans traite l'ensemble du document XML sans passer par la conversion Java car l'intégrité des données du document XML a été montrée comme perdue. XMLBeans a créé un curseur qui analyse le document XML. Avec le curseur, il est possible d'accéder à n'importe quel élément du document, y compris aux informations de schéma ou aux commentaires, car la fidélité du document est conservée. XMLBeans fournit également l'exécution de XQuery dans le même document. Un autre accès typé est fourni par XMLBeans avec un type d'accès plutôt générique qui devient un reflet de l'API. XMLBeans, comme mentionné précédemment, nécessite une vaste connaissance de XML et, par extension, SAX ou même DOM.

JAXB, d'autre part, est lié au schéma XML. Cela fait suite à un problème survenu avec la première version de JAXB car il était incapable de prendre en charge toutes les fonctionnalités de schéma XML pouvant uniquement prendre en charge les définitions DTD (Document Type Definitions). Ceci, en effet, signifiait que la première version de JAXB ne pouvait pas fournir des liaisons lisibles.JAXB 2. 0 a rendu le traitement de développement assez simple car il permet la prise en charge de schémas XML complets, le mappage de schémas Java vers XML, la portabilité et l'évolution des schémas. De plus, JAXB a introduit le démontage flexible du contenu XML qui est invalide et est indécis s'il faut mettre fin à unmarshalling ou non.

Résumé:

- XMLBeans est préférable si vous préférez des fonctionnalités XML plus robustes e. g. XQueries et accès direct aux documents XML. Son utilisation se fait au détriment de la gestion de la mémoire et des performances.

- JAXB est préférable si vous souhaitez améliorer la gestion des performances et de la mémoire, même si elle n'est pas aussi complète que XMLBeans.

- JAXB devrait être choisi si vous recherchez une simple conversion de document XML.

- La personnalisation de la liaison se fait mieux dans JAXB que dans XMLBeans.

- JAXB offre une utilisation efficace de la mémoire par opposition à l'utilisation de XMLBeans qui est un processus basé sur la mémoire.

- Si vous désirez dématérialiser un document XML, JAXB est votre choix car XMLBeans est confronté à des difficultés de démasquage. Lors de la création d'un schéma de liaison, vous pouvez utiliser ObjectFactory pour la création d'objets et utiliser des méthodes set dans la création de contenu.