@@ -65,7 +65,7 @@ public final class SimpleXmlEncoder extends DefaultStreamPipe<ObjectReceiver<Str
6565 private static final String BEGIN_CLOSE_ELEMENT = "</" ;
6666 private static final String END_CLOSE_ELEMENT = ">" ;
6767
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 " ;
6969 private static final String XMLNS_MARKER = " xmlns" ;
7070
7171 private final StringBuilder builder = new StringBuilder ();
@@ -75,6 +75,9 @@ public final class SimpleXmlEncoder extends DefaultStreamPipe<ObjectReceiver<Str
7575 private Map <String , String > namespaces = new HashMap <String , String >();
7676 private boolean writeRootTag = true ;
7777 private boolean writeXmlHeader = true ;
78+ private String xmlHeaderEncoding = "UTF-8" ;
79+ private String xmlHeaderVersion = "1.0" ;
80+
7881 private boolean separateRoots ;
7982
8083 private Element element ;
@@ -116,6 +119,10 @@ public void setWriteXmlHeader(final boolean writeXmlHeader) {
116119 this .writeXmlHeader = writeXmlHeader ;
117120 }
118121
122+ public void setXmlHeaderEncoding (final String xmlHeaderEncoding ) { this .xmlHeaderEncoding = xmlHeaderEncoding ; }
123+
124+ public void setXmlHeaderVersion (final String xmlHeaderVersion ) { this .xmlHeaderVersion = xmlHeaderVersion ; }
125+
119126 public void setWriteRootTag (final boolean writeRootTag ) {
120127 this .writeRootTag = writeRootTag ;
121128 }
@@ -208,7 +215,7 @@ private void sendAndClearData() {
208215
209216 private void writeHeader () {
210217 if (writeXmlHeader ) {
211- builder .append (XML_HEADER );
218+ builder .append (String . format ( XML_HEADER , xmlHeaderVersion , xmlHeaderEncoding ) );
212219 }
213220 if (writeRootTag ) {
214221 builder .append (BEGIN_OPEN_ELEMENT );
0 commit comments