Package org.apache.commons.configuration2

## Class XMLPropertiesConfiguration

- java.lang.Object
- - org.apache.commons.configuration2.event.BaseEventSource
  - - org.apache.commons.configuration2.AbstractConfiguration
    - - org.apache.commons.configuration2.BaseConfiguration
      - - org.apache.commons.configuration2.XMLPropertiesConfiguration

- All Implemented Interfaces:
    `Cloneable`, `Configuration`, `EventSource`, `FileBasedConfiguration`, `ImmutableConfiguration`, `FileBased`, `FileLocatorAware`, `SynchronizerSupport`

      public class XMLPropertiesConfiguration
      extends BaseConfiguration
      implements FileBasedConfiguration, FileLocatorAware

  This configuration implements the XML properties format introduced in Java 5.0, see http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html. An XML properties file looks like this:

       <?xml version="1.0"?>
       <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
       <properties>
         <comment>Description of the property list</comment>
         <entry key="key1">value1</entry>
         <entry key="key2">value2</entry>
         <entry key="key3">value3</entry>
       </properties>

  The Java 5.0 runtime is not required to use this class. The default encoding for this configuration format is UTF-8. Note that unlike `PropertiesConfiguration`, `XMLPropertiesConfiguration` does not support includes. Note:Configuration objects of this type can be read concurrently by multiple threads. However if one of these threads modifies the object, synchronization has to be performed manually.
  Since:
    1.1

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `DEFAULT_ENCODING` | The default encoding (UTF-8 as specified by http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html)

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `XMLPropertiesConfiguration()` | Creates an empty XMLPropertyConfiguration object which can be used to synthesize a new Properties file by adding values and then saving().
    `XMLPropertiesConfiguration​(Element element)` | Creates and loads the xml properties from the specified DOM node.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `String` | `getHeader()` | Gets the header comment of this configuration.
    `void` | `initFileLocator​(FileLocator locator)` | Initializes this object with a `FileLocator`.
    `void` | `load​(Element element)` | Parses a DOM element containing the properties.
    `void` | `read​(Reader in)` | Reads the content of this object from the given reader.
    `void` | `save​(Document document, Node parent)` | Writes the configuration as child to the given DOM node
    `void` | `setHeader​(String header)` | Sets the header comment of this configuration.
    `void` | `write​(Writer out)` | Writes the content of this object to the given writer.

    - ### Methods inherited from class org.apache.commons.configuration2.BaseConfiguration

      `addPropertyDirect, clearInternal, clearPropertyDirect, clone, containsKeyInternal, getKeysInternal, getPropertyInternal, isEmptyInternal, sizeInternal`

    - ### Methods inherited from class org.apache.commons.configuration2.AbstractConfiguration

      `addErrorLogListener, addProperty, addPropertyInternal, append, beginRead, beginWrite, clear, clearProperty, cloneInterpolator, containsKey, copy, endRead, endWrite, get, get, getArray, getArray, getBigDecimal, getBigDecimal, getBigInteger, getBigInteger, getBoolean, getBoolean, getBoolean, getByte, getByte, getByte, getCollection, getCollection, getConfigurationDecoder, getConversionHandler, getDouble, getDouble, getDouble, getDuration, getDuration, getEncodedString, getEncodedString, getFloat, getFloat, getFloat, getInt, getInt, getInteger, getInterpolator, getKeys, getKeys, getKeysInternal, getList, getList, getList, getList, getListDelimiterHandler, getLogger, getLong, getLong, getLong, getProperties, getProperties, getProperty, getShort, getShort, getShort, getString, getString, getStringArray, getSynchronizer, immutableSubset, initLogger, installInterpolator, interpolate, interpolate, interpolatedConfiguration, isEmpty, isScalarValue, isThrowExceptionOnMissing, lock, setConfigurationDecoder, setConversionHandler, setDefaultLookups, setInterpolator, setListDelimiterHandler, setLogger, setParentInterpolator, setPrefixLookups, setProperty, setPropertyInternal, setSynchronizer, setThrowExceptionOnMissing, size, subset, unlock`

    - ### Methods inherited from class org.apache.commons.configuration2.event.BaseEventSource

      `addEventListener, clearErrorListeners, clearEventListeners, copyEventListeners, createErrorEvent, createEvent, fireError, fireEvent, getEventListenerRegistrations, getEventListeners, isDetailEvents, removeEventListener, setDetailEvents`

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

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

    - ### Methods inherited from interface org.apache.commons.configuration2.Configuration

      `addProperty, clear, clearProperty, getInterpolator, installInterpolator, setInterpolator, setProperty, subset`

    - ### Methods inherited from interface org.apache.commons.configuration2.ImmutableConfiguration

      `containsKey, get, get, getArray, getArray, getBigDecimal, getBigDecimal, getBigInteger, getBigInteger, getBoolean, getBoolean, getBoolean, getByte, getByte, getByte, getCollection, getCollection, getDouble, getDouble, getDouble, getDuration, getDuration, getEncodedString, getEncodedString, getEnum, getEnum, getFloat, getFloat, getFloat, getInt, getInt, getInteger, getKeys, getKeys, getList, getList, getList, getList, getLong, getLong, getLong, getProperties, getProperty, getShort, getShort, getShort, getString, getString, getStringArray, immutableSubset, isEmpty, size`

    - ### Methods inherited from interface org.apache.commons.configuration2.sync.SynchronizerSupport

      `getSynchronizer, lock, setSynchronizer, unlock`

