com.intellectualcrafters.json

## Class XML

- java.lang.Object
- - com.intellectualcrafters.json.XML

-     public class XML
      extends java.lang.Object

  This provides static methods to convert an XML text into a JSONObject, and to covert a JSONObject into an XML text.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.Character` | `AMP` The Character '&'.
    `static java.lang.Character` | `APOS` The Character '''.
    `static java.lang.Character` | `BANG` The Character '!'.
    `static java.lang.Character` | `EQ` The Character '='.
    `static java.lang.Character` | `GT` The Character '>'.
    `static java.lang.Character` | `LT` The Character '<'.
    `static java.lang.Character` | `QUEST` The Character '?'.
    `static java.lang.Character` | `QUOT` The Character '"'.
    `static java.lang.Character` | `SLASH` The Character '/'.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XML()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static java.lang.String` | `escape(java.lang.String string)` Replace special characters with XML escapes: & (ampersand) is replaced by &amp; < (less than) is replaced by &lt; > (greater than) is replaced by &gt; " (double quote) is replaced by &quot;
    `static void` | `noSpace(java.lang.String string)` Throw an exception if the string contains whitespace.
    `static java.lang.Object` | `stringToValue(java.lang.String string)` Try to convert a string into a number, boolean, or null.
    `static JSONObject` | `toJSONObject(java.lang.String string)` Convert a well-formed (but not necessarily valid) XML string into a JSONObject.
    `static java.lang.String` | `toString(java.lang.Object object)` Convert a JSONObject into a well-formed, element-normal XML string.
    `static java.lang.String` | `toString(java.lang.Object object, java.lang.String tagName)` Convert a JSONObject into a well-formed, element-normal XML string.

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

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

- - ### Field Detail

    - #### AMP

          public static final java.lang.Character AMP

      The Character '&'.

    - #### APOS

          public static final java.lang.Character APOS

      The Character '''.

    - #### BANG

          public static final java.lang.Character BANG

      The Character '!'.

    - #### EQ

          public static final java.lang.Character EQ

      The Character '='.

    - #### GT

          public static final java.lang.Character GT

      The Character '>'.

    - #### LT

          public static final java.lang.Character LT

      The Character '<'.

    - #### QUEST

          public static final java.lang.Character QUEST

      The Character '?'.

    - #### QUOT

          public static final java.lang.Character QUOT

      The Character '"'.

    - #### SLASH

          public static final java.lang.Character SLASH

      The Character '/'.

  - ### Constructor Detail

    - #### XML

          public XML()

  - ### Method Detail

    - #### escape

          public static java.lang.String escape(java.lang.String string)

      Replace special characters with XML escapes:

           & (ampersand) is replaced by &amp;
           < (less than) is replaced by &lt;
           > (greater than) is replaced by &gt;
           " (double quote) is replaced by &quot;

      Parameters:
        `string` - The string to be escaped.
      Returns:
        The escaped string.

    - #### noSpace

          public static void noSpace(java.lang.String string)
                              throws JSONException

      Throw an exception if the string contains whitespace. Whitespace is not allowed in tagNames and attributes.
      Parameters:
        `string` - A string.
      Throws:
        `JSONException`

    - #### stringToValue

          public static java.lang.Object stringToValue(java.lang.String string)

      Try to convert a string into a number, boolean, or null. If the string can't be converted, return the string. This is much less ambitious than JSONObject.stringToValue, especially because it does not attempt to convert plus forms, octal forms, hex forms, or E forms lacking decimal points.
      Parameters:
        `string` - A String.
      Returns:
        A simple JSON value.

    - #### toJSONObject

          public static JSONObject toJSONObject(java.lang.String string)
                                         throws JSONException

      Convert a well-formed (but not necessarily valid) XML string into a JSONObject. Some information may be lost in this transformation because JSON is a data format and XML is a document format. XML uses elements, attributes, and content text, while JSON uses unordered collections of name/value pairs and arrays of values. JSON does not does not like to distinguish between elements and attributes. Sequences of similar elements are represented as JSONArrays. Content text may be placed in a "content" member. Comments, prologs, DTDs, and `<[ [ ]]>` are ignored.
      Parameters:
        `string` - The source string.
      Returns:
        A JSONObject containing the structured data from the XML string.
      Throws:
        `JSONException`

    - #### toString

          public static java.lang.String toString(java.lang.Object object)
                                           throws JSONException

      Convert a JSONObject into a well-formed, element-normal XML string.
      Parameters:
        `object` - A JSONObject.
      Returns:
        A string.
      Throws:
        `JSONException`

    - #### toString

          public static java.lang.String toString(java.lang.Object object,
                                  java.lang.String tagName)
                                           throws JSONException

      Convert a JSONObject into a well-formed, element-normal XML string.
      Parameters:
        `object` - A JSONObject.
        `tagName` - The optional name of the enclosing tag.
      Returns:
        A string.
      Throws:
        `JSONException`