public final class ToXmlGenerator
extends com.fasterxml.jackson.core.base.GeneratorBase
JsonGenerator that outputs JAXB-style XML output instead of JSON content.
Operation requires calling code (usually either standard Jackson serializers,
or in some cases (like BeanSerializer) customised ones) to do
additional configuration calls beyond regular JsonGenerator API,
mostly to pass namespace information.| Modifier and Type | Class and Description |
|---|---|
static class |
ToXmlGenerator.Feature
Enumeration that defines all togglable extra XML-specific features
|
| Modifier and Type | Field and Description |
|---|---|
protected LinkedList<QName> |
_elementNameStack
To support proper serialization of arrays it is necessary to keep
stack of element names, so that we can "revert" to earlier
|
protected int |
_formatFeatures
Bit flag composed of bits that indicate which
ToXmlGenerator.Features
are enabled. |
protected boolean |
_initialized
Marker set when
initGenerator() has been called or not. |
protected com.fasterxml.jackson.core.io.IOContext |
_ioContext |
protected boolean |
_nextIsAttribute
Marker flag that indicates whether next name to write
implies an attribute (true) or element (false)
|
protected boolean |
_nextIsCData
Marker flag used to indicate that the next write of a (property)
value should be as CData
|
protected boolean |
_nextIsUnwrapped
Marker flag used to indicate that the next write of a (property)
value should be done without using surrounding start/end
elements.
|
protected QName |
_nextName
Element or attribute name to use for next output call.
|
protected XMLStreamWriter |
_originalXmlWriter |
protected boolean |
_stax2Emulation
Marker flag set if the underlying stream writer has to emulate
Stax2 API: this is problematic if trying to use
writeRaw(java.lang.String) calls. |
protected XmlPrettyPrinter |
_xmlPrettyPrinter
We may need to use XML-specific indentation as well
|
protected org.codehaus.stax2.XMLStreamWriter2 |
_xmlWriter |
protected static String |
DEFAULT_UNKNOWN_ELEMENT
If we support optional definition of element names, this is the element
name to use...
|
| Constructor and Description |
|---|
ToXmlGenerator(com.fasterxml.jackson.core.io.IOContext ctxt,
int stdFeatures,
int xmlFeatures,
com.fasterxml.jackson.core.ObjectCodec codec,
XMLStreamWriter sw) |
| Modifier and Type | Method and Description |
|---|---|
protected com.fasterxml.jackson.core.PrettyPrinter |
_constructDefaultPrettyPrinter() |
void |
_handleEndObject() |
void |
_handleStartObject() |
protected void |
_releaseBuffers() |
protected void |
_reportUnimplementedStax2(String missingMethod)
Method called in case access to native Stax2 API implementation is required.
|
protected void |
_verifyValueWrite(String typeMsg) |
protected boolean |
checkNextIsUnwrapped()
Method called to see if unwrapping is required; and if so,
clear the flag (so further calls will return 'false' unless
state is re-set)
|
void |
close() |
ToXmlGenerator |
configure(ToXmlGenerator.Feature f,
boolean state) |
ToXmlGenerator |
disable(ToXmlGenerator.Feature f) |
ToXmlGenerator |
enable(ToXmlGenerator.Feature f) |
void |
finishWrappedValue(QName wrapperName,
QName wrappedName)
Method called after a structured collection output has completed
|
void |
flush() |
int |
getFormatFeatures() |
int |
getOutputBuffered()
Stax2 does not expose buffered content amount, so we can only return
-1 from here |
Object |
getOutputTarget() |
XMLStreamWriter |
getStaxWriter()
Method that allows application direct access to underlying
Stax
XMLStreamWriter. |
protected void |
handleMissingName() |
void |
initGenerator()
Method called before writing any other output, to optionally
output XML declaration.
|
boolean |
isEnabled(ToXmlGenerator.Feature f) |
com.fasterxml.jackson.core.JsonGenerator |
overrideFormatFeatures(int values,
int mask) |
void |
setNextIsAttribute(boolean isAttribute) |
void |
setNextIsCData(boolean isCData) |
void |
setNextIsUnwrapped(boolean isUnwrapped) |
void |
setNextName(QName name) |
boolean |
setNextNameIfMissing(QName name)
Method that does same as
setNextName(javax.xml.namespace.QName), unless
a name has already been set. |
com.fasterxml.jackson.core.JsonGenerator |
setPrettyPrinter(com.fasterxml.jackson.core.PrettyPrinter pp) |
void |
startWrappedValue(QName wrapperName,
QName wrappedName)
Methdod called when a structured (collection, array, map) is being
output.
|
com.fasterxml.jackson.core.JsonGenerator |
useDefaultPrettyPrinter()
Standard JSON indenter does not work well with XML, use
default XML indenter instead.
|
void |
writeBinary(com.fasterxml.jackson.core.Base64Variant b64variant,
byte[] data,
int offset,
int len) |
void |
writeBoolean(boolean value) |
void |
writeEndArray() |
void |
writeEndObject() |
void |
writeFieldName(com.fasterxml.jackson.core.SerializableString name) |
void |
writeFieldName(String name) |
void |
writeNull() |
void |
writeNumber(BigDecimal dec) |
void |
writeNumber(BigInteger value) |
void |
writeNumber(double d) |
void |
writeNumber(float f) |
void |
writeNumber(int i) |
void |
writeNumber(long l) |
void |
writeNumber(String encodedValue) |
void |
writeRaw(char c) |
void |
writeRaw(char[] text,
int offset,
int len) |
void |
writeRaw(String text) |
void |
writeRaw(String text,
int offset,
int len) |
void |
writeRawUTF8String(byte[] text,
int offset,
int length) |
void |
writeRepeatedFieldName()
Trivial helper method called when to add a replicated wrapper name
|
void |
writeStartArray() |
void |
writeStartObject() |
void |
writeString(char[] text,
int offset,
int len) |
void |
writeString(com.fasterxml.jackson.core.SerializableString text) |
void |
writeString(String text) |
void |
writeStringField(String fieldName,
String value) |
void |
writeUTF8String(byte[] text,
int offset,
int length) |
_checkStdFeatureChanges, _decodeSurrogate, disable, enable, getCodec, getCurrentValue, getFeatureMask, getOutputContext, isClosed, isEnabled, overrideStdFeatures, setCodec, setCurrentValue, setFeatureMask, version, writeBinary, writeObject, writeRawValue, writeRawValue, writeRawValue, writeRawValue, writeTree_reportError, _reportUnsupportedOperation, _throwInternal, _writeSimpleObject, canOmitFields, canUseSchema, canWriteBinaryNatively, canWriteObjectId, canWriteTypeId, configure, copyCurrentEvent, copyCurrentStructure, getCharacterEscapes, getHighestEscapedChar, getPrettyPrinter, getSchema, setCharacterEscapes, setHighestNonEscapedChar, setRootValueSeparator, setSchema, writeArrayFieldStart, writeBinary, writeBinary, writeBinary, writeBinaryField, writeBooleanField, writeNullField, writeNumber, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeObjectField, writeObjectFieldStart, writeObjectId, writeObjectRef, writeOmittedField, writeRaw, writeStartArray, writeTypeIdprotected static final String DEFAULT_UNKNOWN_ELEMENT
protected final org.codehaus.stax2.XMLStreamWriter2 _xmlWriter
protected final XMLStreamWriter _originalXmlWriter
protected final boolean _stax2Emulation
writeRaw(java.lang.String) calls.protected final com.fasterxml.jackson.core.io.IOContext _ioContext
protected int _formatFeatures
ToXmlGenerator.Features
are enabled.protected XmlPrettyPrinter _xmlPrettyPrinter
protected boolean _initialized
initGenerator() has been called or not.protected QName _nextName
protected boolean _nextIsAttribute
protected boolean _nextIsUnwrapped
protected boolean _nextIsCData
protected LinkedList<QName> _elementNameStack
public ToXmlGenerator(com.fasterxml.jackson.core.io.IOContext ctxt,
int stdFeatures,
int xmlFeatures,
com.fasterxml.jackson.core.ObjectCodec codec,
XMLStreamWriter sw)
public void initGenerator()
throws IOException
IOExceptionpublic final com.fasterxml.jackson.core.JsonGenerator useDefaultPrettyPrinter()
!!! TODO: same as implementation in core 2.6; override may be removed from 2.8
useDefaultPrettyPrinter in class com.fasterxml.jackson.core.base.GeneratorBaseprotected com.fasterxml.jackson.core.PrettyPrinter _constructDefaultPrettyPrinter()
_constructDefaultPrettyPrinter in class com.fasterxml.jackson.core.base.GeneratorBasepublic com.fasterxml.jackson.core.JsonGenerator setPrettyPrinter(com.fasterxml.jackson.core.PrettyPrinter pp)
setPrettyPrinter in class com.fasterxml.jackson.core.JsonGeneratorpublic Object getOutputTarget()
getOutputTarget in class com.fasterxml.jackson.core.JsonGeneratorpublic int getOutputBuffered()
-1 from heregetOutputBuffered in class com.fasterxml.jackson.core.JsonGeneratorpublic int getFormatFeatures()
getFormatFeatures in class com.fasterxml.jackson.core.JsonGeneratorpublic com.fasterxml.jackson.core.JsonGenerator overrideFormatFeatures(int values,
int mask)
overrideFormatFeatures in class com.fasterxml.jackson.core.JsonGeneratorpublic ToXmlGenerator enable(ToXmlGenerator.Feature f)
public ToXmlGenerator disable(ToXmlGenerator.Feature f)
public final boolean isEnabled(ToXmlGenerator.Feature f)
public ToXmlGenerator configure(ToXmlGenerator.Feature f, boolean state)
public XMLStreamWriter getStaxWriter()
XMLStreamWriter. Note that use of writer is
discouraged, and may interfere with processing of this writer;
however, occasionally it may be necessary.
Note: writer instance will always be of type
XMLStreamWriter2 (including
Typed Access API) so upcasts are safe.
public void setNextIsAttribute(boolean isAttribute)
public void setNextIsUnwrapped(boolean isUnwrapped)
public void setNextIsCData(boolean isCData)
public final void setNextName(QName name)
public final boolean setNextNameIfMissing(QName name)
setNextName(javax.xml.namespace.QName), unless
a name has already been set.public void startWrappedValue(QName wrapperName, QName wrappedName) throws IOException
wrapperName - Element used as wrapper around elements, if any (null if none)wrappedName - Element used around individual content items (can not
be null)IOExceptionpublic void finishWrappedValue(QName wrapperName, QName wrappedName) throws IOException
IOExceptionpublic void writeRepeatedFieldName()
throws IOException
IOExceptionpublic final void writeFieldName(String name) throws IOException
writeFieldName in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic final void writeStringField(String fieldName, String value) throws IOException
writeStringField in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic final void writeStartArray()
throws IOException
writeStartArray in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic final void writeEndArray()
throws IOException
writeEndArray in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic final void writeStartObject()
throws IOException
writeStartObject in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic final void writeEndObject()
throws IOException
writeEndObject in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic final void _handleStartObject()
throws IOException
IOExceptionpublic final void _handleEndObject()
throws IOException
IOExceptionpublic void writeFieldName(com.fasterxml.jackson.core.SerializableString name)
throws IOException
writeFieldName in class com.fasterxml.jackson.core.base.GeneratorBaseIOExceptionpublic void writeString(String text) throws IOException
writeString in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeString(char[] text,
int offset,
int len)
throws IOException
writeString in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeString(com.fasterxml.jackson.core.SerializableString text)
throws IOException
writeString in class com.fasterxml.jackson.core.base.GeneratorBaseIOExceptionpublic void writeRawUTF8String(byte[] text,
int offset,
int length)
throws IOException
writeRawUTF8String in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeUTF8String(byte[] text,
int offset,
int length)
throws IOException
writeUTF8String in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeRaw(String text) throws IOException
writeRaw in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeRaw(String text, int offset, int len) throws IOException
writeRaw in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeRaw(char[] text,
int offset,
int len)
throws IOException
writeRaw in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeRaw(char c)
throws IOException
writeRaw in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeBinary(com.fasterxml.jackson.core.Base64Variant b64variant,
byte[] data,
int offset,
int len)
throws IOException
writeBinary in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeBoolean(boolean value)
throws IOException
writeBoolean in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeNull()
throws IOException
writeNull in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeNumber(int i)
throws IOException
writeNumber in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeNumber(long l)
throws IOException
writeNumber in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeNumber(double d)
throws IOException
writeNumber in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeNumber(float f)
throws IOException
writeNumber in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeNumber(BigDecimal dec) throws IOException
writeNumber in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeNumber(BigInteger value) throws IOException
writeNumber in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionpublic void writeNumber(String encodedValue) throws IOException, UnsupportedOperationException
writeNumber in class com.fasterxml.jackson.core.JsonGeneratorIOExceptionUnsupportedOperationExceptionprotected final void _verifyValueWrite(String typeMsg) throws IOException
_verifyValueWrite in class com.fasterxml.jackson.core.base.GeneratorBaseIOExceptionpublic void flush()
throws IOException
flush in interface Flushableflush in class com.fasterxml.jackson.core.base.GeneratorBaseIOExceptionpublic void close()
throws IOException
close in interface Closeableclose in interface AutoCloseableclose in class com.fasterxml.jackson.core.base.GeneratorBaseIOExceptionprotected void _releaseBuffers()
_releaseBuffers in class com.fasterxml.jackson.core.base.GeneratorBaseprotected boolean checkNextIsUnwrapped()
protected void handleMissingName()
protected void _reportUnimplementedStax2(String missingMethod) throws IOException
IOExceptionCopyright © 2016 FasterXML. All rights reserved.