org.apache.uima.pear.util
Class XMLUtil

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

public class XMLUtil
extends Object

The XMLUtil class provides miscellaneous XML utilities.


Field Summary
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
XMLUtil()
          XMLUtil constructor comment.
 
Method Summary
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.


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 © 2010 The Apache Software Foundation. All Rights Reserved.