# Package org.apache.axiom.ext.stax

package org.apache.axiom.ext.stax
Defines Axiom specific extensions to the StAX API.

This package defines several extensions to the StAX API, more precisely for the `XMLStreamReader` and `XMLStreamWriter` classes. The reader or writer wishing to support the extension MAY implement the corresponding interface directly, but a consumer MUST use the property mechanism to get a reference to this extension interface, i.e. it MUST call `XMLStreamReader.getProperty(String)` or `XMLStreamWriter.getProperty(String)`. Each of the extension interfaces in this package defines a constant for the property name to use.

The rationale for this requirement is that a property based approach continues to work even if the stream implementing the extension is accessed indirectly through a proxy implementing the `XMLStreamReader` or `XMLStreamWriter` interface but unaware of the extensions defined in this package. Note that this assumes that the proxy correctly delegates calls to the `getProperty` methods.

The property returning the extension interface MUST be available regardless of the current state of the stream. In addition it is assumed to be immutable, i.e. its value MUST NOT not change during the lifetime of the `XMLStreamReader` or `XMLStreamWriter` implementation. For a consumer it is therefore sufficient to look up the extension once and to continue using the obtained reference during the entire lifetime of the stream.

- Interfaces
  Class
  Description
  BlobProvider
  Interface used for deferred loading of binary content.
  BlobReader
  Extension interface for `XMLStreamReader` implementations that expose base64 encoded binary content as `Blob` objects.
  BlobWriter
  Extension interface for `XMLStreamWriter` implementations that can receive base64 encoded binary content as `Blob` objects.
  CharacterDataReader
  Optional interface implemented by `XMLStreamReader` implementations that support writing character data directly to a `Writer`.
  DelegatingXMLStreamReader
  Deprecated.
  DTDReader
  Optional interface implemented by `XMLStreamReader` implementations that provide additional data about `XMLStreamConstants.DTD` events.