\r
XMLStreamWriter delegate;\r
int depth = 0;\r
+ boolean indent = true;\r
\r
public IndentingXMLStreamWriter(XMLStreamWriter delegate) {\r
this.delegate = delegate;\r
}\r
\r
private String getIdent() {\r
- String s = "";\r
+ String s = "\n";\r
for (int i = 0; i < depth; i++)\r
s += " ";\r
return s;\r
\r
@Override\r
public void writeStartElement(String localName) throws XMLStreamException {\r
- delegate.writeCharacters("\n"+getIdent());\r
+ if(indent)\r
+ delegate.writeCharacters(getIdent());\r
delegate.writeStartElement(localName);\r
depth++;\r
+ indent = true;\r
}\r
\r
@Override\r
public void writeStartElement(String namespaceURI, String localName) throws XMLStreamException {\r
- delegate.writeCharacters("\n"+getIdent());\r
+ if (indent)\r
+ delegate.writeCharacters(getIdent());\r
delegate.writeStartElement(namespaceURI, localName);\r
depth++;\r
+ indent = true;\r
}\r
\r
@Override\r
public void writeStartElement(String prefix, String localName, String namespaceURI) throws XMLStreamException {\r
- delegate.writeCharacters("\n"+getIdent());\r
+ if (indent)\r
+ delegate.writeCharacters(getIdent());\r
delegate.writeStartElement(prefix, localName, namespaceURI);\r
depth++;\r
+ indent = true;\r
}\r
\r
@Override\r
public void writeStartDocument() throws XMLStreamException {\r
delegate.writeStartDocument();\r
depth++;\r
+ indent = true;\r
}\r
\r
@Override\r
public void writeStartDocument(String version) throws XMLStreamException {\r
delegate.writeStartDocument(version);\r
depth++;\r
+ indent = true;\r
}\r
\r
@Override\r
public void writeStartDocument(String encoding, String version) throws XMLStreamException {\r
delegate.writeStartDocument(encoding, version);\r
depth++;\r
+ indent = true;\r
}\r
\r
@Override\r
public void writeEndElement() throws XMLStreamException {\r
depth--;\r
- delegate.writeCharacters("\n"+getIdent());\r
+ if(indent)\r
+ delegate.writeCharacters(getIdent());\r
delegate.writeEndElement();\r
+ indent = true;\r
}\r
\r
@Override\r
public void writeEndDocument() throws XMLStreamException {\r
depth--;\r
- delegate.writeCharacters("\n"+getIdent());\r
+ if (indent)\r
+ delegate.writeCharacters(getIdent());\r
delegate.writeEndDocument();\r
+ indent = true;\r
}\r
\r
@Override\r
public void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException {\r
delegate.writeEmptyElement(namespaceURI, localName);\r
+ indent = true;\r
}\r
\r
@Override\r
public void writeEmptyElement(String prefix, String localName, String namespaceURI) throws XMLStreamException {\r
delegate.writeEmptyElement(prefix, localName, namespaceURI);\r
+ indent = true;\r
}\r
\r
@Override\r
public void writeEmptyElement(String localName) throws XMLStreamException {\r
delegate.writeEmptyElement(localName);\r
+ indent = true;\r
}\r
\r
@Override\r
public void writeAttribute(String localName, String value) throws XMLStreamException {\r
delegate.writeAttribute( localName, value);\r
- \r
}\r
\r
@Override\r
\r
@Override\r
public void writeComment(String data) throws XMLStreamException {\r
- delegate.writeComment(data);\r
- \r
+ delegate.writeComment(data); \r
}\r
\r
@Override\r
@Override\r
public void writeCharacters(String text) throws XMLStreamException {\r
delegate.writeCharacters(text);\r
+ indent=false;\r
}\r
\r
@Override\r
public void writeCharacters(char[] text, int start, int len) throws XMLStreamException {\r
delegate.writeCharacters(text, start, len);\r
+ indent=false;\r
}\r
\r
@Override\r