I disagree with Stephen. Databases should be used especially when sharing data among applications is a concern.
Databases are for sharing data. That's what they were invented for, and that's what they are good at. Even in situations where concurrent update is not at issue, databases are more formal than XML files. And XML's informality is tempting at the outset, but ultimately leads to unusability.
Although it can be difficult to solve the impedance mismatch between some applications and the relational model of data and/or the SQL interface, it's still the case that you gain more in flexibility and stability than you do with XML.
I would reserve XML for situations where formal data analysis is somehow inappropriate, or formal database design is beyond the reach of the development team.