Jaxb XmlAdapter无法解组

时间:2018-06-12 10:59:13

标签: java xml jaxb unmarshalling jaxb2

在我的项目中,我使用unmarshal来布尔,一切正常。 现在我想处理"是"和"不" (也不仅仅是" true"," false")。

所以为了做到这一点,我试图使用XmlAdapter将String解组为布尔值,但我总是得到我的默认值而不是Xml值(如果我没有给出,则为null它默认)。 我究竟做错了什么?我很安静,确保它并不复杂......

我试图将我的项目简化为这样,所以我的问题很清楚:

我的适配器:

public class BooleanAdapter extends XmlAdapter<String, Boolean> {

    @Override
    public Boolean unmarshal(String s) throws Exception {
        return new Boolean("yes".equalsIgnoreCase(s) || "true".equalsIgnoreCase(s));
    }

    @Override
    public String marshal(Boolean b) throws Exception {
        return b.toString();
    }
}

我的XmlRootElement:

@XmlRootElement(name = "package")
public class Package {

    private Boolean x;

    @XmlAttribute(name = "x")
    @XmlJavaTypeAdapter(BooleanAdapter.class)
    public Boolean isX() {
        return x;
    }

    public void setX(String x){
        this.revoked = x;
    }
}

我的Xml文件:

<package x="true">
</package>

谢谢! :)

0 个答案:

没有答案