По сути вам необходимо установить JAXB Marshaller
в режим фрагмента, используя свойство Marshaller.JAXB_FRAGMENT
.Затем напишите заголовок XML самостоятельно.Следующий пример демонстрирует, как это можно сделать с помощью StAX.
Демо
package forum7009289;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamWriter;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(Root.class);
Root root = new Root();
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
XMLOutputFactory xof = XMLOutputFactory.newFactory();
XMLStreamWriter xsr = xof.createXMLStreamWriter(System.out);
xsr.writeStartDocument("1.1");
marshaller.marshal(root, xsr);
xsr.writeEndDocument();
}
}
Root
package forum7009289;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Root {
}
Выход
<?xml version='1.1' encoding='UTF-8'?><root/>