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 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 |
_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 int |
_xmlFeatures
Bit flag composed of bits that indicate which
ToXmlGenerator.Feature s
are enabled. |
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 genericGeneratorFeatures,
int xmlFeatures,
com.fasterxml.jackson.core.ObjectCodec codec,
XMLStreamWriter sw) |
Modifier and Type | Method and Description |
---|---|
void |
_handleEndObject() |
void |
_handleStartObject() |
protected void |
_releaseBuffers() |
protected void |
_reportUnimplementedStax2(String missingMethod)
Method called
|
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() |
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) |
void |
setNextIsAttribute(boolean isAttribute) |
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) |
_writeSimpleObject, disable, enable, getCodec, getFeatureMask, getOutputContext, isClosed, isEnabled, setCodec, setFeatureMask, version, writeBinary, writeObject, writeRawValue, writeRawValue, writeRawValue, writeTree
_reportError, _reportUnsupportedOperation, _throwInternal, canOmitFields, canUseSchema, canWriteBinaryNatively, canWriteObjectId, canWriteTypeId, configure, copyCurrentEvent, copyCurrentStructure, getCharacterEscapes, getHighestEscapedChar, getOutputTarget, 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, writeTypeId
protected 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 _xmlFeatures
ToXmlGenerator.Feature
s
are enabled.protected XmlPrettyPrinter _xmlPrettyPrinter
protected boolean _initialized
initGenerator()
has been called or not.protected QName _nextName
protected boolean _nextIsAttribute
protected boolean _nextIsUnwrapped
protected LinkedList<QName> _elementNameStack
public ToXmlGenerator(com.fasterxml.jackson.core.io.IOContext ctxt, int genericGeneratorFeatures, int xmlFeatures, com.fasterxml.jackson.core.ObjectCodec codec, XMLStreamWriter sw)
public void initGenerator() throws IOException, com.fasterxml.jackson.core.JsonGenerationException
IOException
com.fasterxml.jackson.core.JsonGenerationException
public 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 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, com.fasterxml.jackson.core.JsonGenerationException
wrapperName
- Element used as wrapper around elements, if any (null if none)wrappedName
- Element used around individual content items (can not
be null)IOException
com.fasterxml.jackson.core.JsonGenerationException
public void finishWrappedValue(QName wrapperName, QName wrappedName) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeRepeatedFieldName() throws IOException, com.fasterxml.jackson.core.JsonGenerationException
IOException
com.fasterxml.jackson.core.JsonGenerationException
public final void writeFieldName(String name) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeFieldName
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public final void writeStringField(String fieldName, String value) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeStringField
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public final void writeStartArray() throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeStartArray
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public final void writeEndArray() throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeEndArray
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public final void writeStartObject() throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeStartObject
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public final void writeEndObject() throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeEndObject
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public final void _handleStartObject() throws IOException, com.fasterxml.jackson.core.JsonGenerationException
IOException
com.fasterxml.jackson.core.JsonGenerationException
public final void _handleEndObject() throws IOException, com.fasterxml.jackson.core.JsonGenerationException
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeFieldName(com.fasterxml.jackson.core.SerializableString name) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeFieldName
in class com.fasterxml.jackson.core.base.GeneratorBase
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeString(String text) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeString
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeString(char[] text, int offset, int len) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeString
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeString(com.fasterxml.jackson.core.SerializableString text) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeString
in class com.fasterxml.jackson.core.base.GeneratorBase
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeRawUTF8String(byte[] text, int offset, int length) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeRawUTF8String
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeUTF8String(byte[] text, int offset, int length) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeUTF8String
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeRaw(String text) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeRaw
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeRaw(String text, int offset, int len) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeRaw
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeRaw(char[] text, int offset, int len) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeRaw
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeRaw(char c) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeRaw
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeBinary(com.fasterxml.jackson.core.Base64Variant b64variant, byte[] data, int offset, int len) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeBinary
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeBoolean(boolean value) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeBoolean
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeNull() throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeNull
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeNumber(int i) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeNumber
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeNumber(long l) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeNumber
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeNumber(double d) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeNumber
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeNumber(float f) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeNumber
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeNumber(BigDecimal dec) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeNumber
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeNumber(BigInteger value) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
writeNumber
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
public void writeNumber(String encodedValue) throws IOException, com.fasterxml.jackson.core.JsonGenerationException, UnsupportedOperationException
writeNumber
in class com.fasterxml.jackson.core.JsonGenerator
IOException
com.fasterxml.jackson.core.JsonGenerationException
UnsupportedOperationException
protected final void _verifyValueWrite(String typeMsg) throws IOException, com.fasterxml.jackson.core.JsonGenerationException
_verifyValueWrite
in class com.fasterxml.jackson.core.base.GeneratorBase
IOException
com.fasterxml.jackson.core.JsonGenerationException
public final com.fasterxml.jackson.core.JsonGenerator useDefaultPrettyPrinter()
useDefaultPrettyPrinter
in class com.fasterxml.jackson.core.base.GeneratorBase
public com.fasterxml.jackson.core.JsonGenerator setPrettyPrinter(com.fasterxml.jackson.core.PrettyPrinter pp)
setPrettyPrinter
in class com.fasterxml.jackson.core.JsonGenerator
public final void flush() throws IOException
flush
in interface Flushable
flush
in class com.fasterxml.jackson.core.base.GeneratorBase
IOException
public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
close
in class com.fasterxml.jackson.core.base.GeneratorBase
IOException
protected void _releaseBuffers()
_releaseBuffers
in class com.fasterxml.jackson.core.base.GeneratorBase
protected boolean checkNextIsUnwrapped()
protected void handleMissingName()
protected void _reportUnimplementedStax2(String missingMethod) throws IOException
IOException
Copyright © 2012–2014 FasterXML. All rights reserved.