- - ### Field Detail

    - #### DEFAULT_ENCODING

          public static final String DEFAULT_ENCODING

      The default encoding (UTF-8 as specified by http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html)
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### XMLPropertiesConfiguration

          public XMLPropertiesConfiguration()

      Creates an empty XMLPropertyConfiguration object which can be used to synthesize a new Properties file by adding values and then saving(). An object constructed by this C'tor can not be tickled into loading included files because it cannot supply a base for relative includes.

    - #### XMLPropertiesConfiguration

          public XMLPropertiesConfiguration​(Element element)
                                     throws ConfigurationException

      Creates and loads the xml properties from the specified DOM node.
      Parameters:
        `element` - The DOM element
      Throws:
        `ConfigurationException` - Error while loading the properties file
      Since:
        2.0

  - ### Method Detail

    - #### getHeader

          public String getHeader()

      Gets the header comment of this configuration.
      Returns:
        the header comment

    - #### setHeader

          public void setHeader​(String header)

      Sets the header comment of this configuration.
      Parameters:
        `header` - the header comment

    - #### read

          public void read​(Reader in)
                    throws ConfigurationException

      Description copied from interface: `FileBased`
      Reads the content of this object from the given reader. Client code should not call this method directly, but use a `FileHandler` for reading data.
      Specified by:
        `read` in interface `FileBased`
      Parameters:
        `in` - the reader
      Throws:
        `ConfigurationException` - if a non-I/O related problem occurs, e.g. the data read does not have the expected format

    - #### load

          public void load​(Element element)
                    throws ConfigurationException

      Parses a DOM element containing the properties. The DOM element has to follow the XML properties format introduced in Java 5.0, see http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html
      Parameters:
        `element` - The DOM element
      Throws:
        `ConfigurationException` - Error while interpreting the DOM
      Since:
        2.0

    - #### write

          public void write​(Writer out)
                     throws ConfigurationException

      Description copied from interface: `FileBased`
      Writes the content of this object to the given writer. Client code should not call this method directly, but use a `FileHandler` for writing data.
      Specified by:
        `write` in interface `FileBased`
      Parameters:
        `out` - the writer
      Throws:
        `ConfigurationException` - if a non-I/O related problem occurs, e.g. the data read does not have the expected format

    - #### save

          public void save​(Document document,
                           Node parent)

      Writes the configuration as child to the given DOM node
      Parameters:
        `document` - The DOM document to add the configuration to
        `parent` - The DOM parent node
      Since:
        2.0

    - #### initFileLocator

          public void initFileLocator​(FileLocator locator)

      Initializes this object with a `FileLocator`. The locator is accessed during load and save operations.
      Specified by:
        `initFileLocator` in interface `FileLocatorAware`
      Parameters:
        `locator` - the associated `FileLocator`