Все три подхода технически возможны. Однако я бы не стал использовать cron, поскольку он задерживает процесс обновления ваших XML-файлов после изменения содержимого базы данных.
Вы можете легко встроить PHP-код в свои XML-файлы, вам просто нужно убедиться, что файлы интерпретируются как PHP на стороне сервера, либо переименовав их с расширением * .php, либо изменив директивы сервера в .htaccess-файл.
Но я думаю, что лучшая практика здесь - генерировать новые XML-файлы при обновлении содержимого базы данных. Я предполагаю, что XML-файлы просматриваются чаще, чем меняется содержимое базы данных, поэтому такой подход снижает нагрузку на сервер.