如何将XML转换为java值对象?
问题描述:
什么样的开源库可用于将XML转换为java值对象?如何将XML转换为java值对象?
在.Net中,有一种方法可以通过xml序列化和属性轻松实现。我会想象在Java中有一些平行。我知道如何用DOM或SAX解析器来做到这一点,但我想知道是否有更简单的方法。
我有一个预定义的XML格式,看起来像这样。
<FOOBAR_DATA>
<ID>12345</ID>
<MESSAGE>Hello World!</MESSAGE>
<DATE>22/04/2009</DATE>
<NAME>Fred</NAME>
</FOOBAR_DATA>
在.Net中,我可以这样做,将我的对象绑定到数据。
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)
非常容易使用。我以前听说过这个,但是我没有投入使用。谢谢! – Kevin 2009-04-23 00:56:23