Why does ID3v2 not make use of XML?
The first reason is that many types of information in ID3v2 are by nature binary data, a data type that does not mix easily with XML. The second reason is parsing speed. The structure of ID3v2 makes it possible to skip over portions of the tag that are not interesting for an application. An XML-based structure would make that substantially more difficult. The third reson is that if ID3v2 should be remade in XML it would be incompatible with all existing versions of ID3v2. We think that we have had enough of incompatible changes. Finally, if one wishes to include XML-based information within in ID3v2 tag, it is perfectly possible. ID3v2 puts no limitations on the data types that can be embedded within its structure, so a frame that contains XML information is entirely feasible.