Class MXParser

  • All Implemented Interfaces:
    javax.xml.stream.Location, javax.xml.stream.XMLStreamConstants, javax.xml.stream.XMLStreamReader

    public class MXParser
    extends java.lang.Object
    implements javax.xml.stream.XMLStreamReader, javax.xml.stream.Location
    XML Streaming Parser.
    Author:
    Aleksander Slominski
    • Constructor Summary

      Constructors 
      Constructor Description
      MXParser()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addDefaultAttributes​(java.lang.String elementName)  
      protected void checkCharValidity​(int ch, boolean surrogatesOk)  
      boolean checkForXMLDecl()  
      void close()
      Frees any resources associated with this Reader.
      void defineEntityReplacementText​(java.lang.String entityName, java.lang.String replacementText)  
      protected void ensureAttributesCapacity​(int size)
      Make sure that in attributes temporary array is enough space.
      protected void ensureElementsCapacity()
      Make sure that we have enough space to keep element stack if passed size.
      protected void ensureEntityCapacity()  
      protected void ensureLocalNamespacesCapacity​(int size)  
      protected void ensureNamespacesCapacity​(int size)  
      protected void ensurePC​(int end)  
      protected static int fastHash​(char[] ch, int off, int len)
      simplistic implementation of hash function that has constant time to compute - so it also means diminishing hash quality for long strings but for XML parsing it should be good enough ...
      protected void fillBuf()  
      int getAttributeCount()
      Returns the count of attributes on this START_ELEMENT, this method is only valid on a START_ELEMENT or ATTRIBUTE.
      java.lang.String getAttributeLocalName​(int index)
      Returns the localName of the attribute at the provided index
      javax.xml.namespace.QName getAttributeName​(int index)
      Returns the qname of the attribute at the provided index
      java.lang.String getAttributeNamespace​(int index)
      Returns the namespace of the attribute at the provided index
      java.lang.String getAttributePrefix​(int index)
      Returns the prefix of this attribute at the provided index
      java.util.Iterator getAttributes()  
      java.lang.String getAttributeType​(int index)
      Returns the XML type of the attribute at the provided index
      java.lang.String getAttributeValue​(int index)
      Returns the value of the attribute at the index
      java.lang.String getAttributeValue​(java.lang.String namespace, java.lang.String name)
      Returns the normalized attribute value of the attribute with the namespace and localName If the namespaceURI is null the namespace is not checked for equality
      java.lang.String getCharacterEncodingScheme()
      Returns the character encoding declared on the xml declaration Returns null if none was declared
      int getCharacterOffset()
      Return the byte or character offset into the input source this location is pointing to.
      int getColumnNumber()
      Return the column number where the current event ends, returns -1 if none is available.
      ConfigurationContextBase getConfigurationContext()  
      int getDepth()  
      java.lang.String getElementText()
      Reads the content of a text-only element, an exception is thrown if this is not a text-only element.
      java.lang.String getEncoding()
      Return input encoding if known or null if unknown.
      int getEventType()
      Returns an integer code that indicates the type of the event the cursor is pointing to.
      boolean getFeature​(java.lang.String name)
      Unknown properties are always returned as false
      java.lang.String getInputEncoding()  
      int getLineNumber()
      Return the line number where the current event ends, returns -1 if none is available.
      java.lang.String getLocalName()
      Returns the (local) name of the current event.
      int getLocalNamespaceCount()  
      javax.xml.stream.Location getLocation()
      Return the current location of the processor.
      java.lang.String getLocationURI()  
      javax.xml.namespace.QName getName()
      Returns a QName for the current START_ELEMENT or END_ELEMENT event
      javax.xml.namespace.NamespaceContext getNamespaceContext()
      Returns a read only namespace context for the current position.
      int getNamespaceCount()
      Returns the count of namespaces declared on this START_ELEMENT or END_ELEMENT.
      int getNamespaceCount​(int depth)  
      java.lang.String getNamespacePrefix​(int pos)
      Returns the prefix for the namespace declared at the index.
      java.util.Iterator getNamespaces()  
      java.lang.String getNamespaceURI()
      If the current event is a START_ELEMENT or END_ELEMENT this method returns the URI of the current element (URI mapping to the prefix element/attribute has, if any; or if no prefix, null for attribute, and the default namespace URI for the element).
      java.lang.String getNamespaceURI​(int pos)
      Returns the uri for the namespace declared at the index.
      java.lang.String getNamespaceURI​(java.lang.String prefix)
      Return the uri for the given prefix.
      java.util.Iterator getOutOfScopeNamespaces()  
      java.lang.String getPIData()
      Get the data section of a processing instruction
      java.lang.String getPITarget()
      Get the target of a processing instruction
      java.lang.String getPositionDescription()
      Return string describing current position of parsers as text 'STATE [seen %s...] @line:column'.
      java.lang.String getPrefix()
      Returns the prefix of the current event or null if the event does not have a prefix
      java.lang.Object getProperty​(java.lang.String name)
      Get the value of a feature/property from the underlying implementation
      java.lang.String getPublicId()
      Returns the public ID of the XML
      java.lang.String getSystemId()
      Returns the system ID of the XML
      java.lang.String getText()
      Returns the current value of the parse event as a string, this returns the string value of a CHARACTERS event, returns the value of a COMMENT, the replacement value for an ENTITY_REFERENCE, the string value of a CDATA section, the string value for a SPACE event, or the String value of the internal subset of the DTD.
      char[] getTextCharacters()
      Returns an array which contains the characters from this event.
      int getTextCharacters​(int sourceStart, char[] target, int targetStart, int length)
      Gets the the text associated with a CHARACTERS, SPACE or CDATA event.
      int getTextLength()
      Returns the length of the sequence of characters for this Text event within the text character array.
      int getTextStart()
      Returns the offset into the text character array where the first character (of this text event) is stored.
      java.io.Reader getTextStream()  
      java.lang.String getValue()  
      java.lang.String getVersion()
      Get the xml version declared on the xml declaration Returns null if none was declared
      boolean hasAttributes()  
      boolean hasName()
      returns true if the current event has a name (is a START_ELEMENT or END_ELEMENT) returns false otherwise
      boolean hasNamespaces()  
      boolean hasNext()
      Returns true if there are more parsing events and false if there are no more events.
      boolean hasText()
      Return true if the current event has text, false otherwise The following events have text: CHARACTERS,DTD ,ENTITY_REFERENCE, COMMENT, SPACE
      java.util.Iterator internalGetNamespaces​(int depth, int namespaceCount)  
      boolean isAttributeSpecified​(int index)
      Returns a boolean which indicates if this attribute was created by default
      boolean isCharacters()
      Returns true if the cursor points to a character data event
      boolean isEmptyElementTag()  
      boolean isEndElement()
      Returns true if the cursor points to an end tag (otherwise false)
      boolean isEOF()  
      protected boolean isNameChar​(char ch)  
      protected boolean isNameStartChar​(char ch)  
      protected boolean isS​(char ch)  
      boolean isStandalone()
      Get the standalone declaration from the xml declaration, if one found (XMLStreamReader.standaloneSet() returns true if one was specified).
      boolean isStartElement()
      Returns true if the cursor points to a start tag (otherwise false)
      boolean isWhiteSpace()
      Returns true if the cursor points to a character data event that consists of all whitespace
      protected void joinPC()  
      protected char[] lookupEntityReplacement​(int entitNameLen)  
      protected char more()  
      boolean moveToEndElement()  
      boolean moveToEndElement​(java.lang.String localName)  
      boolean moveToEndElement​(java.lang.String localName, java.lang.String namespaceUri)  
      boolean moveToStartElement()  
      boolean moveToStartElement​(java.lang.String localName)  
      boolean moveToStartElement​(java.lang.String localName, java.lang.String namespaceUri)  
      protected java.lang.String newString​(char[] cbuf, int off, int len)  
      protected java.lang.String newStringIntern​(char[] cbuf, int off, int len)  
      int next()
      Get next parsing event - a processor may return all contiguous character data in a single chunk, or it may split it into several chunks.
      int nextElement()  
      protected int nextImpl()  
      int nextTag()
      Skips any white space (isWhiteSpace() returns true), COMMENT, or PROCESSING_INSTRUCTION, until a START_ELEMENT or END_ELEMENT is reached.
      java.lang.String nextText()  
      int nextToken()  
      protected char parseAttribute()  
      protected void parseCDATA()  
      protected void parseComment()  
      protected void parseDocdecl()  
      int parseEndTag()  
      protected char[] parseEntityRef​(boolean replace)  
      protected int parseEpilog()  
      protected boolean parsePI()  
      protected int parseProlog()  
      int parseStartTag()  
      protected void parseXmlDecl​(char ch)  
      protected void parseXmlDeclWithVersion​(int versionStart, int versionEnd)  
      protected java.lang.String printable​(char ch)  
      protected java.lang.String printable​(java.lang.String s)  
      protected void processDTD()  
      void recycle()  
      void require​(int type, java.lang.String namespace, java.lang.String name)
      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.
      protected char requireInput​(char ch, char[] input)  
      protected char requireNextS()  
      protected void resetStringCache()  
      void setConfigurationContext​(ConfigurationContextBase c)  
      void setFeature​(java.lang.String name, boolean state)
      Method setFeature
      void setInput​(java.io.InputStream in)  
      void setInput​(java.io.InputStream inputStream, java.lang.String inputEncoding)  
      void setInput​(java.io.Reader in)  
      void setProperty​(java.lang.String name, java.lang.Object value)  
      void skip()  
      protected char skipS​(char ch)  
      boolean standaloneSet()
      Checks if standalone was set in the document
      javax.xml.stream.XMLStreamReader subReader()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • FEATURE_XML_ROUNDTRIP

        protected static final java.lang.String FEATURE_XML_ROUNDTRIP
        See Also:
        Constant Field Values
      • FEATURE_NAMES_INTERNED

        protected static final java.lang.String FEATURE_NAMES_INTERNED
        See Also:
        Constant Field Values
      • FEATURE_PROCESS_DOCDECL

        public static final java.lang.String FEATURE_PROCESS_DOCDECL
        See Also:
        Constant Field Values
      • FEATURE_STAX_NOTATIONS

        public static final java.lang.String FEATURE_STAX_NOTATIONS
        See Also:
        Constant Field Values
      • FEATURE_STAX_ENTITIES

        public static final java.lang.String FEATURE_STAX_ENTITIES
        See Also:
        Constant Field Values
      • TYPES

        public static final java.lang.String[] TYPES
        These constants are used for diagnostics messages, and need to match with ones from XMLStreamConstants.
      • NO_NAMESPACE

        public static final java.lang.String NO_NAMESPACE
        This constant defines URI used for "no namespace" (when the default namespace not defined, for elements; when attribute has no prefix, or for all URIs if namespace support is disabled).
      • allStringsInterned

        protected boolean allStringsInterned
        Implementation notice: the is instance variable that controls if newString() is interning.

        NOTE: newStringIntern always returns interned strings and newString MAY return interned String depending on this variable.

        NOTE: by default in this minimal implementation it is false!

      • FEATURE_PROCESS_NAMESPACES

        public static final java.lang.String FEATURE_PROCESS_NAMESPACES
        See Also:
        Constant Field Values
      • processNamespaces

        protected boolean processNamespaces
      • roundtripSupported

        protected boolean roundtripSupported
      • lineNumber

        protected int lineNumber
      • columnNumber

        protected int columnNumber
      • seenRoot

        protected boolean seenRoot
      • reachedEnd

        protected boolean reachedEnd
      • eventType

        protected int eventType
      • emptyElementTag

        protected boolean emptyElementTag
      • depth

        protected int depth
      • elRawName

        protected char[][] elRawName
      • elRawNameEnd

        protected int[] elRawNameEnd
      • elName

        protected java.lang.String[] elName
      • elPrefix

        protected java.lang.String[] elPrefix
      • elUri

        protected java.lang.String[] elUri
      • elNamespaceCount

        protected int[] elNamespaceCount
      • xmlVersion

        protected java.lang.String xmlVersion
        XML version found from the xml declaration, if any.
      • standalone

        protected boolean standalone
        Flag that indicates whether 'standalone="yes"' was found from the xml declaration.
      • standaloneSet

        protected boolean standaloneSet
      • charEncodingScheme

        protected java.lang.String charEncodingScheme
      • piTarget

        protected java.lang.String piTarget
      • piData

        protected java.lang.String piData
      • mDtdIntSubset

        protected com.wutka.dtd.DTD mDtdIntSubset
        If the internal DTD subset was parsed, this object will be non-null, and can be used for accessing entities, elements and notations declared in the internal subset.
      • defaultAttributes

        protected java.util.HashMap defaultAttributes
      • lookupNameStartChar

        protected static boolean[] lookupNameStartChar
      • lookupNameChar

        protected static boolean[] lookupNameChar
      • attributeCount

        protected int attributeCount
      • attributeName

        protected java.lang.String[] attributeName
      • attributeNameHash

        protected int[] attributeNameHash
      • attributePrefix

        protected java.lang.String[] attributePrefix
      • attributeUri

        protected java.lang.String[] attributeUri
      • attributeValue

        protected java.lang.String[] attributeValue
      • namespaceEnd

        protected int namespaceEnd
      • namespacePrefix

        protected java.lang.String[] namespacePrefix
      • namespacePrefixHash

        protected int[] namespacePrefixHash
      • namespaceUri

        protected java.lang.String[] namespaceUri
      • localNamespaceEnd

        protected int localNamespaceEnd
      • localNamespacePrefix

        protected java.lang.String[] localNamespacePrefix
      • localNamespacePrefixHash

        protected int[] localNamespacePrefixHash
      • localNamespaceUri

        protected java.lang.String[] localNamespaceUri
      • entityEnd

        protected int entityEnd
      • entityName

        protected java.lang.String[] entityName
      • entityNameBuf

        protected char[][] entityNameBuf
      • entityNameHash

        protected int[] entityNameHash
      • entityReplacementBuf

        protected char[][] entityReplacementBuf
      • entityReplacement

        protected java.lang.String[] entityReplacement
      • reader

        protected java.io.Reader reader
      • inputEncoding

        protected java.lang.String inputEncoding
      • bufLoadFactor

        protected int bufLoadFactor
      • buf

        protected char[] buf
        Logics for this should be clarified... but it looks like we use a 8k buffer if there's 1M of free memory or more, otherwise just 256 bytes?
      • bufSoftLimit

        protected int bufSoftLimit
      • bufAbsoluteStart

        protected int bufAbsoluteStart
      • bufStart

        protected int bufStart
      • bufEnd

        protected int bufEnd
      • pos

        protected int pos
      • posStart

        protected int posStart
      • posEnd

        protected int posEnd
      • pc

        protected char[] pc
      • pcStart

        protected int pcStart
      • pcEnd

        protected int pcEnd
      • usePC

        protected boolean usePC
      • seenStartTag

        protected boolean seenStartTag
      • seenEndTag

        protected boolean seenEndTag
      • pastEndTag

        protected boolean pastEndTag
      • seenAmpersand

        protected boolean seenAmpersand
      • seenMarkup

        protected boolean seenMarkup
      • seenDocdecl

        protected boolean seenDocdecl
      • tokenize

        protected boolean tokenize
      • text

        protected java.lang.String text
        Lazily-constructed String that contains what getText() returns; cleared by tokenizer before parsing new events
      • entityRefName

        protected java.lang.String entityRefName
      • entityValue

        protected char[] entityValue
        Replacement value for the current entity, when automatic entity expansion is disabled. Will always refer to some other array; either globally shared ones (for general entities), or the temp buffer for char entities. As such, does not need to be cleared by tokenizer: will get properly overwritten as needed
      • charRefOneCharBuf

        protected char[] charRefOneCharBuf
        This buffer is used for expanding single character (non-surrogate) character entity expansions.
      • charRefTwoCharBuf

        protected char[] charRefTwoCharBuf
        This buffer is used in cases where an entity expands to a surrogate pair. Since this is a rare occurence, it's lazily created if needed.
      • VERSION

        protected static final char[] VERSION
      • ENCODING

        protected static final char[] ENCODING
      • STANDALONE

        protected static final char[] STANDALONE
      • YES

        protected static final char[] YES
      • NO

        protected static final char[] NO
    • Constructor Detail

      • MXParser

        public MXParser()
    • Method Detail

      • resetStringCache

        protected void resetStringCache()
      • newString

        protected java.lang.String newString​(char[] cbuf,
                                             int off,
                                             int len)
      • newStringIntern

        protected java.lang.String newStringIntern​(char[] cbuf,
                                                   int off,
                                                   int len)
      • ensureElementsCapacity

        protected void ensureElementsCapacity()
        Make sure that we have enough space to keep element stack if passed size. It will always create one additional slot then current depth
      • isNameStartChar

        protected boolean isNameStartChar​(char ch)
      • isNameChar

        protected boolean isNameChar​(char ch)
      • isS

        protected boolean isS​(char ch)
      • checkCharValidity

        protected void checkCharValidity​(int ch,
                                         boolean surrogatesOk)
                                  throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • ensureAttributesCapacity

        protected void ensureAttributesCapacity​(int size)
        Make sure that in attributes temporary array is enough space.
      • ensureNamespacesCapacity

        protected void ensureNamespacesCapacity​(int size)
      • ensureLocalNamespacesCapacity

        protected void ensureLocalNamespacesCapacity​(int size)
      • getLocalNamespaceCount

        public int getLocalNamespaceCount()
      • fastHash

        protected static final int fastHash​(char[] ch,
                                            int off,
                                            int len)
        simplistic implementation of hash function that has constant time to compute - so it also means diminishing hash quality for long strings but for XML parsing it should be good enough ...
      • ensureEntityCapacity

        protected void ensureEntityCapacity()
      • setFeature

        public void setFeature​(java.lang.String name,
                               boolean state)
                        throws javax.xml.stream.XMLStreamException
        Method setFeature
        Parameters:
        name - a String
        state - a boolean
        Throws:
        javax.xml.stream.XMLStreamException
      • getFeature

        public boolean getFeature​(java.lang.String name)
        Unknown properties are always returned as false
      • setProperty

        public void setProperty​(java.lang.String name,
                                java.lang.Object value)
                         throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • checkForXMLDecl

        public boolean checkForXMLDecl()
                                throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • setInput

        public void setInput​(java.io.Reader in)
                      throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • setInput

        public void setInput​(java.io.InputStream in)
                      throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • setInput

        public void setInput​(java.io.InputStream inputStream,
                             java.lang.String inputEncoding)
                      throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • getInputEncoding

        public java.lang.String getInputEncoding()
      • defineEntityReplacementText

        public void defineEntityReplacementText​(java.lang.String entityName,
                                                java.lang.String replacementText)
                                         throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • getNamespaceCount

        public int getNamespaceCount()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the count of namespaces declared on this START_ELEMENT or END_ELEMENT. This method is only valid on a START_ELEMENT, END_ELEMENT or NAMESPACE. On an END_ELEMENT the count is of the namespaces that are about to go out of scope. This is the equivalent of the information reported by SAX callback for an end element event.
        Specified by:
        getNamespaceCount in interface javax.xml.stream.XMLStreamReader
        Returns:
        returns the number of namespace declarations on this specific element
      • getNamespaceCount

        public int getNamespaceCount​(int depth)
      • getNamespacePrefix

        public java.lang.String getNamespacePrefix​(int pos)
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the prefix for the namespace declared at the index. Returns null if this is the default namespace declaration
        Specified by:
        getNamespacePrefix in interface javax.xml.stream.XMLStreamReader
        Parameters:
        pos - the position of the namespace declaration
        Returns:
        returns the namespace prefix
      • getNamespaceURI

        public java.lang.String getNamespaceURI​(int pos)
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the uri for the namespace declared at the index.
        Specified by:
        getNamespaceURI in interface javax.xml.stream.XMLStreamReader
        Parameters:
        pos - the position of the namespace declaration
        Returns:
        returns the namespace uri
      • getNamespaceURI

        public java.lang.String getNamespaceURI​(java.lang.String prefix)
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Return the uri for the given prefix. The uri returned depends on the current state of the processor.

        NOTE:The 'xml' prefix is bound as defined in Namespaces in XML specification to "http://www.w3.org/XML/1998/namespace".

        NOTE: The 'xmlns' prefix must be resolved to following namespace http://www.w3.org/2000/xmlns/

        Specified by:
        getNamespaceURI in interface javax.xml.stream.XMLStreamReader
        Parameters:
        prefix - The prefix to lookup, may not be null
        Returns:
        the uri bound to the given prefix or null if it is not bound
      • getDepth

        public int getDepth()
      • getPositionDescription

        public java.lang.String getPositionDescription()
        Return string describing current position of parsers as text 'STATE [seen %s...] @line:column'.
      • getLineNumber

        public int getLineNumber()
        Description copied from interface: javax.xml.stream.Location
        Return the line number where the current event ends, returns -1 if none is available.
        Specified by:
        getLineNumber in interface javax.xml.stream.Location
        Returns:
        the current line number
      • getColumnNumber

        public int getColumnNumber()
        Description copied from interface: javax.xml.stream.Location
        Return the column number where the current event ends, returns -1 if none is available.
        Specified by:
        getColumnNumber in interface javax.xml.stream.Location
        Returns:
        the current column number
      • getLocationURI

        public java.lang.String getLocationURI()
      • isWhiteSpace

        public boolean isWhiteSpace()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns true if the cursor points to a character data event that consists of all whitespace
        Specified by:
        isWhiteSpace in interface javax.xml.stream.XMLStreamReader
        Returns:
        true if the cursor points to all whitespace, false otherwise
      • getNamespaceURI

        public java.lang.String getNamespaceURI()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        If the current event is a START_ELEMENT or END_ELEMENT this method returns the URI of the current element (URI mapping to the prefix element/attribute has, if any; or if no prefix, null for attribute, and the default namespace URI for the element).
        Specified by:
        getNamespaceURI in interface javax.xml.stream.XMLStreamReader
        Returns:
        the URI bound to this elements prefix, the default namespace, or null
      • getLocalName

        public java.lang.String getLocalName()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the (local) name of the current event. For START_ELEMENT or END_ELEMENT returns the (local) name of the current element. For ENTITY_REFERENCE it returns entity name. The current event must be START_ELEMENT or END_ELEMENT, or ENTITY_REFERENCE
        Specified by:
        getLocalName in interface javax.xml.stream.XMLStreamReader
        Returns:
        the localName
      • getPrefix

        public java.lang.String getPrefix()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the prefix of the current event or null if the event does not have a prefix
        Specified by:
        getPrefix in interface javax.xml.stream.XMLStreamReader
        Returns:
        the prefix or null
      • isEmptyElementTag

        public boolean isEmptyElementTag()
                                  throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeCount

        public int getAttributeCount()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the count of attributes on this START_ELEMENT, this method is only valid on a START_ELEMENT or ATTRIBUTE. This count excludes namespace definitions. Attribute indices are zero-based.
        Specified by:
        getAttributeCount in interface javax.xml.stream.XMLStreamReader
        Returns:
        returns the number of attributes
      • getAttributeNamespace

        public java.lang.String getAttributeNamespace​(int index)
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the namespace of the attribute at the provided index
        Specified by:
        getAttributeNamespace in interface javax.xml.stream.XMLStreamReader
        Parameters:
        index - the position of the attribute
        Returns:
        the namespace URI (can be null)
      • getAttributeLocalName

        public java.lang.String getAttributeLocalName​(int index)
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the localName of the attribute at the provided index
        Specified by:
        getAttributeLocalName in interface javax.xml.stream.XMLStreamReader
        Parameters:
        index - the position of the attribute
        Returns:
        the localName of the attribute
      • getAttributePrefix

        public java.lang.String getAttributePrefix​(int index)
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the prefix of this attribute at the provided index
        Specified by:
        getAttributePrefix in interface javax.xml.stream.XMLStreamReader
        Parameters:
        index - the position of the attribute
        Returns:
        the prefix of the attribute
      • getAttributeType

        public java.lang.String getAttributeType​(int index)
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the XML type of the attribute at the provided index
        Specified by:
        getAttributeType in interface javax.xml.stream.XMLStreamReader
        Parameters:
        index - the position of the attribute
        Returns:
        the XML type of the attribute
      • isAttributeSpecified

        public boolean isAttributeSpecified​(int index)
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns a boolean which indicates if this attribute was created by default
        Specified by:
        isAttributeSpecified in interface javax.xml.stream.XMLStreamReader
        Parameters:
        index - the position of the attribute
        Returns:
        true if this is a default attribute
      • getAttributeValue

        public java.lang.String getAttributeValue​(int index)
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the value of the attribute at the index
        Specified by:
        getAttributeValue in interface javax.xml.stream.XMLStreamReader
        Parameters:
        index - the position of the attribute
        Returns:
        the attribute value
      • getAttributeValue

        public java.lang.String getAttributeValue​(java.lang.String namespace,
                                                  java.lang.String name)
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the normalized attribute value of the attribute with the namespace and localName If the namespaceURI is null the namespace is not checked for equality
        Specified by:
        getAttributeValue in interface javax.xml.stream.XMLStreamReader
        Parameters:
        namespace - the namespace of the attribute
        name - the local name of the attribute, cannot be null
        Returns:
        returns the value of the attribute , returns null if not found
      • getEventType

        public int getEventType()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns an integer code that indicates the type of the event the cursor is pointing to.
        Specified by:
        getEventType in interface javax.xml.stream.XMLStreamReader
      • require

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

        public java.lang.String nextText()
                                  throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • nextTag

        public int nextTag()
                    throws javax.xml.stream.XMLStreamException
        Description copied from interface: javax.xml.stream.XMLStreamReader
        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.
        Precondition: none
        Postcondition: the current event is START_ELEMENT or END_ELEMENT and cursor may have moved over any whitespace event.
        Essentially it does the following (implementations are free to optimized but must do equivalent processing):
         int eventType = next();
         while((eventType == XMLStreamConstants.CHARACTERS && isWhiteSpace()) // skip whitespace
         || (eventType == XMLStreamConstants.CDATA && isWhiteSpace()) 
         // skip whitespace
         || eventType == XMLStreamConstants.SPACE
         || eventType == XMLStreamConstants.PROCESSING_INSTRUCTION
         || eventType == XMLStreamConstants.COMMENT
         ) {
         eventType = next();
         }
         if (eventType != XMLStreamConstants.START_ELEMENT && eventType != XMLStreamConstants.END_ELEMENT) {
         throw new String XMLStreamException("expected start or end tag", getLocation());
         }
         return eventType;
         
        Specified by:
        nextTag in interface javax.xml.stream.XMLStreamReader
        Returns:
        the event type of the element read (START_ELEMENT or END_ELEMENT)
        Throws:
        javax.xml.stream.XMLStreamException - if the current event is not white space, PROCESSING_INSTRUCTION, START_ELEMENT or END_ELEMENT
      • getElementText

        public java.lang.String getElementText()
                                        throws javax.xml.stream.XMLStreamException
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Reads the content of a text-only element, an exception is thrown if this is not a text-only element. Regardless of value of javax.xml.stream.isCoalescing this method always returns coalesced content.
        Precondition: the current event is START_ELEMENT.
        Postcondition: the current event is the corresponding END_ELEMENT.
        The method does the following (implementations are free to optimized but must do equivalent processing):
         if(getEventType() != XMLStreamConstants.START_ELEMENT) {
         throw new XMLStreamException(
         "parser must be on START_ELEMENT to read next text", getLocation());
         }
         int eventType = next();
         StringBuffer content = new StringBuffer();
         while(eventType != XMLStreamConstants.END_ELEMENT ) {
         if(eventType == XMLStreamConstants.CHARACTERS
         || eventType == XMLStreamConstants.CDATA
         || eventType == XMLStreamConstants.SPACE
         || eventType == XMLStreamConstants.ENTITY_REFERENCE) {
         buf.append(getText());
         } else if(eventType == XMLStreamConstants.PROCESSING_INSTRUCTION
         || eventType == XMLStreamConstants.COMMENT) {
         // skipping
         } else if(eventType == XMLStreamConstants.END_DOCUMENT) {
         throw new XMLStreamException(
         "unexpected end of document when reading element text content", this);
         } else if(eventType == XMLStreamConstants.START_ELEMENT) {
         throw new XMLStreamException(
         "element text content may not contain START_ELEMENT", getLocation());
         } else {
         throw new XMLStreamException(
         "Unexpected event type "+eventType, getLocation());
         }
         eventType = next();
         }
         return buf.toString();
         
        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
      • next

        public int next()
                 throws javax.xml.stream.XMLStreamException
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Get next parsing event - a processor may return all contiguous character data in a single chunk, or it may split it into several chunks. If the property javax.xml.stream.isCoalescing is set to true element content must be coalesced and only one CHARACTERS event must be returned for contiguous element content or CDATA Sections. By default entity references must be expanded and reported transparently to the application. An exception will be thrown if an entity reference cannot be expanded. If element content is empty (i.e. content is "") then no CHARACTERS event will be reported.

        Given the following XML:
        <foo><!--description-->content text<![CDATA[<greeting>Hello</greeting>]]>other content</foo>
        The behavior of calling next() when being on foo will be:
        1- the comment (COMMENT)
        2- then the characters section (CHARACTERS)
        3- then the CDATA section (another CHARACTERS)
        4- then the next characters section (another CHARACTERS)
        5- then the END_ELEMENT

        NOTE: empty element (such as <tag/>) will be reported with two separate events: START_ELEMENT, END_ELEMENT - This preserves parsing equivalency of empty element to <tag></tag>. This method will throw an IllegalStateException if it is called after hasNext() returns false.

        Specified by:
        next in interface javax.xml.stream.XMLStreamReader
        Returns:
        the integer code corresponding to the current parse event
        Throws:
        javax.xml.stream.XMLStreamException - if there is an error processing the underlying XML source
        See Also:
        XMLEvent
      • nextToken

        public int nextToken()
                      throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • nextElement

        public int nextElement()
                        throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • hasNext

        public boolean hasNext()
                        throws javax.xml.stream.XMLStreamException
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns true if there are more parsing events and false if there are no more events. This method will return false if the current state of the XMLStreamReader is END_DOCUMENT
        Specified by:
        hasNext in interface javax.xml.stream.XMLStreamReader
        Returns:
        true if there are more events, false otherwise
        Throws:
        javax.xml.stream.XMLStreamException - if there is a fatal error detecting the next state
      • skip

        public void skip()
                  throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • close

        public void close()
                   throws javax.xml.stream.XMLStreamException
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Frees any resources associated with this Reader. This method does not close the underlying input source.
        Specified by:
        close in interface javax.xml.stream.XMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException - if there are errors freeing associated resources
      • isStartElement

        public boolean isStartElement()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns true if the cursor points to a start tag (otherwise false)
        Specified by:
        isStartElement in interface javax.xml.stream.XMLStreamReader
        Returns:
        true if the cursor points to a start tag, false otherwise
      • isEndElement

        public boolean isEndElement()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns true if the cursor points to an end tag (otherwise false)
        Specified by:
        isEndElement in interface javax.xml.stream.XMLStreamReader
        Returns:
        true if the cursor points to an end tag, false otherwise
      • isCharacters

        public boolean isCharacters()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns true if the cursor points to a character data event
        Specified by:
        isCharacters in interface javax.xml.stream.XMLStreamReader
        Returns:
        true if the cursor points to character data, false otherwise
      • isEOF

        public boolean isEOF()
      • moveToStartElement

        public boolean moveToStartElement()
                                   throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • moveToStartElement

        public boolean moveToStartElement​(java.lang.String localName)
                                   throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • moveToStartElement

        public boolean moveToStartElement​(java.lang.String localName,
                                          java.lang.String namespaceUri)
                                   throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • moveToEndElement

        public boolean moveToEndElement()
                                 throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • moveToEndElement

        public boolean moveToEndElement​(java.lang.String localName)
                                 throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • moveToEndElement

        public boolean moveToEndElement​(java.lang.String localName,
                                        java.lang.String namespaceUri)
                                 throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • hasAttributes

        public boolean hasAttributes()
      • hasNamespaces

        public boolean hasNamespaces()
      • getAttributes

        public java.util.Iterator getAttributes()
      • internalGetNamespaces

        public java.util.Iterator internalGetNamespaces​(int depth,
                                                        int namespaceCount)
      • getNamespaces

        public java.util.Iterator getNamespaces()
      • getOutOfScopeNamespaces

        public java.util.Iterator getOutOfScopeNamespaces()
      • subReader

        public javax.xml.stream.XMLStreamReader subReader()
                                                   throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • recycle

        public void recycle()
                     throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • getTextStream

        public java.io.Reader getTextStream()
      • getText

        public java.lang.String getText()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the current value of the parse event as a string, this returns the string value of a CHARACTERS event, returns the value of a COMMENT, the replacement value for an ENTITY_REFERENCE, the string value of a CDATA section, the string value for a SPACE event, or the String value of the internal subset of the DTD. If an ENTITY_REFERENCE has been resolved, any character data will be reported as CHARACTERS events.
        Specified by:
        getText in interface javax.xml.stream.XMLStreamReader
        Returns:
        the current text or null
      • getTextCharacters

        public int getTextCharacters​(int sourceStart,
                                     char[] target,
                                     int targetStart,
                                     int length)
                              throws javax.xml.stream.XMLStreamException
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Gets the the text associated with a CHARACTERS, SPACE or CDATA event. Text starting a "sourceStart" is copied into "target" starting at "targetStart". Up to "length" characters are copied. The number of characters actually copied is returned. The "sourceStart" argument must be greater or equal to 0 and less than or equal to the number of characters associated with the event. Usually, one requests text starting at a "sourceStart" of 0. If the number of characters actually copied is less than the "length", then there is no more text. Otherwise, subsequent calls need to be made until all text has been retrieved. For example: int length = 1024; char[] myBuffer = new char[ length ]; for ( int sourceStart = 0 ; ; sourceStart += length ) { int nCopied = stream.getTextCharacters( sourceStart, myBuffer, 0, length ); if (nCopied < length) break; } XMLStreamException may be thrown if there are any XML errors in the underlying source. The "targetStart" argument must be greater than or equal to 0 and less than the length of "target", Length must be greater than 0 and "targetStart + length" must be less than or equal to length of "target".
        Specified by:
        getTextCharacters in interface javax.xml.stream.XMLStreamReader
        Parameters:
        sourceStart - the index of the first character in the source array to copy
        target - the destination array
        targetStart - the start offset in the target array
        length - the number of characters to copy
        Returns:
        the number of characters actually copied
        Throws:
        javax.xml.stream.XMLStreamException - if the underlying XML source is not well-formed
      • getTextCharacters

        public char[] getTextCharacters()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns an array which contains the characters from this event. This array should be treated as read-only and transient. I.e. the array will contain the text characters until the XMLStreamReader moves on to the next event. Attempts to hold onto the character array beyond that time or modify the contents of the array are breaches of the contract for this interface.
        Specified by:
        getTextCharacters in interface javax.xml.stream.XMLStreamReader
        Returns:
        the current text or an empty array
      • getTextStart

        public int getTextStart()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the offset into the text character array where the first character (of this text event) is stored.
        Specified by:
        getTextStart in interface javax.xml.stream.XMLStreamReader
      • getTextLength

        public int getTextLength()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the length of the sequence of characters for this Text event within the text character array.
        Specified by:
        getTextLength in interface javax.xml.stream.XMLStreamReader
      • hasText

        public boolean hasText()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Return true if the current event has text, false otherwise The following events have text: CHARACTERS,DTD ,ENTITY_REFERENCE, COMMENT, SPACE
        Specified by:
        hasText in interface javax.xml.stream.XMLStreamReader
      • getValue

        public java.lang.String getValue()
      • getEncoding

        public java.lang.String getEncoding()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Return input encoding if known or null if unknown.
        Specified by:
        getEncoding in interface javax.xml.stream.XMLStreamReader
        Returns:
        the encoding of this instance or null
      • getCharacterOffset

        public int getCharacterOffset()
        Description copied from interface: javax.xml.stream.Location
        Return the byte or character offset into the input source this location is pointing to. If the input source is a file or a byte stream then this is the byte offset into that stream, but if the input source is a character media then the offset is the character offset. Returns -1 if there is no offset available.
        Specified by:
        getCharacterOffset in interface javax.xml.stream.Location
        Returns:
        the current offset
      • getAttributeName

        public javax.xml.namespace.QName getAttributeName​(int index)
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the qname of the attribute at the provided index
        Specified by:
        getAttributeName in interface javax.xml.stream.XMLStreamReader
        Parameters:
        index - the position of the attribute
        Returns:
        the QName of the attribute
      • getName

        public javax.xml.namespace.QName getName()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns a QName for the current START_ELEMENT or END_ELEMENT event
        Specified by:
        getName in interface javax.xml.stream.XMLStreamReader
        Returns:
        the QName for the current START_ELEMENT or END_ELEMENT event
      • hasName

        public boolean hasName()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        returns true if the current event has a name (is a START_ELEMENT or END_ELEMENT) returns false otherwise
        Specified by:
        hasName in interface javax.xml.stream.XMLStreamReader
      • getVersion

        public java.lang.String getVersion()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Get the xml version declared on the xml declaration Returns null if none was declared
        Specified by:
        getVersion in interface javax.xml.stream.XMLStreamReader
        Returns:
        the XML version or null
      • isStandalone

        public boolean isStandalone()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Get the standalone declaration from the xml declaration, if one found (XMLStreamReader.standaloneSet() returns true if one was specified).
        Specified by:
        isStandalone in interface javax.xml.stream.XMLStreamReader
        Returns:
        true if this is standalone, or false otherwise
      • standaloneSet

        public boolean standaloneSet()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Checks if standalone was set in the document
        Specified by:
        standaloneSet in interface javax.xml.stream.XMLStreamReader
        Returns:
        true if standalone was set in the document, or false otherwise
      • getCharacterEncodingScheme

        public java.lang.String getCharacterEncodingScheme()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns the character encoding declared on the xml declaration Returns null if none was declared
        Specified by:
        getCharacterEncodingScheme in interface javax.xml.stream.XMLStreamReader
        Returns:
        the encoding declared in the document or null
      • nextImpl

        protected int nextImpl()
                        throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • parseProlog

        protected int parseProlog()
                           throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • parseEpilog

        protected int parseEpilog()
                           throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • parseEndTag

        public int parseEndTag()
                        throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • parseStartTag

        public int parseStartTag()
                          throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • addDefaultAttributes

        protected void addDefaultAttributes​(java.lang.String elementName)
                                     throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • parseAttribute

        protected char parseAttribute()
                               throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • parseEntityRef

        protected char[] parseEntityRef​(boolean replace)
                                 throws javax.xml.stream.XMLStreamException
        Returns:
        Character array that contains value the reference expands to.
        Throws:
        javax.xml.stream.XMLStreamException
      • lookupEntityReplacement

        protected char[] lookupEntityReplacement​(int entitNameLen)
                                          throws javax.xml.stream.XMLStreamException
        Returns:
        Character array that contains (unparsed) entity expansion value; or null if no such entity has been declared
        Throws:
        javax.xml.stream.XMLStreamException
      • parseComment

        protected void parseComment()
                             throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • getPITarget

        public java.lang.String getPITarget()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Get the target of a processing instruction
        Specified by:
        getPITarget in interface javax.xml.stream.XMLStreamReader
        Returns:
        the target
      • getPIData

        public java.lang.String getPIData()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Get the data section of a processing instruction
        Specified by:
        getPIData in interface javax.xml.stream.XMLStreamReader
        Returns:
        the data (if processing instruction has any), or null if the processing instruction only has target.
      • getNamespaceContext

        public javax.xml.namespace.NamespaceContext getNamespaceContext()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Returns a read only namespace context for the current position. The context is transient and only valid until a call to next() changes the state of the reader.
        Specified by:
        getNamespaceContext in interface javax.xml.stream.XMLStreamReader
        Returns:
        return a namespace context
      • parsePI

        protected boolean parsePI()
                           throws javax.xml.stream.XMLStreamException
        Returns:
        True if this was the xml declaration; false if a regular processing instruction
        Throws:
        javax.xml.stream.XMLStreamException
      • requireInput

        protected char requireInput​(char ch,
                                    char[] input)
                             throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • requireNextS

        protected char requireNextS()
                             throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • skipS

        protected char skipS​(char ch)
                      throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • parseXmlDecl

        protected void parseXmlDecl​(char ch)
                             throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • parseXmlDeclWithVersion

        protected void parseXmlDeclWithVersion​(int versionStart,
                                               int versionEnd)
                                        throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • parseDocdecl

        protected void parseDocdecl()
                             throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • processDTD

        protected void processDTD()
                           throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • parseCDATA

        protected void parseCDATA()
                           throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • fillBuf

        protected void fillBuf()
                        throws javax.xml.stream.XMLStreamException,
                               java.io.EOFException
        Throws:
        javax.xml.stream.XMLStreamException
        java.io.EOFException
      • more

        protected char more()
                     throws javax.xml.stream.XMLStreamException,
                            java.io.EOFException
        Throws:
        javax.xml.stream.XMLStreamException
        java.io.EOFException
      • printable

        protected java.lang.String printable​(char ch)
      • printable

        protected java.lang.String printable​(java.lang.String s)
      • ensurePC

        protected void ensurePC​(int end)
      • joinPC

        protected void joinPC()
      • getLocation

        public javax.xml.stream.Location getLocation()
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Return the current location of the processor. If the Location is unknown the processor should return an implementation of Location that returns -1 for the location and null for the publicId and systemId. The location information is only valid until next() is called.
        Specified by:
        getLocation in interface javax.xml.stream.XMLStreamReader
      • getPublicId

        public java.lang.String getPublicId()
        Description copied from interface: javax.xml.stream.Location
        Returns the public ID of the XML
        Specified by:
        getPublicId in interface javax.xml.stream.Location
        Returns:
        the public ID, or null if not available
      • getSystemId

        public java.lang.String getSystemId()
        Description copied from interface: javax.xml.stream.Location
        Returns the system ID of the XML
        Specified by:
        getSystemId in interface javax.xml.stream.Location
        Returns:
        the system ID, or null if not available
      • getProperty

        public java.lang.Object getProperty​(java.lang.String name)
        Description copied from interface: javax.xml.stream.XMLStreamReader
        Get the value of a feature/property from the underlying implementation
        Specified by:
        getProperty in interface javax.xml.stream.XMLStreamReader
        Parameters:
        name - The name of the property, may not be null
        Returns:
        The value of the property