Class XMLUtil

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

public class XMLUtil extends Object
The XMLUtil class provides miscellaneous XML utilities.
  • Field Details

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