The problem with XML is that people use it as a datastructure language, while it is just a markup language. The use of XML as datastructure language is a bit artificial - you can structure things by markup but it's not the most efficient way (and you are confined to trees). Why not choose a subset of a programming language - they were designed to be efficient in describing datastructures in a human readible format.