Я думаю, что вы были не так ясны, как могли бы быть. Насколько большими будут эти файлы? Имеет ли смысл, чтобы уровень данных всегда сохранял XmlDocument в памяти и создавал дамп на жесткий диск при каждом обновлении?
Как часто будут происходить обновления, если вообще будут происходить? Как вы собираетесь справиться с параллелизмом? Будут ли обновления транзакционными для нескольких XML-файлов? Как вы собираетесь обрабатывать согласованность и целостность транзакций? Если обновлений нет, ваша жизнь будет намного проще.
Методы не должны быть статичными. Главное, что нужно учитывать, это то, что в будущем вы можете изменить поставщика DAL с XML на DB. С этой целью конкретная реализация интерфейсов DAL должна общаться с абстрактным поставщиком данных. Для вас это изначально был бы провайдер Xml, но вы должны быть в состоянии написать провайдера Sql, который реализует тот же интерфейс и легко переключать реализацию, используя внедрение зависимостей, файлы конфигурации или что-то еще.
Если у вас есть экземпляры реализаций DAL, вы можете просто использовать эти объекты для связи со слоем данных.
Надеюсь, это хорошее начало для вас.