Nice question.
The main reason I didn't use XML at first was because I didn't have a parsing lib. It was easier in terms of programming when I started the project to have a simple plain text file.
Another big issue with the xml format is that it is annoyingly verbose. It makes it not efficient to parse for the CPU, and speed is a factor on the PSP. It is not even easier to read for a human being.
I have nothing against xml specifically, but unless I am given good examples of what it could achieve better than a simple .ini file for magic cards, I wouldn't see any good reason to switch to it.
Firemox uses XML to describe its cards, and it is awfully verbose and unnecessarily complex.
In some cases, the cards in Firemox reach a complexity where it clearly shows that they should've used a scripting language such as Python or Lua, but not XML.
My point being: if we want to soft-code complex cards, this should be done with a scripting language, and not with XML. And for simple cards, XML is over the top:
<?xml version="1.0" encoding="ISO-8859-1"?>
<card xmlns="http://sourceforge.net/projects/firemox"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://sourceforge.net/projects/firemox ../../validator.xsd"
name="Angel of Light">
<rules-author-comment>riclas</rules-author-comment>
<init>
<registers>
<register index="white" value="1"/>
<register index="colorless" value="4"/>
<register index="power" value="3"/>
<register index="toughness" value="3"/>
</registers>
<colors>white</colors>
<idcards>creature</idcards>
<properties>vigilance flying angel</properties>
</init>
<abilities>
<ability ref="cast-spell"/>
</abilities>
</card>
here's the equivalent in Wagic:
[card]
name=Angel of Light
mana={4}{W}
power=3
toughness=3
type=Creature
subtype=angel
abilities=vigilance,flying
[/card]
Sure, less flexibility, but also less noise.
I've been thinking a lot about using Lua to code some complex cards... I haven't given up on the idea, but it is definitely not a priority.