Wenn Sie sich den Xstream ansehen Dokumentation, Sie geben eindeutig an, dass Sie den XML -Prolog selbst hinzufügen müssen:
Why does XStream not write an XML declaration?
XStream is designed to write XML snippets, so you can embed its output into
an existing stream or string. You can write the XML declaration yourself into
the Writer before using it to call XStream.toXML(writer).
Der folgende Code sollte funktionieren. Ich habe den größten Teil Ihres Codes entfernt, also müssen Sie ihn zurücksetzen. Der Zweck ist nur, Ihnen ein hartes Beispiel zu geben:
private static void serializeData(Object diagData) throws Exception {
XStream xstream = new XStream();
xstream.processAnnotations(DiagData.class);
FileOutputStream fileOutputStream = null;
Writer writer = new PrintWriter(new File(your file));
CompactWriter compactWriter = new CompactWriter(writer);
try {
writer.write(your xml prolog);
writer.write(your stylesheet);
xstream.marshal(diagData, compactWriter);
} catch (FileNotFoundException e1) {
} catch (Exception e) {
} finally {
release resources
}
}