I’d assumed you’d output XML directly on the page request, but sending it to a separate file works too.
If WordPress’ settings aren’t getting you the output you need on the archive page, you could do a call to wp_query before your XML output.
https://codex.wordpress.org/Class_Reference/WP_Query
Specifically, I think you want to set ‘posts_per_page’ to -1 to override the pagination.