As bad as XML is, I would be the first to admit it is possible to create a worse language for representing nested property lists. In fact, I encountered one in actual, operational use in my travels as a migrant information worker and NASA contractor.
The name of this atrocity is Object Definition Language, and it is a standard format for metadata that NASA attaches to many of its major remote sensing imagery products, as well as data from planetary probe missions.
You should really look at the PDF linked above to get the true flavor of this stuff, but I can give you a quick taste right here. S-expressions, XML, and ODL all are syntaxes for representing nested property lists.
S-expressions are what you get if you ask John McCarthy.
XML is what you get when you ask people who know and love HTML/SGML
ODL is what you get when you ask people who know and love FORTRAN.
I'm serious! The simple S-expression
would be this in XML:
and this in ODL:
object = foo
value = "bar"
end_object = foo
I got to know about this stuff as part of several tool-writing exercises where we were trying to make complex, deeply nested ODL intelligible to its scientist users. The "solution" we came up with involved parsing the ODL, translating it into XML, then hosing the XML through different XSLT translators to generate pretty HTML.
As a result of those projects, I now know more about ODL, XSLT, and DHTML than I really want to.