APIdia Launch Partner
Top Description Fields Methods
javax.xml.stream

public Interface XMLStreamReader

extends XMLStreamConstants
Known Direct Implementers
javax.xml.stream.util.StreamReaderDelegate, com.sun.org.apache.xerces.internal.impl.XMLStreamFilterImpl, com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl
Imports
javax.xml.namespace.NamespaceContext, .QName

The XMLStreamReader interface allows forward, read-only access to XML. It is designed to be the lowest level and most efficient way to read XML data.

The XMLStreamReader is designed to iterate over XML using next() and hasNext(). The data can be accessed using methods such as getEventType(), getNamespaceURI(), getLocalName() and getText();

An XMLStreamReader instance is created with an initial event type START_DOCUMENT. At any moment in time, it has a current event that the methods of the interface access and may load the next event through the next() method. The current event type can be determined by getEventType(), and the next returned by the next() method.

Parsing events are defined as the XML Declaration, a DTD, start tag, character data, white space, end tag, comment, or processing instruction. An attribute or namespace event may be encountered at the root level of a document as the result of a query operation.

For XML 1.0 compliance an XML processor must pass the identifiers of declared unparsed entities, notation declarations and their associated identifiers to the application. This information is provided through the property API on this interface. The following two properties allow access to this information: javax.xml.stream.notations and javax.xml.stream.entities. When the current event is a DTD the following call will return a list of Notations List l = (List) getProperty("javax.xml.stream.notations"); The following call will return a list of entity declarations: List l = (List) getProperty("javax.xml.stream.entities"); These properties can only be accessed during a DTD event and are defined to return null if the information is not available.

The following table describes which methods are valid in what state. If a method is called in an invalid state the method will throw a java.lang.IllegalStateException.

Valid methods for each state
Event Type Valid Methods
All States getProperty(), hasNext(), require(), close(), getNamespaceURI(), isStartElement(), isEndElement(), isCharacters(), isWhiteSpace(), getNamespaceContext(), getEventType(), getLocation(), hasText(), hasName()
START_ELEMENT next(), getName(), getLocalName(), hasName(), getPrefix(), getAttributeXXX(), isAttributeSpecified(), getNamespaceXXX(), getElementText(), nextTag()
ATTRIBUTE next(), nextTag() getAttributeXXX(), isAttributeSpecified(),
NAMESPACE next(), nextTag() getNamespaceXXX()
END_ELEMENT next(), getName(), getLocalName(), hasName(), getPrefix(), getNamespaceXXX(), nextTag()
CHARACTERS next(), getTextXXX(), nextTag()
CDATA next(), getTextXXX(), nextTag()
COMMENT next(), getTextXXX(), nextTag()
SPACE next(), getTextXXX(), nextTag()
START_DOCUMENT next(), getEncoding(), getVersion(), isStandalone(), standaloneSet(), getCharacterEncodingScheme(), nextTag()
END_DOCUMENT close()
PROCESSING_INSTRUCTION next(), getPITarget(), getPIData(), nextTag()
ENTITY_REFERENCE next(), getLocalName(), getText(), nextTag()
DTD next(), getText(), nextTag()
Author
Copyright (c) 2009 by Oracle Corporation. All Rights Reserved.
Since
1.6
Version
1.0
See Also
javax.xml.stream.events.XMLEvent, XMLInputFactory, XMLStreamWriter

Field Summary

Inherited from javax.xml.stream.XMLStreamConstants:
ATTRIBUTECDATACHARACTERSCOMMENTDTDEND_DOCUMENTEND_ELEMENTENTITY_DECLARATIONENTITY_REFERENCENAMESPACENOTATION_DECLARATIONPROCESSING_INSTRUCTIONSPACESTART_DOCUMENTSTART_ELEMENT

Method Summary

Modifier and TypeMethod and Description
public void
close()

Frees any resources associated with this Reader.

public int

Returns:

returns the number of attributes
getAttributeCount
()

Returns the count of attributes on this START_ELEMENT, this method is only valid on a START_ELEMENT or ATTRIBUTE.

public String

Returns:

the localName of the attribute
getAttributeLocalName
(int
the position of the attribute
index
)

