Class StAXDocumentParser

    • Field Detail

      • logger

        private static final java.util.logging.Logger logger
      • INTERNAL_STATE_START_DOCUMENT

        protected static final int INTERNAL_STATE_START_DOCUMENT
        See Also:
        Constant Field Values
      • INTERNAL_STATE_START_ELEMENT_TERMINATE

        protected static final int INTERNAL_STATE_START_ELEMENT_TERMINATE
        See Also:
        Constant Field Values
      • INTERNAL_STATE_SINGLE_TERMINATE_ELEMENT_WITH_NAMESPACES

        protected static final int INTERNAL_STATE_SINGLE_TERMINATE_ELEMENT_WITH_NAMESPACES
        See Also:
        Constant Field Values
      • INTERNAL_STATE_DOUBLE_TERMINATE_ELEMENT

        protected static final int INTERNAL_STATE_DOUBLE_TERMINATE_ELEMENT
        See Also:
        Constant Field Values
      • INTERNAL_STATE_END_DOCUMENT

        protected static final int INTERNAL_STATE_END_DOCUMENT
        See Also:
        Constant Field Values
      • _internalState

        protected int _internalState
      • _eventType

        protected int _eventType
        Current event
      • _qNameStack

        protected QualifiedName[] _qNameStack
        Stack of qualified names and namespaces
      • _namespaceAIIsStartStack

        protected int[] _namespaceAIIsStartStack
      • _namespaceAIIsEndStack

        protected int[] _namespaceAIIsEndStack
      • _stackCount

        protected int _stackCount
      • _namespaceAIIsPrefix

        protected java.lang.String[] _namespaceAIIsPrefix
      • _namespaceAIIsNamespaceName

        protected java.lang.String[] _namespaceAIIsNamespaceName
      • _namespaceAIIsPrefixIndex

        protected int[] _namespaceAIIsPrefixIndex
      • _namespaceAIIsIndex

        protected int _namespaceAIIsIndex
      • _currentNamespaceAIIsStart

        protected int _currentNamespaceAIIsStart
        Namespaces associated with START_ELEMENT or END_ELEMENT
      • _currentNamespaceAIIsEnd

        protected int _currentNamespaceAIIsEnd
      • _qualifiedName

        protected QualifiedName _qualifiedName
        Qualified name associated with START_ELEMENT or END_ELEMENT.
      • _clearAttributes

        protected boolean _clearAttributes
      • _characters

        protected char[] _characters
        Characters associated with event.
      • _charactersOffset

        protected int _charactersOffset
      • _algorithmURI

        protected java.lang.String _algorithmURI
      • _algorithmId

        protected int _algorithmId
      • _isAlgorithmDataCloned

        protected boolean _isAlgorithmDataCloned
      • _algorithmData

        protected byte[] _algorithmData
      • _algorithmDataOffset

        protected int _algorithmDataOffset
      • _algorithmDataLength

        protected int _algorithmDataLength
      • _piTarget

        protected java.lang.String _piTarget
        State for processing instruction
      • _piData

        protected java.lang.String _piData
      • _characterEncodingScheme

        protected java.lang.String _characterEncodingScheme
      • base64TaleBytes

        private byte[] base64TaleBytes
      • base64TaleLength

        private int base64TaleLength
    • Constructor Detail

      • StAXDocumentParser

        public StAXDocumentParser()
      • StAXDocumentParser

        public StAXDocumentParser​(java.io.InputStream s)
      • StAXDocumentParser

        public StAXDocumentParser​(java.io.InputStream s,
                                  StAXManager manager)
    • Method Detail

      • setInputStream

        public void setInputStream​(java.io.InputStream s)
        Description copied from class: Decoder
        Set the InputStream to decode the fast infoset document.
        Overrides:
        setInputStream in class Decoder
        Parameters:
        s - the InputStream where the fast infoset document is decoded from.
      • reset

        public void reset()
        Description copied from class: Decoder
        Reset the decoder for reuse decoding another XML infoset.
        Overrides:
        reset in class Decoder
      • resetOnError

        protected void resetOnError()
      • getProperty

        public java.lang.Object getProperty​(java.lang.String name)
                                     throws java.lang.IllegalArgumentException
        Specified by:
        getProperty in interface javax.xml.stream.XMLStreamReader
        Throws:
        java.lang.IllegalArgumentException
      • next

        public int next()
                 throws javax.xml.stream.XMLStreamException
        Specified by:
        next in interface javax.xml.stream.XMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • processUtf8CharacterString

        private final void processUtf8CharacterString​(int b)
                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • processUtf16CharacterString

        private final void processUtf16CharacterString​(int b)
                                                throws java.io.IOException
        Throws:
        java.io.IOException
      • popStack

        private void popStack()
      • require

        public final void require​(int type,
                                  java.lang.String namespaceURI,
                                  java.lang.String localName)
                           throws javax.xml.stream.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:
        require in interface javax.xml.stream.XMLStreamReader
        Parameters:
        type - the event type
        namespaceURI - the uri of the event, may be null
        localName - the localName of the event, may be null
        Throws:
        javax.xml.stream.XMLStreamException - if the required values are not matched.
      • getElementText

        public final java.lang.String getElementText()
                                              throws javax.xml.stream.XMLStreamException
        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:
        getElementText in interface javax.xml.stream.XMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException - if the current event is not a START_ELEMENT or if a non text element is encountered
      • getElementText

        public final java.lang.String getElementText​(boolean startElementRead)
                                              throws javax.xml.stream.XMLStreamException
        Parameters:
        startElementRead - flag if start element has already been read
        Throws:
        javax.xml.stream.XMLStreamException
      • nextTag

        public final int nextTag()
                          throws javax.xml.stream.XMLStreamException
        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:
        nextTag in interface javax.xml.stream.XMLStreamReader
        Returns:
        the event type of the element read
        Throws:
        javax.xml.stream.XMLStreamException - if the current event is not white space
      • nextTag

        public final int nextTag​(boolean currentTagRead)
                          throws javax.xml.stream.XMLStreamException
        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:
        javax.xml.stream.XMLStreamException
      • hasNext

        public final boolean hasNext()
                              throws javax.xml.stream.XMLStreamException
        Specified by:
        hasNext in interface javax.xml.stream.XMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • close

        public void close()
                   throws javax.xml.stream.XMLStreamException
        Specified by:
        close in interface javax.xml.stream.XMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getNamespaceURI

        public final java.lang.String getNamespaceURI​(java.lang.String prefix)
        Specified by:
        getNamespaceURI in interface javax.xml.stream.XMLStreamReader
      • isStartElement

        public final boolean isStartElement()
        Specified by:
        isStartElement in interface javax.xml.stream.XMLStreamReader
      • isEndElement

        public final boolean isEndElement()
        Specified by:
        isEndElement in interface javax.xml.stream.XMLStreamReader
      • isCharacters

        public final boolean isCharacters()
        Specified by:
        isCharacters in interface javax.xml.stream.XMLStreamReader
      • 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:
        isWhiteSpace in interface javax.xml.stream.XMLStreamReader
        Returns:
        true if the cursor points to all whitespace, false otherwise
      • getAttributeValue

        public final java.lang.String getAttributeValue​(java.lang.String namespaceURI,
                                                        java.lang.String localName)
        Specified by:
        getAttributeValue in interface javax.xml.stream.XMLStreamReader
      • getAttributeCount

        public final int getAttributeCount()
        Specified by:
        getAttributeCount in interface javax.xml.stream.XMLStreamReader
      • getAttributeName

        public final javax.xml.namespace.QName getAttributeName​(int index)
        Specified by:
        getAttributeName in interface javax.xml.stream.XMLStreamReader
      • getAttributeNamespace

        public final java.lang.String getAttributeNamespace​(int index)
        Specified by:
        getAttributeNamespace in interface javax.xml.stream.XMLStreamReader
      • getAttributeLocalName

        public final java.lang.String getAttributeLocalName​(int index)
        Specified by:
        getAttributeLocalName in interface javax.xml.stream.XMLStreamReader
      • getAttributePrefix

        public final java.lang.String getAttributePrefix​(int index)
        Specified by:
        getAttributePrefix in interface javax.xml.stream.XMLStreamReader
      • getAttributeType

        public final java.lang.String getAttributeType​(int index)
        Specified by:
        getAttributeType in interface javax.xml.stream.XMLStreamReader
      • getAttributeValue

        public final java.lang.String getAttributeValue​(int index)
        Specified by:
        getAttributeValue in interface javax.xml.stream.XMLStreamReader
      • isAttributeSpecified

        public final boolean isAttributeSpecified​(int index)
        Specified by:
        isAttributeSpecified in interface javax.xml.stream.XMLStreamReader
      • getNamespaceCount

        public final int getNamespaceCount()
        Specified by:
        getNamespaceCount in interface javax.xml.stream.XMLStreamReader
      • getNamespacePrefix

        public final java.lang.String getNamespacePrefix​(int index)
        Specified by:
        getNamespacePrefix in interface javax.xml.stream.XMLStreamReader
      • getNamespaceURI

        public final java.lang.String getNamespaceURI​(int index)
        Specified by:
        getNamespaceURI in interface javax.xml.stream.XMLStreamReader
      • getNamespaceContext

        public final javax.xml.namespace.NamespaceContext getNamespaceContext()
        Specified by:
        getNamespaceContext in interface javax.xml.stream.XMLStreamReader
      • getEventType

        public final int getEventType()
        Specified by:
        getEventType in interface javax.xml.stream.XMLStreamReader
      • getText

        public final java.lang.String getText()
        Specified by:
        getText in interface javax.xml.stream.XMLStreamReader
      • getTextCharacters

        public final char[] getTextCharacters()
        Specified by:
        getTextCharacters in interface javax.xml.stream.XMLStreamReader
      • getTextStart

        public final int getTextStart()
        Specified by:
        getTextStart in interface javax.xml.stream.XMLStreamReader
      • getTextLength

        public final int getTextLength()
        Specified by:
        getTextLength in interface javax.xml.stream.XMLStreamReader
      • getTextCharacters

        public final int getTextCharacters​(int sourceStart,
                                           char[] target,
                                           int targetStart,
                                           int length)
                                    throws javax.xml.stream.XMLStreamException
        Specified by:
        getTextCharacters in interface javax.xml.stream.XMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • checkTextState

        protected final void checkTextState()
      • getEncoding

        public final java.lang.String getEncoding()
        Specified by:
        getEncoding in interface javax.xml.stream.XMLStreamReader
      • hasText

        public final boolean hasText()
        Specified by:
        hasText in interface javax.xml.stream.XMLStreamReader
      • getLocation

        public final javax.xml.stream.Location getLocation()
        Specified by:
        getLocation in interface javax.xml.stream.XMLStreamReader
      • getName

        public final javax.xml.namespace.QName getName()
        Specified by:
        getName in interface javax.xml.stream.XMLStreamReader
      • getLocalName

        public final java.lang.String getLocalName()
        Specified by:
        getLocalName in interface javax.xml.stream.XMLStreamReader
      • hasName

        public final boolean hasName()
        Specified by:
        hasName in interface javax.xml.stream.XMLStreamReader
      • getNamespaceURI

        public final java.lang.String getNamespaceURI()
        Specified by:
        getNamespaceURI in interface javax.xml.stream.XMLStreamReader
      • getPrefix

        public final java.lang.String getPrefix()
        Specified by:
        getPrefix in interface javax.xml.stream.XMLStreamReader
      • getVersion

        public final java.lang.String getVersion()
        Specified by:
        getVersion in interface javax.xml.stream.XMLStreamReader
      • isStandalone

        public final boolean isStandalone()
        Specified by:
        isStandalone in interface javax.xml.stream.XMLStreamReader
      • standaloneSet

        public final boolean standaloneSet()
        Specified by:
        standaloneSet in interface javax.xml.stream.XMLStreamReader
      • getCharacterEncodingScheme

        public final java.lang.String getCharacterEncodingScheme()
        Specified by:
        getCharacterEncodingScheme in interface javax.xml.stream.XMLStreamReader
      • getPITarget

        public final java.lang.String getPITarget()
        Specified by:
        getPITarget in interface javax.xml.stream.XMLStreamReader
      • getPIData

        public final java.lang.String getPIData()
        Specified by:
        getPIData in interface javax.xml.stream.XMLStreamReader
      • getNameString

        public final java.lang.String getNameString()
      • getAttributeNameString

        public final java.lang.String getAttributeNameString​(int index)
      • getTextAlgorithmURI

        public final java.lang.String 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 javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • peekNext

        public final int peekNext()
                           throws javax.xml.stream.XMLStreamException
        Description copied from interface: FastInfosetStreamReader
        Peek at the next event.
        Specified by:
        peekNext in interface FastInfosetStreamReader
        Returns:
        the event, which will be the same as that returned from #next.
        Throws:
        javax.xml.stream.XMLStreamException
      • onBeforeOctetBufferOverwrite

        public void onBeforeOctetBufferOverwrite()
        Description copied from interface: OctetBufferListener
        Callback 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:
        onBeforeOctetBufferOverwrite in interface OctetBufferListener
      • accessTextCharacters

        public final char[] accessTextCharacters()
        Description copied from interface: FastInfosetStreamReader
        Returns 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:
        accessTextCharacters in interface FastInfosetStreamReader
        Returns:
        a cloned char[] representation of the internal char[] buffer.
      • resizeNamespaceAIIs

        protected final void resizeNamespaceAIIs()
      • processCIIEncodingAlgorithm

        protected final void processCIIEncodingAlgorithm​(boolean addToTable)
                                                  throws FastInfosetException,
                                                         java.io.IOException
        Throws:
        FastInfosetException
        java.io.IOException
      • convertEncodingAlgorithmDataToCharacters

        protected final void convertEncodingAlgorithmDataToCharacters()
                                                               throws FastInfosetException,
                                                                      java.io.IOException
        Throws:
        FastInfosetException
        java.io.IOException
      • isBase64Follows

        public boolean isBase64Follows()
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • getNamespaceDecl

        public final java.lang.String getNamespaceDecl​(java.lang.String prefix)
      • getURI

        public final java.lang.String getURI​(java.lang.String prefix)
      • getPrefixes

        public final java.util.Iterator getPrefixes()
      • setManager

        public final void setManager​(StAXManager manager)
      • getEventTypeString

        static final java.lang.String getEventTypeString​(int eventType)