使用Xstream解组名为“class”的属性时出现问题

时间:2011-02-07 16:32:50

标签: xstream unmarshalling

我有一个名为class的属性的节点。输入XML是:

<Job class="com.test.jobImplementation">
  <Priority>1</Priority>
  ......
</Job>

表示XML的Java类使用Xstream注释注释如下:

@XStreamAlias("Job")
public static class Job {

    @XStreamAsAttribute
    @XStreamAlias("class")
    private String implementationClass;

    @XStreamAlias("Priority")
    private Integer priority

}

当我尝试反序列化XML时,xstream无法返回与问题无关的错误。 (例如,当我用“类”替换属性名称“class”时,它可以正常工作。)

我知道只要XStream无法从XML中分辨出来,就会使用“class”属性 字段声明确切地使用什么类型,但在这种情况下我不能修改XML输入,我必须处理属性“class”。

使用Xstream解组名为“class”的XML属性的任何解决方法?

1 个答案:

答案 0 :(得分:2)

从XStream 1.3.1开始,您可以重新定义这些属性,以允许名称用于您自己的名称。

http://x-stream.github.io/faq.html#Serialization_system_attributes