Package com.sun.xml.fastinfoset.stax
Class StAXDocumentParser
java.lang.Object
com.sun.xml.fastinfoset.Decoder
com.sun.xml.fastinfoset.stax.StAXDocumentParser
- All Implemented Interfaces:
OctetBufferListener,XMLStreamConstants,XMLStreamReader,FastInfosetParser,FastInfosetStreamReader
- Direct Known Subclasses:
FastInfosetReader,FastInfosetStreamReaderRecyclable,WSTCPFastInfosetStreamReaderRecyclable
public class StAXDocumentParser
extends Decoder
implements XMLStreamReader, FastInfosetStreamReader, OctetBufferListener
The Fast Infoset StAX parser.
Instantiate this parser to parse a fast infoset document in accordance with the StAX API.
More than one fast infoset document may be decoded from the
InputStream.
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class com.sun.xml.fastinfoset.Decoder
Decoder.EncodingAlgorithmInputStream -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected byte[]protected intprotected intprotected intprotected Stringprotected AttributesHolderList of attributesprotected Stringprotected char[]Characters associated with event.protected intprotected booleanprotected intprotected intNamespaces associated with START_ELEMENT or END_ELEMENTprotected intCurrent eventprotected intprotected booleanprotected StAXManagerprotected int[]protected intprotected String[]protected String[]protected int[]protected int[]protected StAXDocumentParser.NamespaceContextImplprotected Stringprotected StringState for processing instructionprotected QualifiedName[]Stack of qualified names and namespacesprotected QualifiedNameQualified name associated with START_ELEMENT or END_ELEMENT.protected intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intFields inherited from class com.sun.xml.fastinfoset.Decoder
_addToTable, _attributeNameTable, _attributeValueTable, _b, _bufferSize, _characterContentChunkTable, _charBuffer, _charBufferLength, _doubleTerminate, _duplicateAttributeVerifier, _elementNameTable, _identifier, _integer, _namespaceNameIndex, _needForceStreamClose, _notations, _octetBuffer, _octetBufferEnd, _octetBufferLength, _octetBufferOffset, _octetBufferStart, _parseFragments, _prefixIndex, _prefixTable, _registeredEncodingAlgorithms, _terminate, _unparsedEntities, _v, BUFFER_SIZE_SYSTEM_PROPERTY, NISTRING_EMPTY_STRING, NISTRING_ENCODING_ALGORITHM, NISTRING_INDEX, NISTRING_STRING, STRING_INTERNING_SYSTEM_PROPERTYFields inherited from interface org.jvnet.fastinfoset.FastInfosetParser
BUFFER_SIZE_PROPERTY, EXTERNAL_VOCABULARIES_PROPERTY, FORCE_STREAM_CLOSE_PROPERTY, REGISTERED_ENCODING_ALGORITHMS_PROPERTY, STRING_INTERNING_PROPERTYFields inherited from interface javax.xml.stream.XMLStreamConstants
ATTRIBUTE, CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, ENTITY_DECLARATION, ENTITY_REFERENCE, NAMESPACE, NOTATION_DECLARATION, PROCESSING_INSTRUCTION, SPACE, START_DOCUMENT, START_ELEMENT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal Stringfinal intfinal Stringfinal Stringfinal char[]Returns a cloned char[] representation of the internal char[] buffer.final intfinal intprotected final voidvoidclose()protected voidprotected final voidfinal intfinal StringgetAttributeLocalName(int index) final QNamegetAttributeName(int index) final StringgetAttributeNamespace(int index) final StringgetAttributeNameString(int index) final StringgetAttributePrefix(int index) final AttributesHolderfinal StringgetAttributeType(int index) final StringgetAttributeValue(int index) final StringgetAttributeValue(String namespaceURI, String localName) final Stringfinal StringReads the content of a text-only element.final StringgetElementText(boolean startElementRead) final Stringfinal intfinal Stringfinal Locationfinal QNamegetName()final NamespaceContextfinal intfinal StringgetNamespaceDecl(String prefix) final StringgetNamespacePrefix(int index) final Stringfinal StringgetNamespaceURI(int index) final StringgetNamespaceURI(String prefix) final Stringfinal Stringfinal Stringfinal Stringfinal IteratorgetProperty(String name) final StringgetText()final byte[]Deprecated.was deprecated due to security reasons.final intgetTextAlgorithmBytes(int sourceStart, byte[] target, int targetStart, int length) final byte[]final intfinal intfinal intfinal Stringfinal char[]final intgetTextCharacters(int sourceStart, char[] target, int targetStart, int length) final intfinal intfinal Stringfinal Stringfinal booleanhasName()final booleanhasNext()final booleanhasText()final booleanfinal booleanisAttributeSpecified(int index) booleanfinal booleanfinal booleanfinal booleanfinal booleanfinal booleanReturns true if the cursor points to a character data event that consists of all whitespace Application calling this method needs to cache the value and avoid calling this method again for the same event.intnext()final intnextTag()Skips any white space (isWhiteSpace() returns true), COMMENT, or PROCESSING_INSTRUCTION, until a START_ELEMENT or END_ELEMENT is reached.final intnextTag(boolean currentTagRead) if the current tag has already read, such as in the case EventReader's peek() has been called, the current cursor should not move before the loopvoidCallback method that will be called before the (@link Decoder) octet buffer content is going to be changed.final intpeekNext()Peek at the next event.protected final voidprocessAIIEncodingAlgorithm(QualifiedName name, boolean addToTable) protected final voidprotected final voidprocessCIIEncodingAlgorithm(boolean addToTable) protected final voidprotected final voidprotected final voidprocessDIIOptionalProperties(int b) protected final voidprocessEII(QualifiedName name, boolean hasAttributes) protected final QualifiedNameprocessEIIIndexLarge(int b) protected final QualifiedNameprocessEIIIndexMedium(int b) protected final voidprocessEIIWithNamespaces(boolean hasAttributes) protected final QualifiedNameprocessLiteralQualifiedName(int state, QualifiedName q) protected final voidprotected final voidfinal voidTest if the current event is of the given type and if the namespace and name match the current namespace and name of the current event.voidreset()Reset the decoder for reuse decoding another XML infoset.protected voidprotected final voidvoidSet the InputStream to decode the fast infoset document.final voidsetManager(StAXManager manager) final booleanMethods inherited from class com.sun.xml.fastinfoset.Decoder
_isFastInfosetDocument, closeIfRequired, createQualifiedNameString, createQualifiedNameString, decodeAdditionalData, decodeAlphabetOctetsAsCharBuffer, decodeCharacterEncodingScheme, decodeDII, decodeEIIIndexLarge, decodeEIIIndexMedium, decodeFourBitAlphabetOctetsAsCharBuffer, decodeHeader, decodeIdentifyingNonEmptyStringIndexOnFirstBitAsNamespaceName, decodeIdentifyingNonEmptyStringIndexOnFirstBitAsPrefix, decodeIdentifyingNonEmptyStringOnFirstBit, decodeIdentifyingNonEmptyStringOnFirstBitAsNamespaceName, decodeIdentifyingNonEmptyStringOnFirstBitAsPrefix, decodeInitialVocabulary, decodeIntegerIndexOnSecondBit, decodeLiteralQualifiedName, decodeNonEmptyOctetStringLengthOnSecondBit, decodeNonEmptyOctetStringOnSecondBitAsUtf8CharArray, decodeNonEmptyOctetStringOnSecondBitAsUtf8String, decodeNonIdentifyingStringOnFirstBit, decodeNotations, decodeOctetsOnFifthBitOfNonIdentifyingStringOnFirstBit, decodeOctetsOnSeventhBitOfNonIdentifyingStringOnThirdBit, decodeRAOctetsAsString, decodeRestrictedAlphabetAsCharBuffer, decodeRestrictedAlphabetAsString, decodeUnparsedEntities, decodeUtf16StringAsCharBuffer, decodeUtf16StringAsString, decodeUtf8NCNameIntoCharBuffer, decodeUtf8StringAsCharBuffer, decodeUtf8StringAsCharBuffer, decodeUtf8StringAsString, decodeUtf8StringIntoCharBuffer, decodeUtf8StringIntoCharBuffer, decodeVersion, getBufferSize, getExternalVocabularies, getForceStreamClose, getParseFragments, getRegisteredEncodingAlgorithms, getStringInterning, isFastInfosetDocument, peek, peek, peek2, read, setBufferSize, setExternalVocabularies, setForceStreamClose, setParseFragments, setRegisteredEncodingAlgorithms, setStringInterning, setVocabulary
-
Field Details
-
INTERNAL_STATE_START_DOCUMENT
protected static final int INTERNAL_STATE_START_DOCUMENT- See Also:
-
INTERNAL_STATE_START_ELEMENT_TERMINATE
protected static final int INTERNAL_STATE_START_ELEMENT_TERMINATE- See Also:
-
INTERNAL_STATE_SINGLE_TERMINATE_ELEMENT_WITH_NAMESPACES
protected static final int INTERNAL_STATE_SINGLE_TERMINATE_ELEMENT_WITH_NAMESPACES- See Also:
-
INTERNAL_STATE_DOUBLE_TERMINATE_ELEMENT
protected static final int INTERNAL_STATE_DOUBLE_TERMINATE_ELEMENT- See Also:
-
INTERNAL_STATE_END_DOCUMENT
protected static final int INTERNAL_STATE_END_DOCUMENT- See Also:
-
INTERNAL_STATE_VOID
protected static final int INTERNAL_STATE_VOID- See Also:
-
_internalState
protected int _internalState -
_eventType
protected int _eventTypeCurrent event -
_qNameStack
Stack of qualified names and namespaces -
_namespaceAIIsStartStack
protected int[] _namespaceAIIsStartStack -
_namespaceAIIsEndStack
protected int[] _namespaceAIIsEndStack -
_stackCount
protected int _stackCount -
_namespaceAIIsPrefix
-
_namespaceAIIsNamespaceName
-
_namespaceAIIsPrefixIndex
protected int[] _namespaceAIIsPrefixIndex -
_namespaceAIIsIndex
protected int _namespaceAIIsIndex -
_currentNamespaceAIIsStart
protected int _currentNamespaceAIIsStartNamespaces associated with START_ELEMENT or END_ELEMENT -
_currentNamespaceAIIsEnd
protected int _currentNamespaceAIIsEnd -
_qualifiedName
Qualified name associated with START_ELEMENT or END_ELEMENT. -
_attributes
List of attributes -
_clearAttributes
protected boolean _clearAttributes -
_characters
protected char[] _charactersCharacters associated with event. -
_charactersOffset
protected int _charactersOffset -
_algorithmURI
-
_algorithmId
protected int _algorithmId -
_isAlgorithmDataCloned
protected boolean _isAlgorithmDataCloned -
_algorithmData
protected byte[] _algorithmData -
_algorithmDataOffset
protected int _algorithmDataOffset -
_algorithmDataLength
protected int _algorithmDataLength -
_piTarget
State for processing instruction -
_piData
-
_nsContext
-
_characterEncodingScheme
-
_manager
-
-
Constructor Details
-
StAXDocumentParser
public StAXDocumentParser() -
StAXDocumentParser
-
StAXDocumentParser
-
-
Method Details
-
setInputStream
Description copied from class:DecoderSet the InputStream to decode the fast infoset document.- Overrides:
setInputStreamin classDecoder- Parameters:
s- the InputStream where the fast infoset document is decoded from.
-
reset
public void reset()Description copied from class:DecoderReset the decoder for reuse decoding another XML infoset. -
resetOnError
protected void resetOnError() -
getProperty
- Specified by:
getPropertyin interfaceXMLStreamReader- Throws:
IllegalArgumentException
-
next
- Specified by:
nextin interfaceXMLStreamReader- Throws:
XMLStreamException
-
require
public final void require(int type, String namespaceURI, String localName) throws XMLStreamException Test if the current event is of the given type and if the namespace and name match the current namespace and name of the current event. If the namespaceURI is null it is not checked for equality, if the localName is null it is not checked for equality.- Specified by:
requirein interfaceXMLStreamReader- Parameters:
type- the event typenamespaceURI- the uri of the event, may be nulllocalName- the localName of the event, may be null- Throws:
XMLStreamException- if the required values are not matched.
-
getElementText
Reads the content of a text-only element. Precondition: the current event is START_ELEMENT. Postcondition: The current event is the corresponding END_ELEMENT.- Specified by:
getElementTextin interfaceXMLStreamReader- Throws:
XMLStreamException- if the current event is not a START_ELEMENT or if a non text element is encountered
-
getElementText
- Parameters:
startElementRead- flag if start element has already been read- Throws:
XMLStreamException
-
nextTag
Skips any white space (isWhiteSpace() returns true), COMMENT, or PROCESSING_INSTRUCTION, until a START_ELEMENT or END_ELEMENT is reached. If other than white space characters, COMMENT, PROCESSING_INSTRUCTION, START_ELEMENT, END_ELEMENT are encountered, an exception is thrown. This method should be used when processing element-only content seperated by white space. This method should be used when processing element-only content because the parser is not able to recognize ignorable whitespace if then DTD is missing or not interpreted.- Specified by:
nextTagin interfaceXMLStreamReader- Returns:
- the event type of the element read
- Throws:
XMLStreamException- if the current event is not white space
-
nextTag
if the current tag has already read, such as in the case EventReader's peek() has been called, the current cursor should not move before the loop- Throws:
XMLStreamException
-
hasNext
- Specified by:
hasNextin interfaceXMLStreamReader- Throws:
XMLStreamException
-
close
- Specified by:
closein interfaceXMLStreamReader- Throws:
XMLStreamException
-
getNamespaceURI
- Specified by:
getNamespaceURIin interfaceXMLStreamReader
-
isStartElement
public final boolean isStartElement()- Specified by:
isStartElementin interfaceXMLStreamReader
-
isEndElement
public final boolean isEndElement()- Specified by:
isEndElementin interfaceXMLStreamReader
-
isCharacters
public final boolean isCharacters()- Specified by:
isCharactersin interfaceXMLStreamReader
-
isWhiteSpace
public final boolean isWhiteSpace()Returns true if the cursor points to a character data event that consists of all whitespace Application calling this method needs to cache the value and avoid calling this method again for the same event.- Specified by:
isWhiteSpacein interfaceXMLStreamReader- Returns:
- true if the cursor points to all whitespace, false otherwise
-
getAttributeValue
- Specified by:
getAttributeValuein interfaceXMLStreamReader
-
getAttributeCount
public final int getAttributeCount()- Specified by:
getAttributeCountin interfaceXMLStreamReader
-
getAttributeName
- Specified by:
getAttributeNamein interfaceXMLStreamReader
-
getAttributeNamespace
- Specified by:
getAttributeNamespacein interfaceXMLStreamReader
-
getAttributeLocalName
- Specified by:
getAttributeLocalNamein interfaceXMLStreamReader
-
getAttributePrefix
- Specified by:
getAttributePrefixin interfaceXMLStreamReader
-
getAttributeType
- Specified by:
getAttributeTypein interfaceXMLStreamReader
-
getAttributeValue
- Specified by:
getAttributeValuein interfaceXMLStreamReader
-
isAttributeSpecified
public final boolean isAttributeSpecified(int index) - Specified by:
isAttributeSpecifiedin interfaceXMLStreamReader
-
getNamespaceCount
public final int getNamespaceCount()- Specified by:
getNamespaceCountin interfaceXMLStreamReader
-
getNamespacePrefix
- Specified by:
getNamespacePrefixin interfaceXMLStreamReader
-
getNamespaceURI
- Specified by:
getNamespaceURIin interfaceXMLStreamReader
-
getNamespaceContext
- Specified by:
getNamespaceContextin interfaceXMLStreamReader
-
getEventType
public final int getEventType()- Specified by:
getEventTypein interfaceXMLStreamReader
-
getText
- Specified by:
getTextin interfaceXMLStreamReader
-
getTextCharacters
public final char[] getTextCharacters()- Specified by:
getTextCharactersin interfaceXMLStreamReader
-
getTextStart
public final int getTextStart()- Specified by:
getTextStartin interfaceXMLStreamReader
-
getTextLength
public final int getTextLength()- Specified by:
getTextLengthin interfaceXMLStreamReader
-
getTextCharacters
public final int getTextCharacters(int sourceStart, char[] target, int targetStart, int length) throws XMLStreamException - Specified by:
getTextCharactersin interfaceXMLStreamReader- Throws:
XMLStreamException
-
checkTextState
protected final void checkTextState() -
getEncoding
- Specified by:
getEncodingin interfaceXMLStreamReader
-
hasText
public final boolean hasText()- Specified by:
hasTextin interfaceXMLStreamReader
-
getLocation
- Specified by:
getLocationin interfaceXMLStreamReader
-
getName
- Specified by:
getNamein interfaceXMLStreamReader
-
getLocalName
- Specified by:
getLocalNamein interfaceXMLStreamReader
-
hasName
public final boolean hasName()- Specified by:
hasNamein interfaceXMLStreamReader
-
getNamespaceURI
- Specified by:
getNamespaceURIin interfaceXMLStreamReader
-
getPrefix
- Specified by:
getPrefixin interfaceXMLStreamReader
-
getVersion
- Specified by:
getVersionin interfaceXMLStreamReader
-
isStandalone
public final boolean isStandalone()- Specified by:
isStandalonein interfaceXMLStreamReader
-
standaloneSet
public final boolean standaloneSet()- Specified by:
standaloneSetin interfaceXMLStreamReader
-
getCharacterEncodingScheme
- Specified by:
getCharacterEncodingSchemein interfaceXMLStreamReader
-
getPITarget
- Specified by:
getPITargetin interfaceXMLStreamReader
-
getPIData
- Specified by:
getPIDatain interfaceXMLStreamReader
-
getNameString
-
getAttributeNameString
-
getTextAlgorithmURI
-
getTextAlgorithmIndex
public final int getTextAlgorithmIndex() -
hasTextAlgorithmBytes
public final boolean hasTextAlgorithmBytes() -
getTextAlgorithmBytes
public final byte[] getTextAlgorithmBytes()Deprecated.was deprecated due to security reasons. Now the method return cloned byte[].Returns the byte[], which represents text algorithms.- Returns:
-
getTextAlgorithmBytesClone
public final byte[] getTextAlgorithmBytesClone() -
getTextAlgorithmStart
public final int getTextAlgorithmStart() -
getTextAlgorithmLength
public final int getTextAlgorithmLength() -
getTextAlgorithmBytes
public final int getTextAlgorithmBytes(int sourceStart, byte[] target, int targetStart, int length) throws XMLStreamException - Throws:
XMLStreamException
-
peekNext
Description copied from interface:FastInfosetStreamReaderPeek at the next event.- Specified by:
peekNextin interfaceFastInfosetStreamReader- Returns:
- the event, which will be the same as that returned from
XMLStreamReader.next(). - Throws:
XMLStreamException
-
onBeforeOctetBufferOverwrite
public void onBeforeOctetBufferOverwrite()Description copied from interface:OctetBufferListenerCallback method that will be called before the (@link Decoder) octet buffer content is going to be changed. So it will be possible to preserve a read data by cloning, or perform other actions.- Specified by:
onBeforeOctetBufferOverwritein interfaceOctetBufferListener
-
accessNamespaceCount
public final int accessNamespaceCount()- Specified by:
accessNamespaceCountin interfaceFastInfosetStreamReader
-
accessLocalName
- Specified by:
accessLocalNamein interfaceFastInfosetStreamReader
-
accessNamespaceURI
- Specified by:
accessNamespaceURIin interfaceFastInfosetStreamReader
-
accessPrefix
- Specified by:
accessPrefixin interfaceFastInfosetStreamReader
-
accessTextCharacters
public final char[] accessTextCharacters()Description copied from interface:FastInfosetStreamReaderReturns a cloned char[] representation of the internal char[] buffer. So be careful, when using this method due to possible performance and memory inefficiency.- Specified by:
accessTextCharactersin interfaceFastInfosetStreamReader- Returns:
- a cloned char[] representation of the internal char[] buffer.
-
accessTextStart
public final int accessTextStart()- Specified by:
accessTextStartin interfaceFastInfosetStreamReader
-
accessTextLength
public final int accessTextLength()- Specified by:
accessTextLengthin interfaceFastInfosetStreamReader
-
processDII
- Throws:
FastInfosetExceptionIOException
-
processDIIOptionalProperties
- Throws:
FastInfosetExceptionIOException
-
resizeNamespaceAIIs
protected final void resizeNamespaceAIIs() -
processEIIWithNamespaces
protected final void processEIIWithNamespaces(boolean hasAttributes) throws FastInfosetException, IOException - Throws:
FastInfosetExceptionIOException
-
processEII
protected final void processEII(QualifiedName name, boolean hasAttributes) throws FastInfosetException, IOException - Throws:
FastInfosetExceptionIOException
-
processAIIs
- Throws:
FastInfosetExceptionIOException
-
processEIIIndexMedium
- Throws:
FastInfosetExceptionIOException
-
processEIIIndexLarge
- Throws:
FastInfosetExceptionIOException
-
processLiteralQualifiedName
protected final QualifiedName processLiteralQualifiedName(int state, QualifiedName q) throws FastInfosetException, IOException - Throws:
FastInfosetExceptionIOException
-
processCommentII
- Throws:
FastInfosetExceptionIOException
-
processProcessingII
- Throws:
FastInfosetExceptionIOException
-
processUnexpandedEntityReference
protected final void processUnexpandedEntityReference(int b) throws FastInfosetException, IOException - Throws:
FastInfosetExceptionIOException
-
processCIIEncodingAlgorithm
protected final void processCIIEncodingAlgorithm(boolean addToTable) throws FastInfosetException, IOException - Throws:
FastInfosetExceptionIOException
-
processAIIEncodingAlgorithm
protected final void processAIIEncodingAlgorithm(QualifiedName name, boolean addToTable) throws FastInfosetException, IOException - Throws:
FastInfosetExceptionIOException
-
convertEncodingAlgorithmDataToCharacters
protected final void convertEncodingAlgorithmDataToCharacters() throws FastInfosetException, IOException- Throws:
FastInfosetExceptionIOException
-
convertBase64AlorithmDataToCharacters
protected void convertBase64AlorithmDataToCharacters(StringBuffer buffer) throws EncodingAlgorithmException, IOException -
isBase64Follows
- Throws:
IOException
-
getNamespaceDecl
-
getURI
-
getPrefixes
-
getAttributesHolder
-
setManager
-