Quel est l'analogue Java de la sérialisation XML de .NET?
java
xml
serialization
Dmitry Shechtman
la source
la source
Réponses:
2008 Answer L'API Java "officielle" pour cela est maintenant JAXB - API Java pour la liaison XML. Voir le didacticiel d'Oracle . L'implémentation de référence se trouve sur http://jaxb.java.net/
Mise à jour 2018 Notez que les modules Java EE et CORBA sont obsolètes dans SE dans JDK9 et doivent être supprimés de SE dans JDK11 . Par conséquent, pour utiliser JAXB, il devra soit être dans votre environnement de classe entreprise existant fourni par votre serveur d'application, par exemple, soit vous devrez l'introduire manuellement.
la source
XStream est assez bon pour sérialiser des objets en XML sans trop de configuration et d'argent! (c'est sous licence BSD).
Nous l'avons utilisé dans l'un de nos projets pour remplacer l'ancienne sérialisation java et cela a fonctionné presque immédiatement.
la source
Projet "Sérialisation XML simple"
Vous voudrez peut-être examiner le projet de sérialisation XML simple . C'est la chose la plus proche que j'ai trouvée de la System.Xml.Serialization dans .Net.
la source
JAXB fait partie de l'édition standard de JDK version 1.6+. Il en est ainsi
FREE
et aucune bibliothèque supplémentaire à télécharger et à gérer. Un exemple simple peut être trouvé iciXStream semble être mort. La dernière mise à jour date du 6 décembre 2008.
Simple
semble aussi simple et simple que JAXB mais je n'ai trouvé aucune information de licence pour l'évaluer pour une utilisation en entreprise.la source
Il convient de mentionner que depuis la version 1.4, Java avait les classes java.beans.XMLEncoder et java.beans.XMLDecoder. Ces classes effectuent un codage XML qui est au moins très comparable à la sérialisation XML et, dans certaines circonstances, peuvent faire l'affaire pour vous.
Si votre classe s'en tient à la spécification JavaBeans pour ses getters et setters, cette méthode est simple à utiliser et vous n'avez pas besoin d'un schéma. Avec les mises en garde suivantes:
Par exemple, prenez la déclaration suivante:
Exécution de ce code:
Se traduirait par le fichier suivant:
la source
java.beans.XMLDecoder
avec les données fournies par l'utilisateur peut introduire des vulnérabilités d'exécution de code arbitraire dans votre code.XMLBeans fonctionne très bien si vous avez un schéma pour votre XML. Il crée des objets Java pour le schéma et crée des méthodes d'analyse faciles à utiliser.
la source
Si vous parlez de la sérialisation XML automatique des objets, consultez Castor :
la source
Habituellement, j'utilise jaxb ou XMLBeans si j'ai besoin de créer des objets sérialisables en XML. Maintenant, je peux voir que XStream pourrait être très utile car il n'est pas intrusif et possède une API vraiment simple. Je vais bientôt jouer avec et l'utiliser probablement. Le seul inconvénient que j'ai remarqué est que je ne peux pas créer mon propre identifiant d'objet pour les références croisées.
@Barak Schiller
Merci d'avoir publié le lien vers XStream!
la source
N'oubliez pas JiBX .
la source
si vous voulez une solution structurée (comme ORM) alors JAXB2 est une bonne solution.
Si vous voulez une sérialisation comme DOT NET, vous pouvez utiliser la persistance à long terme des composants JavaBeans
Le choix dépend de l'utilisation de la sérialisation.
la source
la source