well, there are lots of examples of where XML is superior to a database. simply put: databases tend to require a structure defined in advance, and it's difficult to change that structure.
i.e. if you want to add another field to a RDBMS (relation database management system) it can be quite a pain in the arse.... as opposed to just "inventing" a new tag in XML.
***
but what I'm personally working on (hotel reservations) involves multiple "databases" of information that changes in real time.
example: there are 5 main hotel consolidators; each has their own database system, each has their own notation. [some might have different columns/fields with names like 'PETS', 'CABLE TV', etc. and have values of 'Y' or 'N'.... where some other consolidators might have one large field called 'AMENITIES' and have values like '104,225,227,229,303,404', etc.]
now imagine trying to communicate with each one of those databases (even if you COULD get the entire database mirrored locally to you in real-time).
XML lets the data define itself. Then you can parse the XML data (with standard IF-THEN type of statements) via PHP, PERL, ASP, whatever. Dynamic loading of different CSS, Javascripts, or XSL or HTML in order to display your data (even FLASH if you wanna get jiggy with it).
What that means is that you'll be in real-time communication (your server to the XML source server... which you can think of as an XML - database). Your server will hand the data to the client -- who won't have any idea whatsoever that your data isn't generated by you.
Hope that helps.
http://www.chopsticks.com
Chopsticks Travel Network - Discount Hotels / Hotel Discounts