Poco::Util

class XMLConfiguration

Library: Util
Package: Configuration
Header: Poco/Util/XMLConfiguration.h

Description

This configuration class extracts configuration properties from an XML document. An XPath-like syntax for property names is supported to allow full access to the XML document. XML namespaces are not supported. The name of the root element of an XML document is not significant. Periods in tag names are not supported.

Given the following XML document as an example:

<config>
    <prop1>value1</prop1>
    <prop2>value2</prop2>
    <prop3>
       <prop4 attr="value3"/>
       <prop4 attr="value4"/>
    </prop3>
    <prop5>value5</prop5>
    <prop5>value6</prop5>
</config>

The following property names would be valid and would yield the shown values:

prop1                 -> value1
prop2                 -> value2
prop3.prop4           -> (empty string)
prop3.prop4[@attr]    -> value3
prop3.prop4[1][@attr] -> value4
prop5[0]              -> value5
prop5[1]              -> value6

Enumerating attributes is not supported. Calling keys("prop3.prop4") will return an empty range.

Setting properties is not supported. An attempt to set a property results in a NotImplementedException being thrown.

Inheritance

Direct Base Classes: AbstractConfiguration

All Base Classes: Poco::RefCountedObject, AbstractConfiguration

Member Summary

Member Functions: enumerate, getRaw, load, setRaw

Inherited Functions: createView, duplicate, enumerate, expand, getBool, getDouble, getInt, getRaw, getRawString, getString, hasOption, hasProperty, keys, parseBool, parseInt, referenceCount, release, setBool, setDouble, setInt, setRaw, setString

Constructors

XMLConfiguration

XMLConfiguration();

Creates an empty XMLConfiguration.

XMLConfiguration

XMLConfiguration(
    Poco::XML::InputSource * pInputSource
);

Creates an XMLConfiguration and loads the XML document from the given InputSource.

XMLConfiguration

XMLConfiguration(
    std::istream & istr
);

Creates an XMLConfiguration and loads the XML document from the given stream.

XMLConfiguration

XMLConfiguration(
    const std::string & path
);

Creates an XMLConfiguration and loads the XML document from the given path.

XMLConfiguration

XMLConfiguration(
    const Poco::XML::Document * pDocument
);

Creates the XMLConfiguration using the given XML document.

XMLConfiguration

XMLConfiguration(
    const Poco::XML::Node * pNode
);

Creates the XMLConfiguration using the given XML node.

Destructor

~XMLConfiguration protected virtual

~XMLConfiguration();

Member Functions

load

void load(
    Poco::XML::InputSource * pInputSource
);

Loads the XML document containing the configuration data from the given InputSource.

load

void load(
    std::istream & istr
);

Loads the XML document containing the configuration data from the given stream.

load

void load(
    const std::string & path
);

Loads the XML document containing the configuration data from the given file.

load

void load(
    const Poco::XML::Document * pDocument
);

Loads the XML document containing the configuration data from the given XML document.

load

void load(
    const Poco::XML::Node * pNode
);

Loads the XML document containing the configuration data from the given XML node.

enumerate protected virtual

void enumerate(
    const std::string & key,
    Keys & range
) const;

See also: Poco::Util::AbstractConfiguration::enumerate()

getRaw protected virtual

bool getRaw(
    const std::string & key,
    std::string & value
) const;

See also: Poco::Util::AbstractConfiguration::getRaw()

setRaw protected virtual

void setRaw(
    const std::string & key,
    const std::string & value
);

See also: Poco::Util::AbstractConfiguration::setRaw()