Yes JSitemap can work fine with sh404sef.
The generation and routing of links is not managed directly by JSitemap, but is demanded to the SEF extension installed and enabled on your site, either native Joomla SEF or a third party solution such as sh404sef.
If you experiment issues about XML documents such as sitemaps being rendered as HTML, ensure that the setting '301 redirects from non-SEF to SEF' in the configuration of sh404sef is not enabled. If you still experiment issues after changing this setting you can also change the sh404sef configuration by component and choose 'Leave as non-sef' or 'Use Joomla router' for JSitemap.
Additionally it's important to ensure that the following parameter is disabled and set to 'No' as by default in order to always use native raw links for each sitemap:
If you use sh404sef you could receive a 'parse error' when clicking on Analyzer, Metainfo and SEO Spider see https://storejextensions.org/faq/why-i-receive-a-parse-error-when-clicking-on-analyzer-metainfo-and-seo-spider.html. If this is the case, ensure that in the list SEF URLs list of sh404sef there is not a SEF URL for 'index.php', indeed if sh404sef has such a URL all links having 'index.php' will be redirected to the website home page, thus breaking all Joomla! raw URLs and preventing all components using raw URLs to work.
Notice that if you activated 'Leave as non-sef' and you have a menu item poiting to the HTML sitemap on the site, you need to create an SEF alias in sh404sef for this link, otherwise the link for this menu item to the HTML sitemap will stay in the raw format.
This ensure that common issues due to SEF routing will be avoided, these issues could prevent some search engines such as Bing that doesn't follow 301 HTTP header to fetch your XML sitemap, and Google could raise a notice about the XML sitemap not valid but appearing as an HTML document.
As a plus that could be useful in certain cases, in the download area it's available a data source of type 'plugin' to integrate sh404sef URLs directly. This plugin fetches all URLs from the sh404sef database and use them to build the sitemap.
Can JSitemap work with sh404sef?