Author: oheger Date: Thu Nov 11 21:00:56 2010 New Revision: 1034120 URL: http://svn.apache.org/viewvc?rev=1034120&view=rev Log: Updated user guide with information about list delimiter parsing in XMLConfiguration.
Modified: commons/proper/configuration/trunk/src/site/xdoc/userguide/howto_xml.xml commons/proper/configuration/trunk/src/site/xdoc/userguide/user_guide.xml Modified: commons/proper/configuration/trunk/src/site/xdoc/userguide/howto_xml.xml URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/site/xdoc/userguide/howto_xml.xml?rev=1034120&r1=1034119&r2=1034120&view=diff ============================================================================== --- commons/proper/configuration/trunk/src/site/xdoc/userguide/howto_xml.xml (original) +++ commons/proper/configuration/trunk/src/site/xdoc/userguide/howto_xml.xml Thu Nov 11 21:00:56 2010 @@ -563,7 +563,11 @@ config.addProperty("tables.table.fields. <code>HierarchicalConfiguration</code>. </p> </subsection> - <subsection name="Escaping dot characters in property names"> + <subsection name="Escaping special characters"> + <p> + Some characters in property keys or values require a special + treatment. + </p> <p> Per default the dot character is used as delimiter by most configuration classes (we will learn how to change this for @@ -615,6 +619,55 @@ String complex = config.getString("test. you should avoid dots in the tag names of your XML configuration files or other configuration sources. </p> + <p> + Another source of problems is related to list delimiter characters + in the values of properties. Like other configuration classes + <code>XMLConfiguration</code> implements + <a href="howto_basicfeatures.html#List_handling">list handling</a>. + This means that the values of XML elements and attributes are + checked whether they contain a list delimiter character. If this + is the case, the value is split, and a list property is created. + Per default this feature is enabled. Have a look at the + following example: + </p> + <source><![CDATA[ +<?xml version="1.0" encoding="ISO-8859-1" ?> + +<configuration> + <pi>3,1415</pi> +</configuration> +]]></source> + <p> + Here we use the comma as delimiter for fraction digits (as is + standard for some languages). However, the configuration will + interpret the comma as list delimiter character and assign the + property <em>pi</em> the two values 3 and 1415. This was not + desired. + </p> + <p> + XML has a natural way of defining list properties by simply + repeating elements. So defining multiple values of a property in + a single element or attribute is a rather untypical use case. + Unfortunately, early versions of Commons Configuration had list + delimiter splitting enabled per default. Later it became obvious + that this feature can cause serious problems related to the + interpretation of property values and the escaping of delimiter + characters. For reasons of backwards compatibility we have to + stick to this approach in the 1.x series though. + </p> + <p> + In the next major release the handling of lists will propably be + reworked. Therefore it is recommended not to use this feature. + You are save if you disable it immediately after the creation of + an <code>XMLConfiguration</code> object (and before a file is + loaded). This can be achieved as follows: + </p> + <source><![CDATA[ +XMLConfiguration config = new XMLConfiguration(); +config.setDelimiterParsingDisabled(true); +config.setAttributeSplittingDisabled(true); +config.load("config.xml"); +]]></source> </subsection> </section> Modified: commons/proper/configuration/trunk/src/site/xdoc/userguide/user_guide.xml URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/site/xdoc/userguide/user_guide.xml?rev=1034120&r1=1034119&r2=1034120&view=diff ============================================================================== --- commons/proper/configuration/trunk/src/site/xdoc/userguide/user_guide.xml (original) +++ commons/proper/configuration/trunk/src/site/xdoc/userguide/user_guide.xml Thu Nov 11 21:00:56 2010 @@ -83,7 +83,7 @@ <li><a href="howto_xml.html#Complex_hierarchical_structures">Complex hierarchical structures</a></li> <li><a href="howto_xml.html#Accessing_structured_properties">Accessing structured properties</a></li> <li><a href="howto_xml.html#Adding_new_properties">Adding new properties</a></li> - <li><a href="howto_xml.html#Escaping_dot_characters_in_property_names">Escaping dot characters in property names</a></li> + <li><a href="howto_xml.html#Escaping_special_characters">Escaping dot characters in property names</a></li> <li><a href="howto_xml.html#Expression_engines">Expression engines</a></li> <ul> <li><a href="howto_xml.html#The_default_expression_engine">The default expression engine</a></li>