Returns the localName of the attribute at the provided index

public QName

Returns:

the QName of the attribute
getAttributeName
(int
the position of the attribute
index
)

Returns the qname of the attribute at the provided index

public String

Returns:

the namespace URI (can be null)
getAttributeNamespace
(int
the position of the attribute
index
)

Returns the namespace of the attribute at the provided index

public String

Returns:

the prefix of the attribute
getAttributePrefix
(int
the position of the attribute
index
)

Returns the prefix of this attribute at the provided index

public String

Returns:

the XML type of the attribute
getAttributeType
(int
the position of the attribute
index
)

Returns the XML type of the attribute at the provided index

public String

Returns:

returns the value of the attribute , returns null if not found
getAttributeValue
(String
the namespace of the attribute
namespaceURI
,
String
the local name of the attribute, cannot be null
localName
)

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

public String

Returns:

the attribute value
getAttributeValue
(int
the position of the attribute
index
)

Returns the value of the attribute at the index

public String

Returns:

the encoding declared in the document or null
getCharacterEncodingScheme
()

Returns the character encoding declared on the xml declaration Returns null if none was declared

public String

Returns:

the content of a text-only element
getElementText
()

Reads the content of a text-only element, an exception is thrown if this is not a text-only element.

public String

Returns:

the encoding of this instance or null
getEncoding
()

Return input encoding if known or null if unknown.

public int

Returns:

the type of the current event
getEventType
()

Returns an integer code that indicates the type of the event the cursor is pointing to.

public String

Returns:

the localName
getLocalName
()

Returns the (local) name of the current event.

public Location

Returns:

the location of the cursor
getLocation
()

Return the current location of the processor.

public QName

Returns:

the QName for the current START_ELEMENT or END_ELEMENT event
getName
()

Returns a QName for the current START_ELEMENT or END_ELEMENT event

public NamespaceContext

Returns:

return a namespace context
getNamespaceContext
()

Returns a read only namespace context for the current position.

public int

Returns:

returns the number of namespace declarations on this specific element
getNamespaceCount
()

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.

public String

Returns:

returns the namespace prefix
getNamespacePrefix
(int
the position of the namespace declaration
index
)

Returns the prefix for the namespace declared at the index.

public String

Returns:

the uri bound to the given prefix or null if it is not bound
getNamespaceURI
(String
The prefix to lookup, may not be null
prefix
)

Return the uri for the given prefix.

public String

Returns:

returns the namespace uri
getNamespaceURI
(int
the position of the namespace declaration
index
)

Returns the uri for the namespace declared at the index.

public String

Returns:

the URI bound to this elements prefix, the default namespace, or null
getNamespaceURI
()

If the current event is a START_ELEMENT or END_ELEMENT this method returns the URI of the prefix or the default namespace.

public String

Returns:

the data or null
getPIData
()

Get the data section of a processing instruction

public String

Returns:

the target or null
getPITarget
()

Get the target of a processing instruction

public String

Returns:

the prefix or null
getPrefix
()

Returns the prefix of the current event or null if the event does not have a prefix

public Object

Returns:

The value of the property
getProperty
(String
The name of the property, may not be null
name
)

Get the value of a feature/property from the underlying implementation

public String

Returns:

the current text or null
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.

public char[]

Returns:

the current text or an empty array
getTextCharacters
()

Returns an array which contains the characters from this event.

public int

Returns:

the number of characters actually copied
getTextCharacters
(int
the index of the first character in the source array to copy
sourceStart
,
char[]
the destination array
target
,
int
the start offset in the target array
targetStart
,
int
the number of characters to copy
length
)

Gets the text associated with a CHARACTERS, SPACE or CDATA event.

public int

Returns:

the length of the text
getTextLength
()

Returns the length of the sequence of characters for this Text event within the text character array.

public int

Returns:

the starting position of the text in the character array
getTextStart
()

Returns the offset into the text character array where the first character (of this text event) is stored.

public String

Returns:

the XML version or null
getVersion
()

Get the xml version declared on the xml declaration Returns null if none was declared

public boolean

Returns:

true if the event has a name, false otherwise
hasName
()

