1. Having to escape values.
<foo>
You have to make sure that all <, >, & and " characters
are escaped, otherwise your config file will break. Reading content
with escaped characters is NOT easy or simple, or obvious.
Alternatively, one must use <![CDATA[Even less obvious "CDATA"
constructs, which allow <>&, but are questionably better]]>
</foo>
Similar problems occur with other formats. Try a multibyte character one
byte of which is '"' or '\n' in .ini format.
XML also makes the format extensible and means you already have tools to
autogenerate it, to turn it into up2date lines, yum lines, html, or edit it.
Alan