- java.lang.Object
-
- org.xbib.content.xml.stream.EventWriterDelegate
-
- org.xbib.content.xml.stream.IndentingXMLEventWriter
-
- All Implemented Interfaces:
javax.xml.stream.util.XMLEventConsumer,javax.xml.stream.XMLEventWriter,Indentation
public class IndentingXMLEventWriter extends EventWriterDelegate implements Indentation
A filter that indents an XML stream. To apply it, construct a filter that contains anotherXMLEventWriter, which you pass to the constructor. Then call methods of the filter instead of the contained stream. For example:
The filter inserts characters to format the document as an outline, with nested elements indented. Basically, it inserts a line break and whitespace before:XMLEventWriterstream = ... stream = newIndentingXMLEventWriter(stream); stream.add(...);- each DTD, processing instruction or comment that's not preceded by data
- each starting tag that's not preceded by data
- each ending tag that's preceded by nested elements but not data
Indentation can be adjusted by setting the newLine and indent properties. But set them to whitespace only, for best results. Non-whitespace is apt to cause problems, for example when this class attempts to insert newLine before the root element.
-
-
Field Summary
-
Fields inherited from class org.xbib.content.xml.stream.EventWriterDelegate
out
-
Fields inherited from interface org.xbib.content.xml.stream.Indentation
DEFAULT_INDENT, NORMAL_END_OF_LINE
-
-
Constructor Summary
Constructors Constructor Description IndentingXMLEventWriter(javax.xml.stream.XMLEventWriter out)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(javax.xml.stream.events.XMLEvent event)protected voidafterData()protected voidafterEndDocument()protected voidafterEndElement()protected voidafterMarkup()protected voidafterStartElement()protected voidbeforeEndElement()protected voidbeforeMarkup()protected voidbeforeStartElement()java.lang.StringgetIndent()The characters used for one level of indentation.voidsetIndent(java.lang.String indent)Set the characters used for one level of indentation.-
Methods inherited from class org.xbib.content.xml.stream.EventWriterDelegate
add, close, flush, getNamespaceContext, getPrefix, setDefaultNamespace, setNamespaceContext, setPrefix
-
-
-
-
Method Detail
-
getIndent
public java.lang.String getIndent()
Description copied from interface:IndentationThe characters used for one level of indentation.- Specified by:
getIndentin interfaceIndentation- Returns:
- the indentation string
-
setIndent
public void setIndent(java.lang.String indent)
Description copied from interface:IndentationSet the characters used for one level of indentation. The default isIndentation.DEFAULT_INDENT. "\t" is a popular alternative.- Specified by:
setIndentin interfaceIndentation- Parameters:
indent- the indentation string
-
add
public void add(javax.xml.stream.events.XMLEvent event) throws javax.xml.stream.XMLStreamException- Specified by:
addin interfacejavax.xml.stream.util.XMLEventConsumer- Specified by:
addin interfacejavax.xml.stream.XMLEventWriter- Overrides:
addin classEventWriterDelegate- Throws:
javax.xml.stream.XMLStreamException
-
beforeMarkup
protected void beforeMarkup() throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
afterMarkup
protected void afterMarkup()
-
afterData
protected void afterData()
-
beforeStartElement
protected void beforeStartElement() throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
afterStartElement
protected void afterStartElement()
-
beforeEndElement
protected void beforeEndElement()
-
afterEndElement
protected void afterEndElement()
-
afterEndDocument
protected void afterEndDocument() throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
-