Как @Tom Хотин, - сказал Тэклайн
<header/>
и <header></header>
одинаковы. Парсеры дадут тебе "".
Вы должны поместить nillable
в заголовок вашей аннотации
@XmlElement(nillable=true, required=true)
public String getHeader() {
return header;
}
Я надеюсь, что этот код сгенерирует следующий XML для значения null
.
import javax.xml.bind.*;
import javax.xml.bind.annotation.*;
@XmlRootElement
public class Request {
public static void main(String[] args) throws JAXBException {
final Request request = new Request();
final JAXBContext context = JAXBContext.newInstance(Request.class);
final Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
Boolean.TRUE);
marshaller.marshal(request, System.out);
System.out.flush();
}
@XmlElement(nillable=true, required=true)
private String header;
}
печать
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
<header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</request>