Class DefaultConfigurationBuilder

java.lang.Object
org.apache.avalon.framework.configuration.DefaultConfigurationBuilder

public class DefaultConfigurationBuilder extends Object
A DefaultConfigurationBuilder builds Configurations from XML, via a SAX2 compliant parser.

XML namespace support is optional, and disabled by default to preserve backwards-compatibility. To enable it, pass the DefaultConfigurationBuilder(boolean) constructor the flag true, or pass a namespace-enabled XMLReader to the DefaultConfigurationBuilder(XMLReader) constructor.

The mapping from XML namespaces to Configuration namespaces is pretty straightforward, with one caveat: attribute namespaces are (deliberately) not supported. Enabling namespace processing has the following effects:

  • Attributes starting with xmlns: are interpreted as declaring a prefix:namespaceURI mapping, and won't result in the creation of xmlns-prefixed attributes in the Configuration.
  • Prefixed XML elements, like <doc:title xmlns:doc="http://foo.com">, will result in a Configuration with getName().equals("title") and getNamespace().equals("http://foo.com").

Whitespace handling. Since mixed content is not allowed in the configurations, whitespace is completely discarded in non-leaf nodes. For the leaf nodes the default behavior is to trim the space surrounding the value. This can be changed by specifying xml:space attribute with value of preserve in that case the whitespace is left intact.

Version:
$Id: DefaultConfigurationBuilder.java 30977 2004-07-30 03:57:54 -0500 (Fri, 30 Jul 2004) niclas $
Author:
Avalon Development Team
  • Field Details

  • Constructor Details

    • DefaultConfigurationBuilder

      public DefaultConfigurationBuilder()
      Create a Configuration Builder with a default XMLReader that ignores namespaces. In order to enable namespaces, use either the constructor that has a boolean or that allows you to pass in your own namespace-enabled XMLReader.
    • DefaultConfigurationBuilder

      public DefaultConfigurationBuilder(boolean enableNamespaces)
      Create a Configuration Builder, specifying a flag that determines namespace support.
      Parameters:
      enableNamespaces - If true, a namespace-aware SAXParser is used. If false, the default JAXP SAXParser (without namespace support) is used.
      Since:
      4.1
    • DefaultConfigurationBuilder

      public DefaultConfigurationBuilder(XMLReader parser)
      Create a Configuration Builder with your own XMLReader.
      Parameters:
      parser - an XMLReader
  • Method Details

    • setParser

      private void setParser(XMLReader parser)
      Internally sets up the XMLReader
    • getHandler

      protected SAXConfigurationHandler getHandler()
      Get a SAXConfigurationHandler for your configuration reading.
      Returns:
      a SAXConfigurationHandler
    • buildFromFile

      public org.apache.avalon.framework.configuration.Configuration buildFromFile(String filename) throws SAXException, IOException, org.apache.avalon.framework.configuration.ConfigurationException
      Build a configuration object from a file using a filename.
      Parameters:
      filename - name of the file
      Returns:
      a Configuration object
      Throws:
      SAXException - if a parsing error occurs
      IOException - if an I/O error occurs
      org.apache.avalon.framework.configuration.ConfigurationException - if an error occurs
    • buildFromFile

      public org.apache.avalon.framework.configuration.Configuration buildFromFile(File file) throws SAXException, IOException, org.apache.avalon.framework.configuration.ConfigurationException
      Build a configuration object from a file using a File object.
      Parameters:
      file - a File object
      Returns:
      a Configuration object
      Throws:
      SAXException - if a parsing error occurs
      IOException - if an I/O error occurs
      org.apache.avalon.framework.configuration.ConfigurationException - if an error occurs
    • build

      public org.apache.avalon.framework.configuration.Configuration build(InputStream inputStream) throws SAXException, IOException, org.apache.avalon.framework.configuration.ConfigurationException
      Build a configuration object using an InputStream.
      Parameters:
      inputStream - an InputStream value
      Returns:
      a Configuration object
      Throws:
      SAXException - if a parsing error occurs
      IOException - if an I/O error occurs
      org.apache.avalon.framework.configuration.ConfigurationException - if an error occurs
    • build

      public org.apache.avalon.framework.configuration.Configuration build(InputStream inputStream, String systemId) throws SAXException, IOException, org.apache.avalon.framework.configuration.ConfigurationException
      Build a configuration object using an InputStream; supplying a systemId to make messages about all kinds of errors more meaningfull.
      Parameters:
      inputStream - an InputStream value
      systemId - the systemId to set on the intermediate sax inputSource
      Returns:
      a Configuration object
      Throws:
      SAXException - if a parsing error occurs
      IOException - if an I/O error occurs
      org.apache.avalon.framework.configuration.ConfigurationException - if an error occurs
    • build

      public org.apache.avalon.framework.configuration.Configuration build(String uri) throws SAXException, IOException, org.apache.avalon.framework.configuration.ConfigurationException
      Build a configuration object using an URI
      Parameters:
      uri - a String value
      Returns:
      a Configuration object
      Throws:
      SAXException - if a parsing error occurs
      IOException - if an I/O error occurs
      org.apache.avalon.framework.configuration.ConfigurationException - if an error occurs
    • build

      public org.apache.avalon.framework.configuration.Configuration build(InputSource input) throws SAXException, IOException, org.apache.avalon.framework.configuration.ConfigurationException
      Build a configuration object using an XML InputSource object
      Parameters:
      input - an InputSource value
      Returns:
      a Configuration object
      Throws:
      SAXException - if a parsing error occurs
      IOException - if an I/O error occurs
      org.apache.avalon.framework.configuration.ConfigurationException - if an error occurs
    • setEntityResolver

      public void setEntityResolver(EntityResolver resolver)
      Sets the EntityResolver to be used by parser. Useful when dealing with xml files that reference external entities.
      Parameters:
      resolver - implementation of EntityResolver