Package 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
  Description
  `static final String`
  `CDATA_SECTION_BEG`
  `static final String`
  `CDATA_SECTION_END`
  `protected static final boolean`
  `DEFAULT_DYNAMIC_VALIDATION`
  `protected static final boolean`
  `DEFAULT_NAMESPACE_PREFIXES`
  `protected static final boolean`
  `DEFAULT_NAMESPACES`
  `protected static final boolean`
  `DEFAULT_SCHEMA_FULL_CHECKING`
  `protected static final boolean`
  `DEFAULT_SCHEMA_VALIDATION`
  `protected static final boolean`
  `DEFAULT_VALIDATION`
  `static final String`
  `DYNAMIC_VALIDATION_FEATURE_ID`
  `protected static final String`
  `FIRST_XML_CHARS`
  `static final String`
  `NAMESPACE_PREFIXES_FEATURE_ID`
  `static final String`
  `NAMESPACES_FEATURE_ID`
  XML parser feature ids
  `static final String`
  `SCHEMA_FULL_CHECKING_FEATURE_ID`
  `static final String`
  `SCHEMA_VALIDATION_FEATURE_ID`
  `static final String`
  `VALIDATION_FEATURE_ID`
  `static final String`
  `XML_ENCODING_TAG`
  `static final String`
  `XML_HEADER_BEG`
  `static final String`
  `XML_HEADER_END`

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  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, 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`
  `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`
  `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 Details

  - ### 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 Details

  - ### XMLUtil

    public XMLUtil()
    XMLUtil constructor comment.

- ## Method Details

  - ### 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.