Question

Quel genre de bibliothèques open-source sont disponibles pour convertir XML en un objet de valeur java?

Dans .Net, il y a une façon de le faire facilement avec cette sérialisation XML et attributs. J'imagine-il un parallèle en Java. Je sais comment faire cela avec un analyseur DOM ou SAX, mais je me demandais s'il y avait un moyen plus facile.

J'ai un format XML prédéfini qui ressemble à quelque chose comme ça.

<FOOBAR_DATA>
  <ID>12345</ID>
  <MESSAGE>Hello World!</MESSAGE>
  <DATE>22/04/2009</DATE>
  <NAME>Fred</NAME>
</FOOBAR_DATA>

Dans .Net, je peux faire quelque chose comme cela pour lier mon objet aux données.

using System;
using System.Xml.Serialization;

    namespace FooBarData.Serialization
    {
      [XmlRoot("FOOBAR_DATA")]
      public class FooBarData
  {
    private int _ID = 0;
    [XmlElement("ID")]
    public int ID
    {
      get { return this._ID; }
      set { this._ID = value; }
    }

    private string _Message = "";
    [XmlElement("MESSAGE")]
    public string Message
    {
      get { return this._Message; }
      set { this._Message = value; }
    }

    private string _Name = "";
    [XmlElement("NAME")]
    public string Name
    {
      get { return this._Name; }
      set { this._Name = value; }
    }

    private Date _Date;
    [XmlElement("DATE")]
    public Date Date
    {
      get { return this._Date; }
      set { this._Date= value; }
    }

    public FooBarData()
    {
    }
  }
}

Je me demandais s'il y avait une méthode utilisant des annotations, similaires à .Net ou peut-être Hibernate, qui me permettra de lier mon objet de valeur au-XML prédéfini.

Était-ce utile?

La solution

J'aime XStream beaucoup, en particulier par rapport à JAXB - contrairement JAXB, XStream n'a pas besoin de vous ont un XSD. Il est génial si vous avez une poignée de classes à sérialiser et désérialiser XML, sans lourde-ness d'avoir besoin de créer un XSD, exécutez jaxc pour générer des classes à partir de ce schéma, etc. XStream d'autre part est assez léger.

(Bien sûr, il y a beaucoup de fois où JAXB est approprié, par exemple lorsque vous avez un XSD préexistant qui correspond à l'occasion ...)

Autres conseils

JAXB vous permet de convertir un schéma XML (XSD) fichier dans une collection de classes Java. Cela peut être plus « structuré » que l'approche XMLEncoder / Serializable cette réponse Andy (excellent, par la voie) fournit.

Java a XMLEncoder que vous pourriez être en mesure d'utiliser pour sérialiser un objet au format XML. La seule exigence est que votre objet implémente « Serializable. »

Voici un exemple:

http://www.developer.com/java/web/article php / 1377961

JiBX est une autre option.

Pour plus d'opinions sur les données Java-à-liaison XML, consultez sérialisation XML en Java?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top