我强烈建议使用不存在节点或xsi:nil =“true”属性来表示null.这最适用于模式验证(即< age />或< age>< / age>不是xsd:int类型的有效元素.但是,如果您不能在这里完成您的用例:
标准JAXB行为
import javax.xml.bind.annotation.*;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Address {
private String street;
@XmlElement(nillable=true)
private String city;
}
以下是两个字段的值为空的XML输出.
MOXY – 覆盖此类行为
MOXy不提供注释来为类中的所有属性指定空策略.但是,您可以通过@XmlCustomizer注释来使用DescriptorCustomizer,并调整本机MOXy映射元数据来完成相同的操作.
DescriptorCustomizer(AddressCustomizer)
import org.eclipse.persistence.config.DescriptorCustomizer;
import org.eclipse.persistence.descriptors.ClassDescriptor;
import org.eclipse.persistence.mappings.DatabaseMapping;
import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;