I use JAXB to create XML messages. The XML I need to create is (for the sake of simplicity):
As @Tom Hawtin - tackline said
and is same. Parsers will give you "".
You have to to put nillable on your header annotation
@XmlElement(nillable=true, required=true)
public String getHeader() {
return header;
}
I hope this code will generate following XML for null value.
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;
}
prints