@XmlTransient用于javaBean属性

时间:2011-10-09 07:06:29

标签: xml jaxb marshalling

我感兴趣的是没有编组/解组我的A对象的主要字段。我在不同的地方添加了XmlTransient,但它似乎仍在编组。

有什么想法吗?

这是A类:

    @XmlRootElement(name = "A")
    public class AImpl implements A, Serializable {

    private String attrName;
    private String attrValue;

    @XmlTransient
    private Object principal;

    public class Adapter extends XmlAdapter<AImpl,A> {
        public A unmarshal(AImpl v) { return v; }
        public AImpl marshal(A v) { return (AImpl)v; }
    }

    public String getAttrName() {
    return attrName;
    }
    public void setAttrName(String s) {
    this.attrName = s;
    }

    public String getAttrValue() {
    return attrValue;
    }

    public void setAttrValue(String s) {
    this.attrValue = s;
    }

    @XmlTransient
    public Object getPrincipal() {
    return principal;
    }

    @XmlTransient
    public void setPrincipal(Object o) {
    this.principal = o;
    }
}

以下是我如何编组:

JAXBContext context = JAXBContext.newInstance(AImpl.class);
Marshaller m = context.createMarshaller();
m.setProperty(javax.xml.bind.Marshaller.JAXB_FRAGMENT,true);
m.marshal(al sw);)

1 个答案:

答案 0 :(得分:1)

尝试在课堂上指定@XmlAccessType(XmlAccessType.FIELD)