Skip to content

Commit 5abd10a

Browse files
author
mgeipel
committed
fixed #48
1 parent 0156225 commit 5abd10a

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

src/main/java/org/culturegraph/mf/stream/sink/SimpleXmlWriter.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,20 @@ public final class SimpleXmlWriter extends DefaultStreamPipe<ObjectReceiver<Stri
5454
private String recordTag = "record";
5555
private String rootTag = "records";
5656
private boolean start = true;
57+
private boolean separateRoots;
58+
private boolean writeXmlHeader=true;
5759

5860
public void setRootTag(final String rootTag) {
5961
this.rootTag = rootTag;
6062
}
63+
64+
public void setWriteXmlHeader(final boolean writeXmlHeader) {
65+
this.writeXmlHeader = writeXmlHeader;
66+
}
67+
68+
public void setSeparateRoots(final boolean separateRoots) {
69+
this.separateRoots = separateRoots;
70+
}
6171

6272
public void setNamespaceFile(final String file) {
6373
final Properties properties = ResourceUtil.loadProperties(file);
@@ -68,7 +78,11 @@ public void setNamespaceFile(final String file) {
6878

6979
private void writeHeader() {
7080
final StringBuilder builder = new StringBuilder();
71-
builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
81+
82+
if(writeXmlHeader){
83+
builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
84+
}
85+
7286
builder.append("<");
7387
builder.append(rootTag);
7488
for (Entry<String, String> entry : namespaces.entrySet()) {
@@ -85,7 +99,7 @@ private void writeHeader() {
8599

86100
@Override
87101
public void startRecord(final String identifier) {
88-
if (start) {
102+
if (separateRoots || start) {
89103
writeHeader();
90104
}
91105
element = new Element(recordTag);
@@ -102,6 +116,9 @@ public void endRecord() {
102116
} else {
103117
getReceiver().process(element.toString());
104118
}
119+
if(separateRoots){
120+
writeFooter();
121+
}
105122
}
106123

107124
@Override

0 commit comments

Comments
 (0)