Я отвечу на часть «преимущества» для XML, хотя их не так много.
Если конфигурация полностью отделена от кода, удаляются все артефакты инфраструктуры из источника, что может быть полезным.
Проще (не смешно, но достаточно примечательно) создавать цепочки инструментов, которые влияют на файлы конфигурации: загрузка / замена свойств, редакторы конфигурации GUI с поддержкой конфигурации, генерация документации и т. Д.
Централизованная конфигурация;вместо конфига, разбросанного по базе кода, он находится в группе файлов (или в одном файле).Это не только XML-версия, это зависит от того, как все настроено.
Я думаю, что некоторые типы конфигурации больше подходят для внешней конфигурации, чем другие.Я выбираю на основе того, что кажется подходящим, учитывая требования, что позволяет инфраструктура и как инфраструктура обрабатывает аспекты конфигурации.