Такие проекты имеют привычку быстро увеличиваться в размере, и если они это сделают, ваш XML-файл станет сложным и обременительным для управления.
Я бы не рекомендовал хранить данные в XML-файле или json - это просто текстовые файлы с другим именем, все страдают от одной и той же проблемы - вы не можете контролировать, кто их редактирует.
Использовать какой-то дБ, начиная сначала с маленьких (Access, SQLLite)
Редактировать
Исходя из ваших последних комментариев, откатитесь до точки, когда пользователи использовали приложение в течение двух лет.
- Сколько данных вы ожидаете сохранить к тому времени?
- Потребуется ли пользователям просматривать исторические данные, чтобы увидеть, например, что они сделали в этот раз в прошлом году
И более того, прямо сейчас
- Что делает Учитель А днем в четверг
- Будет ли Учитель Б свободен для участия в мероприятии 15 мая 2010 года?
- Может ли Студент C посетить мероприятие D?
Все эти вопросы / проблемы намного проще / эффективнее решать с помощью SQL. Кроме того, полученная кодовая база будет иметь больше смысла. Обход XML - не самая красивая вещь, которую можно сделать.
Плюс, если ваша пользовательская база уже знакома с Excel, связать Excel с базой данных SQL (и получить пользовательские результаты) намного проще, чем сделать то же самое с XML.