Pregunta

¿Qué tipo de bibliotecas de código abierto están disponibles para convertir XML en un objeto de valor java?

En .Net, hay una manera de hacer esto fácilmente con la serialización XML y atributos. Me imagino que hay cierto paralelismo en Java. Yo sé cómo hacer esto con un DOM o SAX analizador, pero me preguntaba si había una manera más fácil.

Tengo un formato XML predefinido que se ve algo como esto.

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

En .Net, puedo hacer algo como esto para unir mi oposición de los datos.

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()
    {
    }
  }
}

Me preguntaba si había un método que utiliza anotaciones, similar a .Net o tal vez de hibernación, que permitirá para vendar mi valor del objeto a la predefinido en XML.

¿Fue útil?

Solución

xstream mucho, sobre todo en comparación con JAXB - a diferencia de JAXB, xstream no te necesita para tiene un XSD. Es muy bueno si usted tiene un puñado de clases que desea serializar y deserializar a XML, sin la mano dura-ción de la necesidad de crear un XSD, jaxc funcionar para generar clases a partir de ese esquema, etc. xstream por el contrario es bastante de peso ligero.

(Por supuesto, hay un montón de veces en JAXB es apropiada, por ejemplo, cuando usted tiene un pre-existente XSD que se adapte a la ocasión ...)

Otros consejos

JAXB permite convertir un esquema XML (XSD) presentar en una colección de clases de Java. Esto puede ser más "estructurada" que el enfoque XMLEncoder / Serializable que Andy (excelente, por cierto) proporciona la respuesta.

Java tiene un XMLEncoder que podría ser capaz de utilizar para serializar un objeto a XML. El único requisito es que el objeto implementa "Serializable."

Este es un ejemplo:

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

JiBX es otra opción.

Para más dictámenes sobre los datos en Java-XML a la unión, véase serialización XML en Java?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top