什么样的开放源码库可用于XML转换成Java值对象?

在净,有一种方法可以容易地与XML序列化和属性做到这一点。我会想象有一些Java中的并行。我知道如何与DOM和SAX解析器做到这一点,但我不知道是否有一个更简单的方法。

我有一个看起来像这样预先定义的XML格式。

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

在净,我可以做这样的事情到我的对象绑定到的数据。

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

我想知道是否有使用注释,类似于.NET或也许休眠的方法,这将允许我值对象绑定到所述预定义的XML。

有帮助吗?

解决方案

我喜欢 XStream的了很多,特别是相对于JAXB - 不像JAXB,XStream的不需要你来有一个XSD。这是伟大的,如果你有你想要序列化和反序列化到XML类屈指可数,而无需创建一个XSD,运行jaxc而产生与模式等的XStream类的重手岬,另一方面是相当轻量化。

(当然,也有大量的时间,其中JAXB为宜,例如当你有一个预先存在的XSD适合的场合...)

其他提示

JAXB 允许你转换一个XML Schema(XSD)文件转换成Java类的集合。这可能是更“结构化”比XMLEncoder / Serializable办法,Andy的(优,顺便)答案提供。

Java有一个 XMLEncoder ,你可能可以使用序列化对象到XML。唯一的要求是,你的对象实现“序列化。”

下面是一个例子:

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

JiBX的是另一种选择。

有关Java到XML数据的更多的意见结合,请参见 XML序列化在Java中?

scroll top