1

编组时是否可以在不使用@XmlTransient 的情况下忽略某些元素

JAXBContext jc = JAXBContext.newInstance(Customer.class);

        Marshaller marshaller = jc.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

没有的原因是因为其他使用 xml bean 的开发人员可能想要编组这些元素。

4

2 回答 2

0

伙计们,

我认为简单的答案是创建另一类没有这些字段的“客户”模型

class CustomerA{

@XmlElement
private String name;

//@XmlElement   // Element that I do not want to keep
//Private Date dob;

}

我需要做的就是将值设置到 CustomerA 中,并且由于 java 通过对象的值引用传递,我只需要一点引用字节。

我相信这是最便宜和最简单的方法,我可以控制该域。

于 2013-09-15T23:00:12.573 回答
0

如果要从 XML 中排除某些字段,可以将其值设置为null.
null字段未编组为 XML
示例:
DTO:

class Customer
{
   private String a;
   // getters/setter
}  

逻辑:

Customer customerInstance = ...; // some business logic with Customer instance
//... business logic
customerInstance.setA(null);     // set null before marshalling
// marshalling

aXML 中将不存在属性

于 2013-09-15T18:41:15.183 回答