在不改变模型的情况下对数据模型进行编码/解密的最佳方法是什么?

时间:2012-10-11 18:28:28

标签: java xml

我想生成数据模型的xml表示,我不想修改我的模型addind,如JAXB和anotattions来描述它。 我想要一个透明和灵活的设计。

有什么想法吗?

谢谢!

编辑 - Ading示例

public class Figure {
private String name;
private String color;
public Figure(String name, String color) {
    super();
    this.name = name;
    this.color = color;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getColor() {
    return color;
}
public void setColor(String color) {
    this.color = color;
}

并且是xml:

<Figure>
<name>square</name>
<color>red</color>
</Figure>

这是一个微不足道的例子,我真正的问题是: 如何在不更改“解析器/编码器/解码器”的情况下支持对象组合或模型更改?

3 个答案:

答案 0 :(得分:1)

使用XMLEncoder

XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("Test.xml")));
e.writeObject(new Figure("car", "blue"));
e.close();

或者查看xstream

XStream xstream = new XStream(new DomDriver());
xstream.alias("Figure", Figure.class);
String xml = xstream.toXML(new Figure("car", "blue"));

答案 1 :(得分:1)

使用Xstream。 你会create a custom Converter class,并使用canConvert()方法将你的类(你的模型)映射到它。如果您要创建自定义Converter类,则不需要在模型类中添加注释。

答案 2 :(得分:0)

蓖麻 - http://www.castor.org/怎么样?