returns a boolean indicating whether the current event has a name (is a START_ELEMENT or END_ELEMENT).

public boolean

Returns:

true if there are more events, false otherwise
hasNext
()

Returns true if there are more parsing events and false if there are no more events.

public boolean

Returns:

true if the event has text, false otherwise
hasText
()

Return a boolean indicating whether the current event has text.

public boolean

Returns:

true if this is a default attribute
isAttributeSpecified
(int
the position of the attribute
index
)

Returns a boolean which indicates if this attribute was created by default

public boolean

Returns:

true if the cursor points to character data, false otherwise
isCharacters
()

Returns true if the cursor points to a character data event

public boolean

Returns:

true if the cursor points to an end tag, false otherwise
isEndElement
()

Returns true if the cursor points to an end tag (otherwise false)

public boolean

Returns:

true if this is standalone, or false otherwise
isStandalone
()

Get the standalone declaration from the xml declaration

public boolean

Returns:

true if the cursor points to a start tag, false otherwise
isStartElement
()

Returns true if the cursor points to a start tag (otherwise false)

public boolean

Returns:

true if the cursor points to all whitespace, false otherwise
isWhiteSpace
()

Returns true if the cursor points to a character data event that consists of all whitespace

public int

Returns:

the integer code corresponding to the current parse event
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.

public int

Returns:

the event type of the element read (START_ELEMENT or END_ELEMENT)
nextTag
()

Skips any white space (isWhiteSpace() returns true), COMMENT, or PROCESSING_INSTRUCTION, until a START_ELEMENT or END_ELEMENT is reached.

public void
require(int
the event type
type
,
String
the uri of the event, may be null
namespaceURI
,
String
the localName of the event, may be null
localName
)

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.

public boolean

Returns:

true if standalone was set in the document, or false otherwise
standaloneSet
()

Checks if standalone was set in the document

Method Detail

closeback to summary
public void close() throws XMLStreamException

Frees any resources associated with this Reader. This method does not close the underlying input source.

Exceptions
XMLStreamException:
if there are errors freeing associated resources
getAttributeCountback to summary
public int getAttributeCount()

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.

Returns:int

returns the number of attributes

Exceptions
IllegalStateException:
if this is not a START_ELEMENT or ATTRIBUTE
getAttributeLocalNameback to summary
public String getAttributeLocalName(int index)

Returns the localName of the attribute at the provided index

Parameters
index:int

the position of the attribute

Returns:String

the localName of the attribute

Exceptions
IllegalStateException:
if this is not a START_ELEMENT or ATTRIBUTE
getAttributeNameback to summary
public QName getAttributeName(int index)

Returns the qname of the attribute at the provided index

Parameters
index:int

the position of the attribute

Returns:QName

the QName of the attribute

Exceptions
IllegalStateException:
if this is not a START_ELEMENT or ATTRIBUTE
getAttributeNamespaceback to summary
public String getAttributeNamespace(int index)

Returns the namespace of the attribute at the provided index

Parameters
index:int

the position of the attribute

Returns:String

the namespace URI (can be null)

Exceptions
IllegalStateException:
if this is not a START_ELEMENT or ATTRIBUTE
getAttributePrefixback to summary
public String getAttributePrefix(int index)

Returns the prefix of this attribute at the provided index

Parameters
index:int

the position of the attribute

Returns:String

the prefix of the attribute

Exceptions
IllegalStateException:
if this is not a START_ELEMENT or ATTRIBUTE
getAttributeTypeback to summary
public String getAttributeType(int index)

Returns the XML type of the attribute at the provided index

Parameters
index:int

the position of the attribute

Returns:String

the XML type of the attribute

Exceptions
IllegalStateException:
if this is not a START_ELEMENT or ATTRIBUTE
getAttributeValueback to summary
public String getAttributeValue(String namespaceURI, String localName)

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

Parameters
namespaceURI:String

the namespace of the attribute

localName:String

the local name of the attribute, cannot be null

Returns:String

returns the value of the attribute , returns null if not found

Exceptions
IllegalStateException:
if this is not a START_ELEMENT or ATTRIBUTE
getAttributeValueback to summary
public String getAttributeValue(int index)

