XStream:使用class属性的值作为元素名称

时间:2012-05-11 11:47:55

标签: xstream

class属性是一个热门的XStream主题:没有人想要它。

摆脱它的正确方法是编写一个自定义转换器(其他提议的调整仅在编组时工作,而不是在解组时)。一个好的工作示例是here

不幸的是我需要一个以不同方式工作的转换器:我想使用class属性的值作为实际包含该属性的元素的名称。例如,而不是

<codecData class="videoCodec">
...
</codecData>

<codecData class="audioCodec">
...
</codecData>

我想要

<videoCodec>
...
</videoCodec>

<audioCodec>
...
</audioCodec>

这样做的正确方法是什么?我写这种转换器的尝试失败了。

假设我有

public class MediumData {
    public CodecData codecData;
    public String otherInfo;
}

public abstract class CodecData {
    public String name;
}

public class VideoCodec extends CodecData {
    public String videoInfo;
}

public class AudioCodec extends CodecData {
    public String audioInfo;
}

谢谢。

0 个答案:

没有答案