public class UTF8XmlOutput extends XmlOutputAbstractImpl
XmlOutput
implementation specialized for UTF-8.Modifier and Type | Field and Description |
---|---|
protected boolean |
closeStartTagPending
Set to true to indicate that we need to write '>'
to close a start tag.
|
protected byte[] |
octetBuffer
Buffer of octets for writing.
|
protected int |
octetBufferIndex
Index in buffer to write to.
|
protected java.io.OutputStream |
out |
nsContext, nsUriIndex2prefixIndex, serializer
Constructor and Description |
---|
UTF8XmlOutput(java.io.OutputStream out,
Encoded[] localNames,
CharacterEscapeHandler escapeHandler) |
Modifier and Type | Method and Description |
---|---|
void |
attribute(int prefix,
java.lang.String localName,
java.lang.String value) |
void |
attribute(Name name,
java.lang.String value) |
void |
beginStartTag(int prefix,
java.lang.String localName) |
void |
beginStartTag(Name name)
Writes a start tag.
|
protected void |
closeStartTag()
Writes '>' to close the start tag, if necessary.
|
void |
endDocument(boolean fragment)
Called at the very end.
|
void |
endStartTag() |
void |
endTag(int prefix,
java.lang.String localName) |
void |
endTag(Name name) |
protected void |
flushBuffer() |
void |
setHeader(java.lang.String header) |
void |
startDocument(XMLSerializer serializer,
boolean fragment,
int[] nsUriIndex2prefixIndex,
NamespaceContextImpl nsContext)
Called at the very beginning.
|
void |
text(byte[] data,
int dataLen)
Writes the given byte[] as base64 encoded binary to the output.
|
void |
text(int value) |
void |
text(Pcdata value,
boolean needSP)
Writes XML text with character escaping, if necessary.
|
void |
text(java.lang.String value,
boolean needSP)
Writes XML text with character escaping, if necessary.
|
protected void |
write(byte[] b) |
protected void |
write(byte[] b,
int start,
int length) |
void |
write(int i)
Writes one byte directly into the buffer.
|
protected void |
writeNsDecl(int prefixIndex)
Writes a single namespace declaration for the specified prefix.
|
protected void |
writeNsDecls(int base) |
protected final java.io.OutputStream out
protected final byte[] octetBuffer
protected int octetBufferIndex
protected boolean closeStartTagPending
public UTF8XmlOutput(java.io.OutputStream out, Encoded[] localNames, CharacterEscapeHandler escapeHandler)
localNames
- local names encoded in UTF-8.public void setHeader(java.lang.String header)
public void startDocument(XMLSerializer serializer, boolean fragment, int[] nsUriIndex2prefixIndex, NamespaceContextImpl nsContext) throws java.io.IOException, org.xml.sax.SAXException, javax.xml.stream.XMLStreamException
XmlOutputAbstractImpl
startDocument
in interface XmlOutput
startDocument
in class XmlOutputAbstractImpl
serializer
- the XMLSerializer
that coordinates this whole marshalling episode.fragment
- true if we are marshalling a fragment.java.io.IOException
org.xml.sax.SAXException
javax.xml.stream.XMLStreamException
public void endDocument(boolean fragment) throws java.io.IOException, org.xml.sax.SAXException, javax.xml.stream.XMLStreamException
XmlOutputAbstractImpl
endDocument
in interface XmlOutput
endDocument
in class XmlOutputAbstractImpl
fragment
- false if we are writing the whole document.java.io.IOException
org.xml.sax.SAXException
javax.xml.stream.XMLStreamException
protected final void closeStartTag() throws java.io.IOException
java.io.IOException
public void beginStartTag(int prefix, java.lang.String localName) throws java.io.IOException
beginStartTag
in interface XmlOutput
beginStartTag
in class XmlOutputAbstractImpl
java.io.IOException
public void beginStartTag(Name name) throws java.io.IOException
XmlOutputAbstractImpl
At this point XmlOutputAbstractImpl.nsContext
holds namespace declarations needed for this
new element.
This method is used for writing tags that are indexed.
beginStartTag
in interface XmlOutput
beginStartTag
in class XmlOutputAbstractImpl
java.io.IOException
protected void writeNsDecls(int base) throws java.io.IOException
java.io.IOException
protected final void writeNsDecl(int prefixIndex) throws java.io.IOException
java.io.IOException
public void attribute(Name name, java.lang.String value) throws java.io.IOException
attribute
in interface XmlOutput
attribute
in class XmlOutputAbstractImpl
java.io.IOException
public void attribute(int prefix, java.lang.String localName, java.lang.String value) throws java.io.IOException
attribute
in interface XmlOutput
attribute
in class XmlOutputAbstractImpl
prefix
- -1 if this attribute does not have a prefix
(this handling differs from that of elements.)java.io.IOException
public void endStartTag() throws java.io.IOException
endStartTag
in interface XmlOutput
endStartTag
in class XmlOutputAbstractImpl
java.io.IOException
public void endTag(Name name) throws java.io.IOException
endTag
in interface XmlOutput
endTag
in class XmlOutputAbstractImpl
java.io.IOException
public void endTag(int prefix, java.lang.String localName) throws java.io.IOException
endTag
in interface XmlOutput
endTag
in class XmlOutputAbstractImpl
java.io.IOException
public void text(java.lang.String value, boolean needSP) throws java.io.IOException
XmlOutput
value
- this string can contain characters that might need escaping
(such as '&' or '>')java.io.IOException
public void text(Pcdata value, boolean needSP) throws java.io.IOException
XmlOutput
value
- this string can contain characters that might need escaping
(such as '&' or '>')java.io.IOException
public final void text(int value) throws java.io.IOException
java.io.IOException
public void text(byte[] data, int dataLen) throws java.io.IOException
Being defined on this class allows this method to access the buffer directly, which translates to a better performance.
java.io.IOException
public final void write(int i) throws java.io.IOException
This method can be used somewhat like the text
method,
but it doesn't perform character escaping.
java.io.IOException
protected final void write(byte[] b) throws java.io.IOException
java.io.IOException
protected final void write(byte[] b, int start, int length) throws java.io.IOException
java.io.IOException
protected final void flushBuffer() throws java.io.IOException
java.io.IOException