Package org.apache.synapse.commons.staxon.core.json

## Class JsonXMLOutputFactory

- java.lang.Object
- - javax.xml.stream.XMLOutputFactory
  - - org.apache.synapse.commons.staxon.core.base.AbstractXMLOutputFactory
    - - org.apache.synapse.commons.staxon.core.json.JsonXMLOutputFactory

-     public class JsonXMLOutputFactory
      extends AbstractXMLOutputFactory

  XML output factory for streaming to JSON.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `PROP_AUTO_ARRAY` | Start/end arrays automatically?
    `static String` | `PROP_AUTO_PRIMITIVE` | Convert element text to JSON primitives (number, boolean, null) automatically?
    `static String` | `PROP_CUSTOM_REGEX` | Convert element text to JSON primitives with ignore given regex (number, boolean, null) automatically?
    `static String` | `PROP_CUSTOM_REPLACE_REGEX` |
    `static String` | `PROP_CUSTOM_REPLACE_SEQUENCE` |
    `static String` | `PROP_MULTIPLE_PI` | Whether to use the `JsonXMLStreamConstants.MULTIPLE_PI_TARGET` processing instruction target to trigger an array start.
    `static String` | `PROP_NAMESPACE_DECLARATIONS` | Whether to write namespace declarations.
    `static String` | `PROP_NAMESPACE_SEPARATOR` | Namespace prefix separator.
    `static String` | `PROP_PRETTY_PRINT` | Format output for better readability?
    `static String` | `PROP_VIRTUAL_ROOT` | JSON documents may have have multiple root properties.

    - ### Fields inherited from class javax.xml.stream.XMLOutputFactory

      `IS_REPAIRING_NAMESPACES`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `JsonXMLOutputFactory()` |
    `JsonXMLOutputFactory​(JsonXMLConfig config)` |
    `JsonXMLOutputFactory​(JsonXMLConfig config, JsonStreamFactory streamFactory)` |
    `JsonXMLOutputFactory​(JsonStreamFactory streamFactory)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `XMLEventWriter` | `createXMLEventWriter​(XMLStreamWriter writer)` |
    `JsonXMLStreamWriter` | `createXMLStreamWriter​(OutputStream stream)` |
    `JsonXMLStreamWriter` | `createXMLStreamWriter​(OutputStream stream, String encoding)` |
    `JsonXMLStreamWriter` | `createXMLStreamWriter​(Writer stream)` |
    `JsonXMLConfig` | `getConfig()` |
    `Object` | `getProperty​(String name)` |
    `boolean` | `isPropertySupported​(String name)` |
    `void` | `setProperty​(String name, Object value)` |

    - ### Methods inherited from class org.apache.synapse.commons.staxon.core.base.AbstractXMLOutputFactory

      `createXMLEventWriter, createXMLEventWriter, createXMLEventWriter, createXMLEventWriter, createXMLStreamWriter`

    - ### Methods inherited from class javax.xml.stream.XMLOutputFactory

      `newDefaultFactory, newFactory, newFactory, newInstance, newInstance`

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

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

- - ### Field Detail

    - #### PROP_AUTO_ARRAY

          public static final String PROP_AUTO_ARRAY

      Start/end arrays automatically?

      The default value is `false`.

      See Also:
        Constant Field Values

    - #### PROP_AUTO_PRIMITIVE

          public static final String PROP_AUTO_PRIMITIVE

      Convert element text to JSON primitives (number, boolean, null) automatically?

      The default value is `false`.

      See Also:
        Constant Field Values

    - #### PROP_MULTIPLE_PI

          public static final String PROP_MULTIPLE_PI

      Whether to use the `JsonXMLStreamConstants.MULTIPLE_PI_TARGET` processing instruction target to trigger an array start. If `true`, a PI is used to inform the writer to begin an array, passing the name of following multiple elements as data. The writer will close arrays automatically.

      Note that the element given in the PI may be written zero times, indicating an empty array.

      The default value is true.

      See Also:
        Constant Field Values

    - #### PROP_VIRTUAL_ROOT

          public static final String PROP_VIRTUAL_ROOT

      JSON documents may have have multiple root properties. However, XML requires a single root element. This property takes the name of a "virtual" root element, which will be removed from the stream when writing.

      The default value is `null`.

      See Also:
        Constant Field Values

    - #### PROP_NAMESPACE_SEPARATOR

          public static final String PROP_NAMESPACE_SEPARATOR

      Namespace prefix separator.

      The default value is `':'`.

      See Also:
        Constant Field Values

    - #### PROP_NAMESPACE_DECLARATIONS

          public static final String PROP_NAMESPACE_DECLARATIONS

      Whether to write namespace declarations.

      The default value is `true`.

      See Also:
        Constant Field Values

    - #### PROP_PRETTY_PRINT

          public static final String PROP_PRETTY_PRINT

      Format output for better readability?

      The default value is `false`.

      See Also:
        Constant Field Values

    - #### PROP_CUSTOM_REGEX

          public static final String PROP_CUSTOM_REGEX

      Convert element text to JSON primitives with ignore given regex (number, boolean, null) automatically?

      The default value is `null`.

      See Also:
        Constant Field Values

    - #### PROP_CUSTOM_REPLACE_REGEX

          public static final String PROP_CUSTOM_REPLACE_REGEX

      See Also:
        Constant Field Values

    - #### PROP_CUSTOM_REPLACE_SEQUENCE

          public static final String PROP_CUSTOM_REPLACE_SEQUENCE

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### JsonXMLOutputFactory

          public JsonXMLOutputFactory()
                               throws FactoryConfigurationError

      Throws:
        `FactoryConfigurationError`

    - #### JsonXMLOutputFactory

          public JsonXMLOutputFactory​(JsonStreamFactory streamFactory)

    - #### JsonXMLOutputFactory

          public JsonXMLOutputFactory​(JsonXMLConfig config)
                               throws FactoryConfigurationError

      Throws:
        `FactoryConfigurationError`

    - #### JsonXMLOutputFactory

          public JsonXMLOutputFactory​(JsonXMLConfig config,
                                      JsonStreamFactory streamFactory)

  - ### Method Detail

    - #### createXMLStreamWriter

          public JsonXMLStreamWriter createXMLStreamWriter​(OutputStream stream,
                                                           String encoding)
                                                    throws XMLStreamException

      Specified by:
        `createXMLStreamWriter` in class `XMLOutputFactory`
      Throws:
        `XMLStreamException`

    - #### createXMLStreamWriter

          public JsonXMLStreamWriter createXMLStreamWriter​(Writer stream)
                                                    throws XMLStreamException

      Specified by:
        `createXMLStreamWriter` in class `XMLOutputFactory`
      Throws:
        `XMLStreamException`

    - #### createXMLStreamWriter

          public JsonXMLStreamWriter createXMLStreamWriter​(OutputStream stream)
                                                    throws XMLStreamException

      Specified by:
        `createXMLStreamWriter` in class `XMLOutputFactory`
      Throws:
        `XMLStreamException`

    - #### createXMLEventWriter

          public XMLEventWriter createXMLEventWriter​(XMLStreamWriter writer)
                                              throws XMLStreamException

      Specified by:
        `createXMLEventWriter` in class `AbstractXMLOutputFactory`
      Throws:
        `XMLStreamException`

    - #### isPropertySupported

          public boolean isPropertySupported​(String name)

      Overrides:
        `isPropertySupported` in class `AbstractXMLOutputFactory`

    - #### getProperty

          public Object getProperty​(String name)
                             throws IllegalArgumentException

      Overrides:
        `getProperty` in class `AbstractXMLOutputFactory`
      Throws:
        `IllegalArgumentException`

    - #### setProperty

          public void setProperty​(String name,
                                  Object value)
                           throws IllegalArgumentException

      Overrides:
        `setProperty` in class `AbstractXMLOutputFactory`
      Throws:
        `IllegalArgumentException`

    - #### getConfig

          public JsonXMLConfig getConfig()