+4  A: 

You are correct in guessing that the built-in ASP.NET XmlSiteMapProvider will not work with .sitemap files stored in a SharePoint content database. I would suggest subclassing XmlSiteMapProvider and override how BuildSiteMap handles the given siteMapFile path to get the map data from SharePoint instead. To get you started, the source for the built-in provider is available here: ProviderToolkitSamples.msi.

dahlbyk