如何使用XStream制作预配置的模板

时间:2012-09-25 15:23:57

标签: java xml xstream

我目前正在开发一个使用XStream从XML创建对象的系统。一个示例对象是

@XStreamAlias("TestClass")
public class TestClass{

@XStreamAlias("format")
private String format;

public String getFormat(){
    return format;
}

public void setFormat(String format){
    this.format = format;
}
}

这个类有一个字段,一个格式字段,以及从中构造它的XML看起来像:

<TestClass>
    <format>foo</format>
</TestClass>

现在我想以特定格式实例化此类的不同实例。例如,我想要一个格式为foo的TestClass对象和一个格式为bar的对象。但不是生产

<TestClass>
    <format>foo</format>
</TestClass>

<TestClass>
    <format>bar</format>
</TestClass>

我想使用某种别名系统,以便上面的XML不是必需的,而是我可以使用

<TestClassFoo />
<TestClassBar />

当然,名称不需要包含指定的格式。

我看到必须有一个自定义转换器,但我再次不想硬编码每个别名,而是从XML加载这些(是的,它变得复杂)。其结果是为不同的XML对象创建快捷方式模板,这些模板可以动态配置。

1 个答案:

答案 0 :(得分:0)

如果您的目标是更紧凑的XML,为什么不使用@XStreamAsAttribute,以便获得<TestClass format="foo"/>之类的输出?否则,是的,您将不得不编写一个自定义转换器来完全按照您的需要进行操作。