@@ -65,7 +65,7 @@ public final class SimpleXmlEncoder extends DefaultStreamPipe<ObjectReceiver<Str
65
65
private static final String BEGIN_CLOSE_ELEMENT = "</" ;
66
66
private static final String END_CLOSE_ELEMENT = ">" ;
67
67
68
- private static final String XML_HEADER = "<?xml version=\" 1.0 \" encoding=\" UTF-8 \" ?>\n " ;
68
+ private static final String XML_HEADER = "<?xml version=\" %s \" encoding=\" %s \" ?>\n " ;
69
69
private static final String XMLNS_MARKER = " xmlns" ;
70
70
71
71
private final StringBuilder builder = new StringBuilder ();
@@ -75,6 +75,9 @@ public final class SimpleXmlEncoder extends DefaultStreamPipe<ObjectReceiver<Str
75
75
private Map <String , String > namespaces = new HashMap <String , String >();
76
76
private boolean writeRootTag = true ;
77
77
private boolean writeXmlHeader = true ;
78
+ private String xmlHeaderEncoding = "UTF-8" ;
79
+ private String xmlHeaderVersion = "1.0" ;
80
+
78
81
private boolean separateRoots ;
79
82
80
83
private Element element ;
@@ -116,6 +119,10 @@ public void setWriteXmlHeader(final boolean writeXmlHeader) {
116
119
this .writeXmlHeader = writeXmlHeader ;
117
120
}
118
121
122
+ public void setXmlHeaderEncoding (final String xmlHeaderEncoding ) { this .xmlHeaderEncoding = xmlHeaderEncoding ; }
123
+
124
+ public void setXmlHeaderVersion (final String xmlHeaderVersion ) { this .xmlHeaderVersion = xmlHeaderVersion ; }
125
+
119
126
public void setWriteRootTag (final boolean writeRootTag ) {
120
127
this .writeRootTag = writeRootTag ;
121
128
}
@@ -208,7 +215,7 @@ private void sendAndClearData() {
208
215
209
216
private void writeHeader () {
210
217
if (writeXmlHeader ) {
211
- builder .append (XML_HEADER );
218
+ builder .append (String . format ( XML_HEADER , xmlHeaderVersion , xmlHeaderEncoding ) );
212
219
}
213
220
if (writeRootTag ) {
214
221
builder .append (BEGIN_OPEN_ELEMENT );
0 commit comments