具有Java属性的XML层次结构

时间:2009-09-11 09:18:49

标签: java xml properties

假设我有一个带有一些原始实例变量的类Foo。我用XML文件中的属性初始化它们。现在每个Foo也有一个Bar作为变量,而变量又有自己的属性。由于它们与封闭对象相关联,因此将它们保存在同一文件中是有意义的。我应该如何格式化XML以便它也可以初始化对象?

3 个答案:

答案 0 :(得分:5)

使用Spring。它专门设计用于允许这种类型的对象初始化,包括处理对象间引用。

答案 1 :(得分:2)

查看XStream,它允许您轻松地将Java对象层次结构序列化/反序列化为XML。

最简单的是它可以使用POJO,它不需要额外的工作(不需要接口/基类等)。但您可以自定义序列化和反序列化以重命名元素等,以适应现有的XML框架。

答案 2 :(得分:0)

JAXB值得一看:

public class JaxbDemo {

  @XmlRootElement
  public static class Foo {
    @XmlElement public Bar bar;
  }

  public static class Bar {
    @XmlAttribute public int baz;
  }

  public static void main(String[] args) {
    String xml = "<foo><bar baz='123'/></foo>";
    Foo foo = JAXB.unmarshal(new StringReader(xml), Foo.class);
    System.out.println(foo.bar.baz);
  }
}

(公共成员用于演示目的。)