public class XmlTokenStream extends Object
XMLStreamReader
to further
abstract out all irrelevant details, and to expose equivalent of flat token
stream with no "fluff" tokens (comments, processing instructions, mixed
content) all of which is just to simplify
actual higher-level conversion to JSON tokens.
Beyond initial idea there are also couple of other detours like ability to "replay" some tokens, add virtual wrappers (ironically to support "unwrapped" array values), and to unroll "Objects" into String values in some cases.
Modifier and Type | Field and Description |
---|---|
protected int |
_attributeCount |
protected int |
_currentState |
protected com.fasterxml.jackson.dataformat.xml.deser.ElementWrapper |
_currentWrapper
Wrapping state, if any active (null if none)
|
protected int |
_formatFeatures
Bit flag composed of bits that indicate which
FromXmlParser.Feature s
are enabled. |
protected String |
_localName |
protected boolean |
_mixedText
If true we have a START_ELEMENT with mixed text
|
protected String |
_namespaceURI |
protected int |
_nextAttributeIndex
Index of the next attribute of the current START_ELEMENT
to return (as field name and value pair), if any; -1
when no attributes to return
|
protected String |
_nextLocalName
In cases where we need to 'inject' a virtual END_ELEMENT, we may also
need to restore START_ELEMENT afterwards; if so, this is where names
are held.
|
protected String |
_nextNamespaceURI |
protected int |
_repeatElement
Flag used to indicate that given element should be "replayed".
|
protected Object |
_sourceReference |
protected String |
_textValue |
protected org.codehaus.stax2.XMLStreamReader2 |
_xmlReader |
protected boolean |
_xsiNilFound
Marker used to indicate presence of `xsi:nil="true"' in current START_ELEMENT.
|
static int |
XML_ATTRIBUTE_NAME |
static int |
XML_ATTRIBUTE_VALUE |
static int |
XML_END |
static int |
XML_END_ELEMENT |
static int |
XML_NULL |
static int |
XML_START_ELEMENT |
static int |
XML_TEXT |
Constructor and Description |
---|
XmlTokenStream(XMLStreamReader xmlReader,
Object sourceRef,
int formatFeatures) |
Modifier and Type | Method and Description |
---|---|
protected boolean |
_allWs(String str) |
protected int |
_handleRepeatElement()
Method called to handle details of repeating "virtual"
start/end elements, needed for handling 'unwrapped' lists.
|
void |
close() |
void |
closeCompletely() |
protected String |
convertToString()
Helper method called by XML String deserializer to concatenate textual contents
contained in logical "Object": mostly just to skip attribute values.
|
com.fasterxml.jackson.core.JsonLocation |
getCurrentLocation() |
int |
getCurrentToken() |
String |
getLocalName() |
String |
getNamespaceURI() |
String |
getText() |
com.fasterxml.jackson.core.JsonLocation |
getTokenLocation() |
org.codehaus.stax2.XMLStreamReader2 |
getXmlReader() |
int |
next() |
protected void |
repeatStartElement()
Method used to add virtual wrapping, which just duplicates START_ELEMENT
stream points to, and its matching closing element.
|
protected void |
setFormatFeatures(int f) |
protected void |
skipAttributes()
Method called to skip any attributes current START_ELEMENT may have,
so that they are not returned as token.
|
void |
skipEndElement() |
String |
toString() |
public static final int XML_START_ELEMENT
public static final int XML_END_ELEMENT
public static final int XML_ATTRIBUTE_NAME
public static final int XML_ATTRIBUTE_VALUE
public static final int XML_TEXT
public static final int XML_NULL
public static final int XML_END
protected final org.codehaus.stax2.XMLStreamReader2 _xmlReader
protected final Object _sourceReference
protected int _formatFeatures
FromXmlParser.Feature
s
are enabled.protected int _currentState
protected int _attributeCount
protected boolean _xsiNilFound
protected boolean _mixedText
protected int _nextAttributeIndex
protected String _localName
protected String _namespaceURI
protected String _textValue
protected int _repeatElement
protected com.fasterxml.jackson.dataformat.xml.deser.ElementWrapper _currentWrapper
protected String _nextLocalName
protected String _nextNamespaceURI
public XmlTokenStream(XMLStreamReader xmlReader, Object sourceRef, int formatFeatures)
public org.codehaus.stax2.XMLStreamReader2 getXmlReader()
protected void setFormatFeatures(int f)
public int next() throws XMLStreamException
XMLStreamException
public void skipEndElement() throws IOException, XMLStreamException
IOException
XMLStreamException
public int getCurrentToken()
public String getText()
public String getLocalName()
public String getNamespaceURI()
public void closeCompletely() throws XMLStreamException
XMLStreamException
public void close() throws XMLStreamException
XMLStreamException
public com.fasterxml.jackson.core.JsonLocation getCurrentLocation()
public com.fasterxml.jackson.core.JsonLocation getTokenLocation()
protected void repeatStartElement()
protected void skipAttributes()
protected String convertToString() throws XMLStreamException
XMLStreamException
protected int _handleRepeatElement() throws XMLStreamException
XMLStreamException
protected boolean _allWs(String str)
Copyright © 2019 FasterXML. All rights reserved.