我目前正在开发一个使用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对象创建快捷方式模板,这些模板可以动态配置。
答案 0 :(得分:0)
如果您的目标是更紧凑的XML,为什么不使用@XStreamAsAttribute
,以便获得<TestClass format="foo"/>
之类的输出?否则,是的,您将不得不编写一个自定义转换器来完全按照您的需要进行操作。