В общем, XML - это просто временный формат файла для отправки данных из одной системы в другую. Или хранить небольшой набор данных, например параметры конфигурации и немного больше данных. Если ваши потребности в данных невелики и вы имеете дело с однопользовательской ситуацией, с XML все будет в порядке.
Если вам приходится иметь дело с многопользовательской средой, вы все равно можете использовать XML, но вам потребуется создать сложный бизнес-уровень вокруг него, отслеживая изменения всех пользователей и в основном добавляя множество многопользовательских функций, которые стандартная СУБД предлагает в качестве стандарта.
Если у вас много данных, есть риск, что ваш XML-файл станет слишком большим. Стандарт XML немного раздут, и если вам придется работать с файлами XML объемом 500 МБ каждый, надеюсь, у вас будет много-много терпения.
Есть, конечно, другие альтернативы. Однажды я создал простой веб-сканер, который будет загружать веб-страницу, извлекать все URL-адреса в ней и затем повторять это действие для каждого URL-адреса. В нем использовалось около 20 потоков, которые все загружали страницы, и количество URL-адресов вырастет в миллионы. Я хотел избежать загрузки одного URL-адреса дважды, поэтому мне пришлось отфильтровывать дубликаты. Использование XML было бы кошмаром, учитывая объем данных. Использование базы данных было излишним, так как все, что мне было нужно, - это одна таблица с одним полем: URL. Поэтому я написал специальный алгоритм хеширования и создал свое собственное решение на основе файловых хеш-таблиц. Это было действительно быстро, проверяя несколько тысяч URL-адресов в секунду, если не нужно было загружать эти страницы ...
В ситуациях, подобных этому, я бы начал с создания простой схемы XML с использованием некоторого инструмента моделирования для XML. (Altova XMLSpy хорош в этом.) Когда я думаю, что мои данные хорошо вписались бы в этот XSD, я начинаю создавать базу данных, где каждый элемент будет преобразован в таблицу. В результате у меня была бы хорошая реляционная база данных плюс некоторое определение формата XML, который можно использовать для импорта / экспорта тех же данных в / из базы данных.