Я успешно использовал оба случая, и то, что я делаю, зависит от системы.
Сохранение необработанного XML:
Я склонен сохранять Raw Xml, когда я имею дело с неструктурированными данными или когда мы имеем дело с системой обмена сообщениями, и мы хотим отслеживать сообщения. Например, в приложении, над которым я работал, собирали сообщения от развернутых клиентов Windows, мы помещали сообщения в реляционную структуру, а затем переносили их на склад. Когда я взял на себя управление проектом, мы начали хранить исходный xml, потому что он позволял нам воспроизводимость и возможность точно видеть, что поступает в систему.
Реляционные данные
Если мне понадобится выполнить какую-либо агрегацию данных в отчетах, я бы разбил данные и сохранил их в обычные таблицы. Я знаю, что вы можете запросить данные XML в базе данных, но я стараюсь избегать этого. Я все еще могу сохранить исходные необработанные сообщения для воспроизведения и устранения неполадок.
Сохранение бинарного объекта
Последнее, что я сделал, это сохранил весь сериализованный двоичный объект. Я нахожу это удобным, когда граф объектов довольно сложен, и отношения между объектами важны. У этого есть огромный недостаток, который является версионированием; тем не менее, я справился с этим достаточно успешно, даже с изменениями пространства имен, изменениями иерархии объектов и т. д. Если вам нужен доступ к данным в SQL, это не тот путь.