Class UTF8XmlOutput
- java.lang.Object
-
- com.sun.xml.bind.v2.runtime.output.XmlOutputAbstractImpl
-
- com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput
-
- All Implemented Interfaces:
XmlOutput
- Direct Known Subclasses:
C14nXmlOutput
,IndentingUTF8XmlOutput
public class UTF8XmlOutput extends XmlOutputAbstractImpl
XmlOutput
implementation specialized for UTF-8.- Author:
- Kohsuke Kawaguchi, Paul Sandoz
-
-
Field Summary
Fields Modifier and Type Field 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
-
Fields inherited from class com.sun.xml.bind.v2.runtime.output.XmlOutputAbstractImpl
nsContext, nsUriIndex2prefixIndex, serializer
-
-
Constructor Summary
Constructors Constructor Description UTF8XmlOutput(java.io.OutputStream out, Encoded[] localNames, CharacterEscapeHandler escapeHandler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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)
-
-
-
Field Detail
-
out
protected final java.io.OutputStream out
-
octetBuffer
protected final byte[] octetBuffer
Buffer of octets for writing.
-
octetBufferIndex
protected int octetBufferIndex
Index in buffer to write to.
-
closeStartTagPending
protected boolean closeStartTagPending
Set to true to indicate that we need to write'>'
to close a start tag. Deferring the write of this char allows us to write"/>"
for empty elements.
-
-
Constructor Detail
-
UTF8XmlOutput
public UTF8XmlOutput(java.io.OutputStream out, Encoded[] localNames, CharacterEscapeHandler escapeHandler)
- Parameters:
localNames
- local names encoded in UTF-8.
-
-
Method Detail
-
setHeader
public void setHeader(java.lang.String header)
-
startDocument
public void startDocument(XMLSerializer serializer, boolean fragment, int[] nsUriIndex2prefixIndex, NamespaceContextImpl nsContext) throws java.io.IOException, org.xml.sax.SAXException, javax.xml.stream.XMLStreamException
Description copied from class:XmlOutputAbstractImpl
Called at the very beginning.- Specified by:
startDocument
in interfaceXmlOutput
- Overrides:
startDocument
in classXmlOutputAbstractImpl
- Parameters:
serializer
- theXMLSerializer
that coordinates this whole marshalling episode.fragment
- true if we are marshalling a fragment.- Throws:
java.io.IOException
org.xml.sax.SAXException
javax.xml.stream.XMLStreamException
-
endDocument
public void endDocument(boolean fragment) throws java.io.IOException, org.xml.sax.SAXException, javax.xml.stream.XMLStreamException
Description copied from class:XmlOutputAbstractImpl
Called at the very end.- Specified by:
endDocument
in interfaceXmlOutput
- Overrides:
endDocument
in classXmlOutputAbstractImpl
- Parameters:
fragment
- false if we are writing the whole document.- Throws:
java.io.IOException
org.xml.sax.SAXException
javax.xml.stream.XMLStreamException
-
closeStartTag
protected final void closeStartTag() throws java.io.IOException
Writes'>'
to close the start tag, if necessary.- Throws:
java.io.IOException
-
beginStartTag
public void beginStartTag(int prefix, java.lang.String localName) throws java.io.IOException
- Specified by:
beginStartTag
in interfaceXmlOutput
- Specified by:
beginStartTag
in classXmlOutputAbstractImpl
- Throws:
java.io.IOException
-
beginStartTag
public void beginStartTag(Name name) throws java.io.IOException
Description copied from class:XmlOutputAbstractImpl
Writes a start tag.At this point
XmlOutputAbstractImpl.nsContext
holds namespace declarations needed for this new element.This method is used for writing tags that are indexed.
- Specified by:
beginStartTag
in interfaceXmlOutput
- Overrides:
beginStartTag
in classXmlOutputAbstractImpl
- Throws:
java.io.IOException
-
writeNsDecls
protected void writeNsDecls(int base) throws java.io.IOException
- Throws:
java.io.IOException
-
writeNsDecl
protected final void writeNsDecl(int prefixIndex) throws java.io.IOException
Writes a single namespace declaration for the specified prefix.- Throws:
java.io.IOException
-
attribute
public void attribute(Name name, java.lang.String value) throws java.io.IOException
- Specified by:
attribute
in interfaceXmlOutput
- Overrides:
attribute
in classXmlOutputAbstractImpl
- Throws:
java.io.IOException
-
attribute
public void attribute(int prefix, java.lang.String localName, java.lang.String value) throws java.io.IOException
- Specified by:
attribute
in interfaceXmlOutput
- Specified by:
attribute
in classXmlOutputAbstractImpl
- Parameters:
prefix
- -1 if this attribute does not have a prefix (this handling differs from that of elements.)- Throws:
java.io.IOException
-
endStartTag
public void endStartTag() throws java.io.IOException
- Specified by:
endStartTag
in interfaceXmlOutput
- Specified by:
endStartTag
in classXmlOutputAbstractImpl
- Throws:
java.io.IOException
-
endTag
public void endTag(Name name) throws java.io.IOException
- Specified by:
endTag
in interfaceXmlOutput
- Overrides:
endTag
in classXmlOutputAbstractImpl
- Throws:
java.io.IOException
-
endTag
public void endTag(int prefix, java.lang.String localName) throws java.io.IOException
- Specified by:
endTag
in interfaceXmlOutput
- Specified by:
endTag
in classXmlOutputAbstractImpl
- Throws:
java.io.IOException
-
text
public void text(java.lang.String value, boolean needSP) throws java.io.IOException
Description copied from interface:XmlOutput
Writes XML text with character escaping, if necessary.- Parameters:
value
- this string can contain characters that might need escaping (such as'&' or '>'
)- Throws:
java.io.IOException
-
text
public void text(Pcdata value, boolean needSP) throws java.io.IOException
Description copied from interface:XmlOutput
Writes XML text with character escaping, if necessary.- Parameters:
value
- this string can contain characters that might need escaping (such as'&' or '>'
)- Throws:
java.io.IOException
-
text
public final void text(int value) throws java.io.IOException
- Throws:
java.io.IOException
-
text
public void text(byte[] data, int dataLen) throws java.io.IOException
Writes the given byte[] as base64 encoded binary to the output.Being defined on this class allows this method to access the buffer directly, which translates to a better performance.
- Throws:
java.io.IOException
-
write
public final void write(int i) throws java.io.IOException
Writes one byte directly into the buffer.This method can be used somewhat like the
text
method, but it doesn't perform character escaping.- Throws:
java.io.IOException
-
write
protected final void write(byte[] b) throws java.io.IOException
- Throws:
java.io.IOException
-
write
protected final void write(byte[] b, int start, int length) throws java.io.IOException
- Throws:
java.io.IOException
-
flushBuffer
protected final void flushBuffer() throws java.io.IOException
- Throws:
java.io.IOException
-
-