org.springframework.util.xml

## Class StaxUtils

- java.lang.Object
- - org.springframework.util.xml.StaxUtils

-     public abstract class StaxUtils
      extends Object

  Convenience methods for working with the StAX API.

  In particular, methods for using StAX (`javax.xml.stream`) in combination with the TrAX API (`javax.xml.transform`), and converting StAX readers/writers into SAX readers/handlers and vice-versa.

  Since:
    3.0
  Author:
    Arjen Poutsma, Juergen Hoeller

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `StaxUtils()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static ContentHandler` | `createContentHandler(XMLEventWriter eventWriter)` Create a SAX `ContentHandler` that writes events to the given StAX `XMLEventWriter`.
    `static ContentHandler` | `createContentHandler(XMLStreamWriter streamWriter)` Create a SAX `ContentHandler` that writes to the given StAX `XMLStreamWriter`.
    `static Result` | `createCustomStaxResult(XMLEventWriter eventWriter)` Create a custom, non-JAXP 1.4 StAX `Result` for the given `XMLEventWriter`.
    `static Result` | `createCustomStaxResult(XMLStreamWriter streamWriter)` Create a custom, non-JAXP 1.4 StAX `Result` for the given `XMLStreamWriter`.
    `static Source` | `createCustomStaxSource(XMLEventReader eventReader)` Create a custom, non-JAXP 1.4 StAX `Source` for the given `XMLEventReader`.
    `static Source` | `createCustomStaxSource(XMLStreamReader streamReader)` Create a custom, non-JAXP 1.4 StAX `Source` for the given `XMLStreamReader`.
    `static XMLStreamReader` | `createEventStreamReader(XMLEventReader eventReader)` Return a `XMLStreamReader` that reads from a `XMLEventReader`.
    `static XMLStreamWriter` | `createEventStreamWriter(XMLEventWriter eventWriter)` Return a `XMLStreamWriter` that writes to a `XMLEventWriter`.
    `static XMLStreamWriter` | `createEventStreamWriter(XMLEventWriter eventWriter, XMLEventFactory eventFactory)` Return a `XMLStreamWriter` that writes to a `XMLEventWriter`.
    `static Result` | `createStaxResult(XMLEventWriter eventWriter)` Create a StAX `Result` for the given `XMLEventWriter`.
    `static Result` | `createStaxResult(XMLStreamWriter streamWriter)` Create a StAX `Result` for the given `XMLStreamWriter`.
    `static Source` | `createStaxSource(XMLEventReader eventReader)` Create a StAX `Source` for the given `XMLEventReader`.
    `static Source` | `createStaxSource(XMLStreamReader streamReader)` Create a StAX `Source` for the given `XMLStreamReader`.
    `static XMLReader` | `createXMLReader(XMLEventReader eventReader)` Create a SAX `XMLReader` that reads from the given StAX `XMLEventReader`.
    `static XMLReader` | `createXMLReader(XMLStreamReader streamReader)` Create a SAX `XMLReader` that reads from the given StAX `XMLStreamReader`.
    `static XMLEventReader` | `getXMLEventReader(Source source)` Return the `XMLEventReader` for the given StAX Source.
    `static XMLEventWriter` | `getXMLEventWriter(Result result)` Return the `XMLEventWriter` for the given StAX Result.
    `static XMLStreamReader` | `getXMLStreamReader(Source source)` Return the `XMLStreamReader` for the given StAX Source.
    `static XMLStreamWriter` | `getXMLStreamWriter(Result result)` Return the `XMLStreamWriter` for the given StAX Result.
    `static boolean` | `isStaxResult(Result result)` Indicate whether the given `Result` is a StAX Result.
    `static boolean` | `isStaxSource(Source source)` Indicate whether the given `Source` is a StAX Source.
    `static boolean` | `isStaxSourceClass(Class<? extends Source> clazz)` Indicate whether the given class is a StAX Source class.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### StaxUtils

          public StaxUtils()

  - ### Method Detail

    - #### createCustomStaxSource

          public static Source createCustomStaxSource(XMLStreamReader streamReader)

      Create a custom, non-JAXP 1.4 StAX `Source` for the given `XMLStreamReader`.
      Parameters:
        `streamReader` - the StAX stream reader
      Returns:
        a source wrapping the `streamReader`

    - #### createStaxSource

          public static Source createStaxSource(XMLStreamReader streamReader)

      Create a StAX `Source` for the given `XMLStreamReader`.

      If JAXP 1.4 is available, this method returns a `StAXSource`; otherwise it returns a custom StAX Source.

      Parameters:
        `streamReader` - the StAX stream reader
      Returns:
        a source wrapping the `streamReader`
      See Also:
        `createCustomStaxSource(XMLStreamReader)`

    - #### createCustomStaxSource

          public static Source createCustomStaxSource(XMLEventReader eventReader)

      Create a custom, non-JAXP 1.4 StAX `Source` for the given `XMLEventReader`.
      Parameters:
        `eventReader` - the StAX event reader
      Returns:
        a source wrapping the `eventReader`

    - #### createStaxSource

          public static Source createStaxSource(XMLEventReader eventReader)
                                         throws XMLStreamException

      Create a StAX `Source` for the given `XMLEventReader`.

      If JAXP 1.4 is available, this method returns a `StAXSource`; otherwise it returns a custom StAX Source.

      Parameters:
        `eventReader` - the StAX event reader
      Returns:
        a source wrapping the `eventReader`
      Throws:
        `XMLStreamException` - in case of StAX errors
      See Also:
        `createCustomStaxSource(XMLEventReader)`

    - #### isStaxSource

          public static boolean isStaxSource(Source source)

      Indicate whether the given `Source` is a StAX Source.
      Returns:
        `true` if `source` is a custom StAX source or JAXP 1.4 `StAXSource`; `false` otherwise.

    - #### isStaxSourceClass

          public static boolean isStaxSourceClass(Class<? extends Source> clazz)

      Indicate whether the given class is a StAX Source class.
      Returns:
        `true` if `source` is a custom StAX source or JAXP 1.4 `StAXSource` class; `false` otherwise.

    - #### createCustomStaxResult

          public static Result createCustomStaxResult(XMLStreamWriter streamWriter)

      Create a custom, non-JAXP 1.4 StAX `Result` for the given `XMLStreamWriter`.
      Parameters:
        `streamWriter` - the StAX stream writer
      Returns:
        a source wrapping the `streamWriter`

    - #### createStaxResult

          public static Result createStaxResult(XMLStreamWriter streamWriter)

      Create a StAX `Result` for the given `XMLStreamWriter`.

      If JAXP 1.4 is available, this method returns a `StAXResult`; otherwise it returns a custom StAX Result.

      Parameters:
        `streamWriter` - the StAX stream writer
      Returns:
        a result wrapping the `streamWriter`
      See Also:
        `createCustomStaxResult(XMLStreamWriter)`

    - #### createCustomStaxResult

          public static Result createCustomStaxResult(XMLEventWriter eventWriter)

      Create a custom, non-JAXP 1.4 StAX `Result` for the given `XMLEventWriter`.
      Parameters:
        `eventWriter` - the StAX event writer
      Returns:
        a source wrapping the `eventWriter`

    - #### createStaxResult

          public static Result createStaxResult(XMLEventWriter eventWriter)
                                         throws XMLStreamException

      Create a StAX `Result` for the given `XMLEventWriter`.

      If JAXP 1.4 is available, this method returns a `StAXResult`; otherwise it returns a custom StAX Result.

      Parameters:
        `eventWriter` - the StAX event writer
      Returns:
        a result wrapping `streamReader`
      Throws:
        `XMLStreamException` - in case of StAX errors
      See Also:
        `createCustomStaxResult(XMLEventWriter)`

    - #### isStaxResult

          public static boolean isStaxResult(Result result)

      Indicate whether the given `Result` is a StAX Result.
      Returns:
        `true` if `result` is a custom Stax Result or JAXP 1.4 `StAXResult`; `false` otherwise.

    - #### getXMLStreamReader

          public static XMLStreamReader getXMLStreamReader(Source source)

      Return the `XMLStreamReader` for the given StAX Source.
      Parameters:
        `source` - a custom StAX Source or JAXP 1.4 `StAXSource`
      Returns:
        the `XMLStreamReader`
      Throws:
        `IllegalArgumentException` - if `source` is neither a custom StAX Source nor JAXP 1.4 `StAXSource`

    - #### getXMLEventReader

          public static XMLEventReader getXMLEventReader(Source source)

      Return the `XMLEventReader` for the given StAX Source.
      Parameters:
        `source` - a custom StAX Source or JAXP 1.4 `StAXSource`
      Returns:
        the `XMLEventReader`
      Throws:
        `IllegalArgumentException` - if `source` is neither a custom StAX Source nor a JAXP 1.4 `StAXSource`

    - #### getXMLStreamWriter

          public static XMLStreamWriter getXMLStreamWriter(Result result)

      Return the `XMLStreamWriter` for the given StAX Result.
      Parameters:
        `result` - a custom StAX Result or JAXP 1.4 `StAXResult`
      Returns:
        the `XMLStreamReader`
      Throws:
        `IllegalArgumentException` - if `source` is neither a custom StAX Result nor a JAXP 1.4 `StAXResult`

    - #### getXMLEventWriter

          public static XMLEventWriter getXMLEventWriter(Result result)

      Return the `XMLEventWriter` for the given StAX Result.
      Parameters:
        `result` - a custom StAX Result or JAXP 1.4 `StAXResult`
      Returns:
        the `XMLStreamReader`
      Throws:
        `IllegalArgumentException` - if `source` is neither a custom StAX Result nor a JAXP 1.4 `StAXResult`

    - #### createContentHandler

          public static ContentHandler createContentHandler(XMLStreamWriter streamWriter)

      Create a SAX `ContentHandler` that writes to the given StAX `XMLStreamWriter`.
      Parameters:
        `streamWriter` - the StAX stream writer
      Returns:
        a content handler writing to the `streamWriter`

    - #### createContentHandler

          public static ContentHandler createContentHandler(XMLEventWriter eventWriter)

      Create a SAX `ContentHandler` that writes events to the given StAX `XMLEventWriter`.
      Parameters:
        `eventWriter` - the StAX event writer
      Returns:
        a content handler writing to the `eventWriter`

    - #### createXMLReader

          public static XMLReader createXMLReader(XMLStreamReader streamReader)

      Create a SAX `XMLReader` that reads from the given StAX `XMLStreamReader`.
      Parameters:
        `streamReader` - the StAX stream reader
      Returns:
        a XMLReader reading from the `streamWriter`

    - #### createXMLReader

          public static XMLReader createXMLReader(XMLEventReader eventReader)

      Create a SAX `XMLReader` that reads from the given StAX `XMLEventReader`.
      Parameters:
        `eventReader` - the StAX event reader
      Returns:
        a XMLReader reading from the `eventWriter`

    - #### createEventStreamReader

          public static XMLStreamReader createEventStreamReader(XMLEventReader eventReader)
                                                         throws XMLStreamException

      Return a `XMLStreamReader` that reads from a `XMLEventReader`. Useful, because the StAX `XMLInputFactory` allows one to create a event reader from a stream reader, but not vice-versa.
      Returns:
        a stream reader that reads from an event reader
      Throws:
        `XMLStreamException`

    - #### createEventStreamWriter

          public static XMLStreamWriter createEventStreamWriter(XMLEventWriter eventWriter)

      Return a `XMLStreamWriter` that writes to a `XMLEventWriter`.
      Returns:
        a stream writer that writes to an event writer
      Since:
        3.2

    - #### createEventStreamWriter

          public static XMLStreamWriter createEventStreamWriter(XMLEventWriter eventWriter,
                                                XMLEventFactory eventFactory)

      Return a `XMLStreamWriter` that writes to a `XMLEventWriter`.
      Returns:
        a stream writer that writes to an event writer
      Since:
        3.0.5