Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在编组过程中忽略元素,而不使用@XmlTransient_Java_Xml_Jaxb - Fatal编程技术网

Java 在编组过程中忽略元素,而不使用@XmlTransient

Java 在编组过程中忽略元素,而不使用@XmlTransient,java,xml,jaxb,Java,Xml,Jaxb,在编组时是否可以忽略某些元素而不使用@XmlTransient 不包含的原因是,其他使用xml bean的开发人员可能希望封送这些元素。如果要从xml中排除某些字段,可以将其值设置为null。 空字段未编组为XML 例子: DTO: 逻辑: Customer customerInstance = ...; // some business logic with Customer instance //... business logic customerInstance.setA(null);

在编组时是否可以忽略某些元素而不使用@XmlTransient


不包含的原因是,其他使用xml bean的开发人员可能希望封送这些元素。

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

逻辑:

Customer customerInstance = ...; // some business logic with Customer instance
//... business logic
customerInstance.setA(null);     // set null before marshalling
// marshalling
属性a在XML中将不存在

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

class CustomerA{

@XmlElement
private String name;

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

}
我所需要做的就是将值设置到CustomerA中,因为java传递对象的值引用,所以我只产生一点引用字节


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

为什么没有?您应该澄清您的需求是什么。没有的原因是其他使用xml bean的开发人员可能希望封送这些元素。我想说,但我的观点是,如果每个开发人员都选择序列化或不序列化,那么您将看到一个大混乱。所以不要这样做..客户customerInstance=新客户;customerInstance.setAnull;对我来说,这听起来像是一个否定
Customer customerInstance = ...; // some business logic with Customer instance
//... business logic
customerInstance.setA(null);     // set null before marshalling
// marshalling
class CustomerA{

@XmlElement
private String name;

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

}