# Interface XMLEvent

All Superinterfaces:
  `XMLStreamConstants`

All Known Subinterfaces:
  `Attribute, Characters, Comment, DTD, EndDocument, EndElement, EntityDeclaration, EntityReference, Namespace, NotationDeclaration, ProcessingInstruction, StartDocument, StartElement`

public interface XMLEvent extends XMLStreamConstants
This is the base event interface for handling markup events. Events are value objects that are used to communicate the XML 1.0 InfoSet to the Application. Events may be cached and referenced after the parse has completed.

Since:
  1.6
See Also:
  - `XMLEventReader`
  - `Characters`
  - `ProcessingInstruction`
  - `StartElement`
  - `EndElement`
  - `StartDocument`
  - `EndDocument`
  - `EntityReference`
  - `EntityDeclaration`
  - `NotationDeclaration`

- ## Field Summary

  ### Fields declared in interface XMLStreamConstants

  `ATTRIBUTE, CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, ENTITY_DECLARATION, ENTITY_REFERENCE, NAMESPACE, NOTATION_DECLARATION, PROCESSING_INSTRUCTION, SPACE, START_DOCUMENT, START_ELEMENT`
  Modifier and Type
  Field
  Description
  `static final int`
  `ATTRIBUTE`
  Indicates an event is an attribute
  `static final int`
  `CDATA`
  Indicates an event is a CDATA section
  `static final int`
  `CHARACTERS`
  Indicates an event is characters
  `static final int`
  `COMMENT`
  Indicates an event is a comment
  `static final int`
  `DTD`
  Indicates an event is a DTD
  `static final int`
  `END_DOCUMENT`
  Indicates an event is an end document
  `static final int`
  `END_ELEMENT`
  Indicates an event is an end element
  `static final int`
  `ENTITY_DECLARATION`
  Indicates a Entity Declaration
  `static final int`
  `ENTITY_REFERENCE`
  Indicates an event is an entity reference
  `static final int`
  `NAMESPACE`
  Indicates the event is a namespace declaration
  `static final int`
  `NOTATION_DECLARATION`
  Indicates a Notation
  `static final int`
  `PROCESSING_INSTRUCTION`
  Indicates an event is a processing instruction
  `static final int`
  `SPACE`
  The characters are white space (see [XML], 2.10 "White Space Handling").
  `static final int`
  `START_DOCUMENT`
  Indicates an event is a start document
  `static final int`
  `START_ELEMENT`
  Indicates an event is a start element

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Characters`
  `asCharacters()`
  Returns this event as Characters, may result in a class cast exception if this event is not Characters.
  `EndElement`
  `asEndElement()`
  Returns this event as an end element event, may result in a class cast exception if this event is not a end element.
  `StartElement`
  `asStartElement()`
  Returns this event as a start element event, may result in a class cast exception if this event is not a start element.
  `int`
  `getEventType()`
  Returns an integer code for this event.
  `Location`
  `getLocation()`
  Return the location of this event.
  `QName`
  `getSchemaType()`
  This method is provided for implementations to provide optional type information about the associated event.
  `boolean`
  `isAttribute()`
  A utility function to check if this event is an Attribute.
  `boolean`
  `isCharacters()`
  A utility function to check if this event is Characters.
  `boolean`
  `isEndDocument()`
  A utility function to check if this event is an EndDocument.
  `boolean`
  `isEndElement()`
  A utility function to check if this event is a EndElement.
  `boolean`
  `isEntityReference()`
  A utility function to check if this event is an EntityReference.
  `boolean`
  `isNamespace()`
  A utility function to check if this event is a Namespace.
  `boolean`
  `isProcessingInstruction()`
  A utility function to check if this event is a ProcessingInstruction.
  `boolean`
  `isStartDocument()`
  A utility function to check if this event is a StartDocument.
  `boolean`
  `isStartElement()`
  A utility function to check if this event is a StartElement.
  `void`
  `writeAsEncodedUnicode(Writer writer)`
  This method will write the XMLEvent as per the XML 1.0 specification as Unicode characters.

- ## Method Details

  - ### getEventType

    int getEventType()
    Returns an integer code for this event.
    Returns:
      the event type
    See Also:
      - `XMLStreamConstants.START_ELEMENT`
      - `XMLStreamConstants.END_ELEMENT`
      - `XMLStreamConstants.CHARACTERS`
      - `XMLStreamConstants.ATTRIBUTE`
      - `XMLStreamConstants.NAMESPACE`
      - `XMLStreamConstants.PROCESSING_INSTRUCTION`
      - `XMLStreamConstants.COMMENT`
      - `XMLStreamConstants.START_DOCUMENT`
      - `XMLStreamConstants.END_DOCUMENT`
      - `XMLStreamConstants.DTD`

  - ### getLocation

    Location getLocation()
    Return the location of this event. The Location returned from this method is non-volatile and will retain its information.
    Returns:
      the location of the event
    See Also:
      - `Location`

  - ### isStartElement

    boolean isStartElement()
    A utility function to check if this event is a StartElement.
    Returns:
      true if the event is `StartElement`, false otherwise
    See Also:
      - `StartElement`

  - ### isAttribute

    boolean isAttribute()
    A utility function to check if this event is an Attribute.
    Returns:
      true if the event is `Attribute`, false otherwise
    See Also:
      - `Attribute`

  - ### isNamespace

    boolean isNamespace()
    A utility function to check if this event is a Namespace.
    Returns:
      true if the event is `Namespace`, false otherwise
    See Also:
      - `Namespace`

  - ### isEndElement

    boolean isEndElement()
    A utility function to check if this event is a EndElement.
    Returns:
      true if the event is `EndElement`, false otherwise
    See Also:
      - `EndElement`

  - ### isEntityReference

    boolean isEntityReference()
    A utility function to check if this event is an EntityReference.
    Returns:
      true if the event is `EntityReference`, false otherwise
    See Also:
      - `EntityReference`

  - ### isProcessingInstruction

    boolean isProcessingInstruction()
    A utility function to check if this event is a ProcessingInstruction.
    Returns:
      true if the event is `ProcessingInstruction`, false otherwise
    See Also:
      - `ProcessingInstruction`

  - ### isCharacters

    boolean isCharacters()
    A utility function to check if this event is Characters.
    Returns:
      true if the event is `Characters`, false otherwise
    See Also:
      - `Characters`

  - ### isStartDocument

    boolean isStartDocument()
    A utility function to check if this event is a StartDocument.
    Returns:
      true if the event is `StartDocument`, false otherwise
    See Also:
      - `StartDocument`

  - ### isEndDocument

    boolean isEndDocument()
    A utility function to check if this event is an EndDocument.
    Returns:
      true if the event is `EndDocument`, false otherwise
    See Also:
      - `EndDocument`

  - ### asStartElement

    StartElement asStartElement()
    Returns this event as a start element event, may result in a class cast exception if this event is not a start element.
    Returns:
      a `StartElement` event

  - ### asEndElement

    EndElement asEndElement()
    Returns this event as an end element event, may result in a class cast exception if this event is not a end element.
    Returns:
      a `EndElement` event

  - ### asCharacters

    Characters asCharacters()
    Returns this event as Characters, may result in a class cast exception if this event is not Characters.
    Returns:
      a `Characters` event

  - ### getSchemaType

    QName getSchemaType()
    This method is provided for implementations to provide optional type information about the associated event. It is optional and will return null if no information is available.
    Returns:
      the type of the event, null if not available

  - ### writeAsEncodedUnicode

    void writeAsEncodedUnicode(Writer writer) throws XMLStreamException
    This method will write the XMLEvent as per the XML 1.0 specification as Unicode characters. No indentation or whitespace should be outputted. Any user defined event type SHALL have this method called when being written to on an output stream. Built in Event types MUST implement this method, but implementations MAY choose not call these methods for optimizations reasons when writing out built in Events to an output stream. The output generated MUST be equivalent in terms of the infoset expressed.
    Parameters:
      `writer` - The writer that will output the data
    Throws:
      `XMLStreamException` - if there is a fatal error writing the event