Returns the value of the attribute at the index

Parameters
index:int

the position of the attribute

Returns:String

the attribute value

Exceptions
IllegalStateException:
if this is not a START_ELEMENT or ATTRIBUTE
getCharacterEncodingSchemeback to summary
public String getCharacterEncodingScheme()

Returns the character encoding declared on the xml declaration Returns null if none was declared

Returns:String

the encoding declared in the document or null

getElementTextback to summary
public String getElementText() throws XMLStreamException

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();
Returns:String

the content of a text-only element

Exceptions
XMLStreamException:
if the current event is not a START_ELEMENT or if a non text element is encountered
getEncodingback to summary
public String getEncoding()

Return input encoding if known or null if unknown.

Returns:String

the encoding of this instance or null

getEventTypeback to summary
public int getEventType()

Returns an integer code that indicates the type of the event the cursor is pointing to. The initial event type is START_DOCUMENT.

Returns:int

the type of the current event

getLocalNameback to summary
public String getLocalName()

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

Returns:String

the localName

Exceptions
IllegalStateException:
if this not a START_ELEMENT, END_ELEMENT or ENTITY_REFERENCE
getLocationback to summary
public Location getLocation()

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.

Returns:Location

the location of the cursor

getNameback to summary
public QName getName()

Returns a QName for the current START_ELEMENT or END_ELEMENT event

Returns:QName

the QName for the current START_ELEMENT or END_ELEMENT event

Exceptions
IllegalStateException:
if this is not a START_ELEMENT or END_ELEMENT
getNamespaceContextback to summary
public NamespaceContext getNamespaceContext()

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.

Returns:NamespaceContext

return a namespace context

getNamespaceCountback to summary
public int getNamespaceCount()

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.

Returns:int

returns the number of namespace declarations on this specific element

Exceptions
IllegalStateException:
if this is not a START_ELEMENT, END_ELEMENT or NAMESPACE
getNamespacePrefixback to summary
public String getNamespacePrefix(int index)

Returns the prefix for the namespace declared at the index. Returns null if this is the default namespace declaration

Parameters
index:int

the position of the namespace declaration

Returns:String

returns the namespace prefix

Exceptions
IllegalStateException:
if this is not a START_ELEMENT, END_ELEMENT or NAMESPACE
getNamespaceURIback to summary
public String getNamespaceURI(String prefix)

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/

Parameters
prefix:String

The prefix to lookup, may not be null

Returns:String

the uri bound to the given prefix or null if it is not bound

Exceptions
IllegalArgumentException:
if the prefix is null
getNamespaceURIback to summary
public String getNamespaceURI(int index)

Returns the uri for the namespace declared at the index.

Parameters
index:int

the position of the namespace declaration

Returns:String

returns the namespace uri

Exceptions
IllegalStateException:
if this is not a START_ELEMENT, END_ELEMENT or NAMESPACE
getNamespaceURIback to summary
public String getNamespaceURI()

If the current event is a START_ELEMENT or END_ELEMENT this method returns the URI of the prefix or the default namespace. Returns null if the event does not have a prefix.

Returns:String

the URI bound to this elements prefix, the default namespace, or null

getPIDataback to summary
public String getPIData()

Get the data section of a processing instruction

Returns:String

the data or null

getPITargetback to summary
public String getPITarget()

Get the target of a processing instruction

Returns:String

the target or null

getPrefixback to summary
public String getPrefix()

Returns the prefix of the current event or null if the event does not have a prefix

Returns:String

the prefix or null

getPropertyback to summary
public Object getProperty(String name) throws IllegalArgumentException

Get the value of a feature/property from the underlying implementation

Parameters
name:String

The name of the property, may not be null

Returns:Object

The value of the property

Exceptions
IllegalArgumentException:
if name is null
getTextback to summary
public 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. If an ENTITY_REFERENCE has been resolved, any character data will be reported as CHARACTERS events.

Returns:String

the current text or null

Exceptions
IllegalStateException:
if this state is not a valid text state.
getTextCharactersback to summary
public char[] getTextCharacters()

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.

Returns:char[]

the current text or an empty array

