Java 在不更改模型的情况下对数据模型进行编码/解密的最佳方法?
我想生成一个数据模型的xml表示,我不想修改我的模型添加项,比如JAXB和Anotations来描述它。 我想要一个透明和灵活的设计 有什么想法吗 谢谢 编辑示例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; }
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"));