在XML序列化时去除默认命名空间xmlns:xsd和xmlns:xsi
Jaxb marshaller总是写xsi:nil(即使在@XmlElement(required = false,nillable = true)时)(Jaxb marshaller always writes xsi:nil (even when @XmlElement(required=false, nillable=true)))
参考URL: https://www.it1352.com/1215111.html
JAXB主要用来实现对象和XML之间的序列化和反序列化。
经过测试,如果属性使用 @XmlElement注释(required = false,nillable = true)并且值为null,它将以 xsi:nil ="true"写出。
解决方法:如果只用 @XmlElement 注释它,你将得到你想要的行为。
但是经过测试,这种方式解决方案,如果某个类对象属性没有赋值,就是某个属性值为null情况下,生成的xml中直接就没有了这个属性对应的元素,有时也不是我们想要的。
经过测试,当你需要某个属性元素标签,但是不想给值时,你可以给这个类对象属性赋值为空字符串。