Skip to content

Commit 087e20b

Browse files
eberhardtjcboehme
authored andcommitted
Add option to XmlEncoder for setting the xml header
The option allows to configure the encoding and version attributes in the xml header.
1 parent a457567 commit 087e20b

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

metafacture-xml/src/main/java/org/metafacture/xml/SimpleXmlEncoder.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)