Yes you will have to list all, but usually the xml Sitemaps are just to facilitate the search engine, so you would not need to list all necessarily, could list the main articles or main pages (which lead to different contents)but the most important thing is to list pages that have no direct link. However what you will list may be something quite relative to each case.
To summarize the Sitemaps serve to facilitate indexing and only this, it does not mean that it will be the only path you can use to index.
I need to list manually
Of course not (if this is your doubt), you seem to use PHP, in case you can use PHP and the database where the urls are to generate your xml, maybe weekly.
However there are also scripts ready for this:
Note that they are a little outdated
If using wordpress:
If you are using Asp.net you can use https://www.nuget.org/packages/EasySiteMap/
– Ricardo
@Ricardo Excelente :) +1
– Guilherme Nascimento