org.apache.uima.pear.util

## Class XMLUtil

- java.lang.Object
- - org.apache.uima.pear.util.XMLUtil

-     public class XMLUtil
      extends Object

  The `XMLUtil` class provides miscellaneous XML utilities.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `CDATA_SECTION_BEG`
    `static String` | `CDATA_SECTION_END`
    `protected static boolean` | `DEFAULT_DYNAMIC_VALIDATION`
    `protected static boolean` | `DEFAULT_NAMESPACE_PREFIXES`
    `protected static boolean` | `DEFAULT_NAMESPACES`
    `protected static boolean` | `DEFAULT_SCHEMA_FULL_CHECKING`
    `protected static boolean` | `DEFAULT_SCHEMA_VALIDATION`
    `protected static boolean` | `DEFAULT_VALIDATION`
    `static String` | `DYNAMIC_VALIDATION_FEATURE_ID`
    `protected static String` | `FIRST_XML_CHARS`
    `static String` | `NAMESPACE_PREFIXES_FEATURE_ID`
    `static String` | `NAMESPACES_FEATURE_ID` XML parser feature ids
    `static String` | `SCHEMA_FULL_CHECKING_FEATURE_ID`
    `static String` | `SCHEMA_VALIDATION_FEATURE_ID`
    `static String` | `VALIDATION_FEATURE_ID`
    `static String` | `XML_ENCODING_TAG`
    `static String` | `XML_HEADER_BEG`
    `static String` | `XML_HEADER_END`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XMLUtil()` XMLUtil constructor comment.

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static SAXParser` | `createSAXParser()` Gets new instance of the `SAXParser` class and sets standard features.
    `static String` | `detectXmlFileEncoding(File xmlFile)` Attempts to detect file encoding of a given XML file by analyzing it's first characters.
    `static boolean` | `isValidXmlFile(File xmlFile)` Tries to parse a given XML file using SAX parser.
    `static void` | `printAllXMLElements(Properties elements, PrintWriter oWriter, int level)` Prints entries of a given `Properties` object as XML elements to a given `PrintWriter`, maintaining a given indentation level.
    `static void` | `printAllXMLElements(Properties elements, String[] tagOrder, PrintWriter oWriter, int level)` Prints entries of a given `Properties` object as XML elements to a given `PrintWriter`, maintaining a specified tag order and a given indentation level.
    `static void` | `printAllXMLElements(Properties elements, String valueDelimiter, String[] tagOrder, PrintWriter oWriter, int level)` Prints entries of a given `Properties` object as XML elements to a given `PrintWriter`, maintaining a specified tag order and a given indentation level.
    `static void` | `printError(String type, SAXParseException ex)` Prints SAX error message.
    `static void` | `printXMLElement(String tag, Properties attributes, PrintWriter oWriter, int level)` Prints a given XML element, which contains only given attributes, to a given `PrintWriter`, maintaining a given indentation level.
    `static void` | `printXMLElement(String tag, Properties attributes, String elemValue, boolean putInCdataSection, PrintWriter oWriter, int level)` Prints a given XML element, which contains given attributes and a given string value, to a given `PrintWriter`, maintaining a given indentation level.
    `static void` | `printXMLElement(String tag, Properties attributes, String elemValue, boolean putInCdataSection, PrintWriter oWriter, int level, boolean useNewLine4Value)` Prints a given XML element, which contains given attributes and a given string value, to a given `PrintWriter`, maintaining a given indentation level.
    `static void` | `printXMLElement(String tag, Properties attributes, String elemValue, PrintWriter oWriter, int level)` Prints a given XML element, which contains given attributes and a given string value, to a given `PrintWriter`, maintaining a given indentation level.
    `static void` | `printXMLElement(String tag, String elemValue, boolean putInCdataSection, PrintWriter oWriter, int level)` Prints a given XML element, which contains only a given string value, to a given `PrintWriter`, maintaining a given indentation level.
    `static void` | `printXMLElement(String tag, String elemValue, PrintWriter oWriter, int level)` Prints a given XML element, which contains only a given string value, to a given `PrintWriter`, maintaining a given indentation level.
    `static void` | `printXMLElements(String tag, String elemValue, String valueDelimiter, PrintWriter oWriter, int level)` Prints multiple values of a given XML element, separated with a specified delimiter, to a given `PrintWriter`, maintaining a given indentation level.
    `static void` | `printXMLElementValue(String elemValue, boolean putInCdataSection, PrintWriter oWriter, int level)` Prints a given element value to a given `PrintWriter`, maintaining a given indentation level.
    `static void` | `printXMLElementValue(String elemValue, PrintWriter oWriter, int level)` Prints a given element value to a given `PrintWriter`, maintaining a given indentation level.
    `static void` | `printXMLHeader(String encoding, PrintWriter oWriter)` Prints standard XML 1.0 header with a specified encoding to a given `PrintStream`.
    `static void` | `printXMLTag(String tag, PrintWriter oWriter, boolean tagEnd, int level)` Prints a given XML tag to a given `PrintWriter`, maintaining a given indentation level.
    `static void` | `printXMLTag(String tag, Properties attributes, PrintWriter oWriter, boolean tagEnd, int level)` Prints a given XML tag with given element attributes to a given `PrintWriter`, maintaining a given indentation level.

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

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