Exceptions
IllegalStateException:
if this state is not a valid text state.
getTextCharactersback to summary
public int getTextCharacters(int sourceStart, char[] target, int targetStart, int length) throws XMLStreamException

Gets 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".
Parameters
sourceStart:int

the index of the first character in the source array to copy

target:char[]

the destination array

targetStart:int

the start offset in the target array

length:int

the number of characters to copy

Returns:int

the number of characters actually copied

Exceptions
XMLStreamException:
if the underlying XML source is not well-formed
IndexOutOfBoundsException:
  • if targetStart < 0 or > than the length of target
  • if length < 0 or targetStart + length > length of target
UnsupportedOperationException:
if this method is not supported
NullPointerException:
is if target is null
getTextLengthback to summary
public int getTextLength()

Returns the length of the sequence of characters for this Text event within the text character array.

Returns:int

the length of the text

Exceptions
IllegalStateException:
if this state is not a valid text state.
getTextStartback to summary
public int getTextStart()

Returns the offset into the text character array where the first character (of this text event) is stored.

Returns:int

the starting position of the text in the character array

Exceptions
IllegalStateException:
if this state is not a valid text state.
getVersionback to summary
public String getVersion()

Get the xml version declared on the xml declaration Returns null if none was declared

Returns:String

the XML version or null

hasNameback to summary
public boolean hasName()

returns a boolean indicating whether the current event has a name (is a START_ELEMENT or END_ELEMENT).

Returns:boolean

true if the event has a name, false otherwise

hasNextback to summary
public boolean hasNext() throws XMLStreamException

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

Returns:boolean

true if there are more events, false otherwise

Exceptions
XMLStreamException:
if there is a fatal error detecting the next state
hasTextback to summary
public boolean hasText()

Return a boolean indicating whether the current event has text. The following events have text: CHARACTERS,DTD ,ENTITY_REFERENCE, COMMENT, SPACE

Returns:boolean

true if the event has text, false otherwise

isAttributeSpecifiedback to summary
public boolean isAttributeSpecified(int index)

Returns a boolean which indicates if this attribute was created by default

Parameters
index:int

the position of the attribute

Returns:boolean

true if this is a default attribute

Exceptions
IllegalStateException:
if this is not a START_ELEMENT or ATTRIBUTE
isCharactersback to summary
public boolean isCharacters()

Returns true if the cursor points to a character data event

Returns:boolean

true if the cursor points to character data, false otherwise

isEndElementback to summary
public boolean isEndElement()

Returns true if the cursor points to an end tag (otherwise false)

Returns:boolean

true if the cursor points to an end tag, false otherwise

isStandaloneback to summary
public boolean isStandalone()

Get the standalone declaration from the xml declaration

Returns:boolean

true if this is standalone, or false otherwise

isStartElementback to summary
public boolean isStartElement()

Returns true if the cursor points to a start tag (otherwise false)

Returns:boolean

true if the cursor points to a start tag, false otherwise

isWhiteSpaceback to summary
public boolean isWhiteSpace()

Returns true if the cursor points to a character data event that consists of all whitespace

Returns:boolean

true if the cursor points to all whitespace, false otherwise

nextback to summary
public int next() throws XMLStreamException

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>.

Returns:int

the integer code corresponding to the current parse event

Exceptions
XMLStreamException:
if there is an error processing the underlying XML source
NoSuchElementException:
if this is called when hasNext() returns false
See Also
javax.xml.stream.events.XMLEvent
nextTagback to summary
public int nextTag() throws 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 separated 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; 
Returns:int

the event type of the element read (START_ELEMENT or END_ELEMENT)

Exceptions
XMLStreamException:
if the current event is not white space, PROCESSING_INSTRUCTION, START_ELEMENT or END_ELEMENT
NoSuchElementException:
if this is called when hasNext() returns false
requireback to summary
public 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.

Parameters
type:int

the event type

namespaceURI:String

the uri of the event, may be null

localName:String

the localName of the event, may be null

Exceptions
XMLStreamException:
if the required values are not matched.
standaloneSetback to summary
public boolean standaloneSet()

Checks if standalone was set in the document

Returns:boolean

true if standalone was set in the document, or false otherwise