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

Java 在不更改模型的情况下对数据模型进行编码/解密的最佳方法?,java,xml,Java,Xml,我想生成一个数据模型的xml表示,我不想修改我的模型添加项,比如JAXB和Anotations来描述它。 我想要一个透明和灵活的设计 有什么想法吗 谢谢 编辑示例 public class Figure { private String name; private String color; public Figure(String name, String color) { super(); this.name = name; this.color = color; }

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

有什么想法吗

谢谢

编辑示例

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>

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

castor-怎么样?

使用:

或者看看:

使用。
您可以使用canConvert()方法将类(模型)映射到它。如果要创建自定义转换器类,则不需要在模型类中添加注释。

这是我找到的第一个。为什么不呢?谢谢,我把这段代码添加到我的示例代码中,但不起作用。如果没有其他答案,我将尝试获得这项工作再次感谢@vfcosta没有理由,只是认为实现可能已经改变了,但似乎没有,而且JDK1已经过去了10年。4@Kummo必须为Figure类编写默认构造函数(无参数)。但是XMLEncoder并不像您在示例中所期望的那样生成xml。@谢谢您的提醒!谢谢你,伙计!这就是我要找的
XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("Test.xml")));
e.writeObject(new Figure("car", "blue"));
e.close();
XStream xstream = new XStream(new DomDriver());
xstream.alias("Figure", Figure.class);
String xml = xstream.toXML(new Figure("car", "blue"));