Efficiency in terms of file size is way way way down my list of priorities - here are a few points I like about XML
1. Human readable and editable - makes it possible to create data sets by hand if necessary, easy to
test error processing by editing the XML, so so so much easier to explain to another programmer what is going on, you can even annotate with comments.
2. With good design you can add new data types to an existing XML document without having to modify existing programs that use the XML
3. XML can represent quite complex data structures
4. Note that there are efforts to make XML compact - see
Fast Infoset
Alternatives:
1. Properties file ( name = value, one per line) - fast and compact but only for simple data structures
2. JSON - gaining in popularity, human readable and editable
Bill