- - ### Field Detail

    - #### XML_HEADER_BEG

          public static final String XML_HEADER_BEG

      See Also:
        Constant Field Values

    - #### XML_ENCODING_TAG

          public static final String XML_ENCODING_TAG

      See Also:
        Constant Field Values

    - #### XML_HEADER_END

          public static final String XML_HEADER_END

      See Also:
        Constant Field Values

    - #### CDATA_SECTION_BEG

          public static final String CDATA_SECTION_BEG

      See Also:
        Constant Field Values

    - #### CDATA_SECTION_END

          public static final String CDATA_SECTION_END

      See Also:
        Constant Field Values

    - #### NAMESPACES_FEATURE_ID

          public static final String NAMESPACES_FEATURE_ID

      XML parser feature ids
      See Also:
        Constant Field Values

    - #### NAMESPACE_PREFIXES_FEATURE_ID

          public static final String NAMESPACE_PREFIXES_FEATURE_ID

      See Also:
        Constant Field Values

    - #### VALIDATION_FEATURE_ID

          public static final String VALIDATION_FEATURE_ID

      See Also:
        Constant Field Values

    - #### SCHEMA_VALIDATION_FEATURE_ID

          public static final String SCHEMA_VALIDATION_FEATURE_ID

      See Also:
        Constant Field Values

    - #### SCHEMA_FULL_CHECKING_FEATURE_ID

          public static final String SCHEMA_FULL_CHECKING_FEATURE_ID

      See Also:
        Constant Field Values

    - #### DYNAMIC_VALIDATION_FEATURE_ID

          public static final String DYNAMIC_VALIDATION_FEATURE_ID

      See Also:
        Constant Field Values

    - #### DEFAULT_NAMESPACES

          protected static final boolean DEFAULT_NAMESPACES

      See Also:
        Constant Field Values

    - #### DEFAULT_NAMESPACE_PREFIXES

          protected static final boolean DEFAULT_NAMESPACE_PREFIXES

      See Also:
        Constant Field Values

    - #### DEFAULT_VALIDATION

          protected static final boolean DEFAULT_VALIDATION

      See Also:
        Constant Field Values

    - #### DEFAULT_SCHEMA_VALIDATION

          protected static final boolean DEFAULT_SCHEMA_VALIDATION

      See Also:
        Constant Field Values

    - #### DEFAULT_SCHEMA_FULL_CHECKING

          protected static final boolean DEFAULT_SCHEMA_FULL_CHECKING

      See Also:
        Constant Field Values

    - #### DEFAULT_DYNAMIC_VALIDATION

          protected static final boolean DEFAULT_DYNAMIC_VALIDATION

      See Also:
        Constant Field Values

    - #### FIRST_XML_CHARS

          protected static final String FIRST_XML_CHARS

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### XMLUtil

          public XMLUtil()

      XMLUtil constructor comment.

  - ### Method Detail

    - #### createSAXParser

          public static SAXParser createSAXParser()
                                           throws SAXException

      Gets new instance of the `SAXParser` class and sets standard features.
      Returns:
        The new instance of the `SAXParser` class.
      Throws:
        `SAXException` - if any parser exception occurred.

    - #### detectXmlFileEncoding

          public static String detectXmlFileEncoding(File xmlFile)
                                              throws IOException

      Attempts to detect file encoding of a given XML file by analyzing it's first characters. This method can recognize the following 2 standard encodings: UTF-8 (ASCII) and UTF-16 (LE and BE). If the given XML file is not valid or its encoding cannot be recognized, the method returns `null`, otherwise it returns the detected encoding name. For more on UTF encodings and its signatures see FAQ - UTF and BOM.
      Parameters:
        `xmlFile` - The given XML file.
      Returns:
        Detected XML file encoding name or `null`, if the file encoding cannot be recognized or the file is not a valid XML file.
      Throws:
        `IOException` - If the given file cannot be read.

    - #### isValidXmlFile

          public static boolean isValidXmlFile(File xmlFile)
                                        throws IOException

      Tries to parse a given XML file using SAX parser. Returns `true`, if the parser does not encounter fatal error, otherwise returns `false`.
      Parameters:
        `xmlFile` - The given XML file to be tested.
      Returns:
        `true`, if the given XML file can be parsed, `false` otherwise.
      Throws:
        `IOException` - If the given file cannot be read.

    - #### printError

          public static void printError(String type,
                                        SAXParseException ex)

      Prints SAX error message.
      Parameters:
        `type` - type
        `ex` - exception

    - #### printAllXMLElements

          public static void printAllXMLElements(Properties elements,
                                                 PrintWriter oWriter,
                                                 int level)
                                          throws IOException

      Prints entries of a given `Properties` object as XML elements to a given `PrintWriter`, maintaining a given indentation level.
      Parameters:
        `elements` - The given `Properties` object.
        `oWriter` - The given `PrintWriter` object.
        `level` - The given indentation level.
      Throws:
        `IOException` - if any I/O exception occurred.

    - #### printAllXMLElements

          public static void printAllXMLElements(Properties elements,
                                                 String valueDelimiter,
                                                 String[] tagOrder,
                                                 PrintWriter oWriter,
                                                 int level)
                                          throws IOException

      Prints entries of a given `Properties` object as XML elements to a given `PrintWriter`, maintaining a specified tag order and a given indentation level. Some elements may contain multiple values delimited by a specified value delimiter. Inserts new line after each printed element.
      Parameters:
        `elements` - The given `Properties` object.
        `valueDelimiter` - The specified value delimiter for multi-valued elements.
        `tagOrder` - The `String` array that specifies the tag order.
        `oWriter` - The given `PrintWriter` object.
        `level` - The given indentation level.
      Throws:
        `IOException` - if any I/O exception occurred.

    - #### printAllXMLElements

          public static void printAllXMLElements(Properties elements,
                                                 String[] tagOrder,
                                                 PrintWriter oWriter,
                                                 int level)
                                          throws IOException

      Prints entries of a given `Properties` object as XML elements to a given `PrintWriter`, maintaining a specified tag order and a given indentation level.
      Parameters:
        `elements` - The given `Properties` object.
        `tagOrder` - The `String` array that specifies the tag order.
        `oWriter` - The given `PrintWriter` object.
        `level` - The given indentation level.
      Throws:
        `IOException` - if any I/O exception occurred.

    - #### printXMLElement

          public static void printXMLElement(String tag,
                                             Properties attributes,
                                             PrintWriter oWriter,
                                             int level)
                                      throws IOException

      Prints a given XML element, which contains only given attributes, to a given `PrintWriter`, maintaining a given indentation level.
      Parameters:
        `tag` - The given XML tag.
        `attributes` - The given XML element attributes.
        `oWriter` - The given `PrintWriter` object.
        `level` - The given indentation level (number of marginal '\t' symbols).
      Throws:
        `IOException` - if any I/O exception occurred.

    - #### printXMLElement

          public static void printXMLElement(String tag,
                                             Properties attributes,
                                             String elemValue,
                                             PrintWriter oWriter,
                                             int level)
                                      throws IOException

      Prints a given XML element, which contains given attributes and a given string value, to a given `PrintWriter`, maintaining a given indentation level. The string element value (if exists) is printed 'as is' - without a CDATA section.
      Parameters:
        `tag` - The given XML element tag.
        `attributes` - The given XML element attributes.
        `elemValue` - The given XML element value.
        `oWriter` - The given `PrintWriter` object.
        `level` - The given indentation level (number of marginal '\t' symbols).
      Throws:
        `IOException` - if any I/O exception occurred.

    - #### printXMLElement

          public static void printXMLElement(String tag,
                                             Properties attributes,
                                             String elemValue,
                                             boolean putInCdataSection,
                                             PrintWriter oWriter,
                                             int level)
                                      throws IOException

      Prints a given XML element, which contains given attributes and a given string value, to a given `PrintWriter`, maintaining a given indentation level. The string element value (if exists) is printed within or without the CDATA section, depending on a given `boolean` flag value.
      Parameters:
        `tag` - The given XML element tag.
        `attributes` - The given XML element tag.
        `elemValue` - The given XML element value.
        `putInCdataSection` - If `true`, puts the element value in the `CDATA` section, otherwise prints the element value without the `CDATA` section.
        `oWriter` - The given `PrintWriter` object.
        `level` - The given indentation level (number of marginal '\t' symbols).
      Throws:
        `IOException` - if any I/O exception occurred.

    - #### printXMLElement

          public static void printXMLElement(String tag,
                                             Properties attributes,
                                             String elemValue,
                                             boolean putInCdataSection,
                                             PrintWriter oWriter,
                                             int level,
                                             boolean useNewLine4Value)
                                      throws IOException

      Prints a given XML element, which contains given attributes and a given string value, to a given `PrintWriter`, maintaining a given indentation level. The string element value (if exists) may be printed inside a CDATA section, depending on the value of a given 'CDATA' `boolean` flag. The element value may be printed on the same line as the element tags, or on a new line, depending on the value of a given 'new-line' `boolean` flag.
      Parameters:
        `tag` - The given XML element tag.
        `attributes` - The given XML element attributes.
        `elemValue` - The given XML element value.
        `putInCdataSection` - If `true`, the given element value is printed inside the CDATA section, otherwise it's printed 'as is'.
        `oWriter` - The given `PrintWriter` object.
        `level` - The given indentation level (number of marginal '\t' symbols).
        `useNewLine4Value` - If `true`, the given element value is printed on a new line, otherwise it's printed on the same line as the element tags.
      Throws:
        `IOException` - if any I/O exception occurred.

    - #### printXMLElement

          public static void printXMLElement(String tag,
                                             String elemValue,
                                             PrintWriter oWriter,
                                             int level)
                                      throws IOException

      Prints a given XML element, which contains only a given string value, to a given `PrintWriter`, maintaining a given indentation level. The string element value is printed 'as-is' without the CDATA block.
      Parameters:
        `tag` - The given XML tag.
        `elemValue` - The given XML element value.
        `oWriter` - The given `PrintWriter` object.
        `level` - The given indentation level (number of marginal '\t' symbols).
      Throws:
        `IOException` - if any I/O exception occurred.

    - #### printXMLElement

          public static void printXMLElement(String tag,
                                             String elemValue,
                                             boolean putInCdataSection,
                                             PrintWriter oWriter,
                                             int level)
                                      throws IOException

      Prints a given XML element, which contains only a given string value, to a given `PrintWriter`, maintaining a given indentation level. The string element value (if exists) is put into the CDATA block, if a given `boolean` flag is `true`.
      Parameters:
        `tag` - The given XML tag.
        `elemValue` - The given XML element value.
        `putInCdataSection` - If `true`, puts the element value in the `CDATA` section, otherwise prints the element value without the `CDATA` section.
        `oWriter` - The given `PrintWriter` object.
        `level` - The given indentation level (number of marginal '\t' symbols).
      Throws:
        `IOException` - if any I/O exception occurred.

    - #### printXMLElements

          public static void printXMLElements(String tag,
                                              String elemValue,
                                              String valueDelimiter,
                                              PrintWriter oWriter,
                                              int level)
                                       throws IOException

      Prints multiple values of a given XML element, separated with a specified delimiter, to a given `PrintWriter`, maintaining a given indentation level. Inserts new line after each printed element value.
      Parameters:
        `tag` - The given XML element tag.
        `elemValue` - The given XML element values (multi-value), separated with the given delimiter.
        `valueDelimiter` - The given delimiter for multi-value elements.
        `oWriter` - The given `PrintWriter` object.
        `level` - The given indentation level (number of marginal '\t' symbols).
      Throws:
        `IOException` - if any I/O exception occurred.

    - #### printXMLElementValue

          public static void printXMLElementValue(String elemValue,
                                                  PrintWriter oWriter,
                                                  int level)
                                           throws IOException

      Prints a given element value to a given `PrintWriter`, maintaining a given indentation level. By default, prints the element value 'as is' - not using the `CDATA` section.
      Parameters:
        `elemValue` - The given element value.
        `oWriter` - The given `PrintWriter` object.
        `level` - The given indentation level.
      Throws:
        `IOException` - if any I/O exception occurred.

    - #### printXMLElementValue

          public static void printXMLElementValue(String elemValue,
                                                  boolean putInCdataSection,
                                                  PrintWriter oWriter,
                                                  int level)
                                           throws IOException

      Prints a given element value to a given `PrintWriter`, maintaining a given indentation level. If a given `boolean` 'CDATA' flag is `true`, puts the element value in the `CDATA` section, otherwise prints the element value 'as is'.
      Parameters:
        `elemValue` - The given element value.
        `putInCdataSection` - If `true`, puts the element value in the `CDATA` section, otherwise prints the element value without the `CDATA` section.
        `oWriter` - The given `PrintWriter` object.
        `level` - The given indentation level.
      Throws:
        `IOException` - if any I/O exception occurred.

    - #### printXMLHeader

          public static void printXMLHeader(String encoding,
                                            PrintWriter oWriter)
                                     throws IOException

      Prints standard XML 1.0 header with a specified encoding to a given `PrintStream`. If no encoding is specified (`null` or empty string), does not include the encoding name in the header.
      Parameters:
        `encoding` - The given XML encoding name or `null`.
        `oWriter` - The given output `PrintStream`.
      Throws:
        `IOException` - if any I/O exception occurred.

    - #### printXMLTag

          public static void printXMLTag(String tag,
                                         PrintWriter oWriter,
                                         boolean tagEnd,
                                         int level)
                                  throws IOException

      Prints a given XML tag to a given `PrintWriter`, maintaining a given indentation level.
      Parameters:
        `tag` - The given XML tag.
        `oWriter` - The given `PrintWriter` object.
        `tagEnd` - If `false` prints the XML tag beginning brackets, otherwise prints the the XML tag ending brackets.
        `level` - The given indentation level (number of marginal '\t' symbols).
      Throws:
        `IOException` - if any I/O exception occurred.

    - #### printXMLTag

          public static void printXMLTag(String tag,
                                         Properties attributes,
                                         PrintWriter oWriter,
                                         boolean tagEnd,
                                         int level)
                                  throws IOException

      Prints a given XML tag with given element attributes to a given `PrintWriter`, maintaining a given indentation level.
      Parameters:
        `tag` - The given XML tag.
        `attributes` - The given XML element attributes.
        `oWriter` - The given `PrintWriter` object.
        `tagEnd` - If `false` prints the XML tag beginning brackets, otherwise prints the the XML tag ending brackets.
        `level` - The given indentation level (number of marginal '\t' symbols).
      Throws:
        `IOException` - if any I/O exception occurred.

Copyright © 2006–2019 The Apache Software Foundation. All rights reserved.