Сериализация XML используется для создания определенной структуры XML и позволяет изменить способ сериализации объекта - как выглядит XMl (если вы используете атрибуты или узлы и т. Д.).
Двоичная сериализация "видит" закрытые члены, потому что она просто берет в памяти структуру объекта и записывает ее на диск. Очень быстрый, но не совместимый, особенно с немного другими объектными структурами (например, новая версия вашего приложения пытается десериализовать более старый двоичный файл).
SoapFormatter и DataContractSerializer используются для связи между компонентами .NET, обычно многоуровневым приложением - с DataContractSerializer, используемым в WCF, и SoapFormatter, используемым для более старых утилит SOAP.