0

我目前正在开发一个使用 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 对象创建快捷模板,这些模板可以动态配置。

4

1 回答 1

0

如果您的目标是更紧凑的 XML,为什么不使用@XStreamAsAttribute这样您会得到类似的输出<TestClass format="foo"/>?否则,是的,您将不得不编写一个自定义转换器来完成您想要的操作。

于 2012-09-25T16:09:31.117 回答