private static void Recurse(Item item, SitemapGetItemsArgs args)
        {
            var sitemapGetItemArgs = new SitemapGetItemArgs(item, args.SitemapSiteArgs);

            CorePipeline.Run("sitemap.ProcessItem", sitemapGetItemArgs);

            args.SitemapItems.AddRange(sitemapGetItemArgs.SitemapItems);

            foreach (var child in item.GetChildren().Select(i => i))
            {
                Recurse(child, args);
            }
        }
        public void Process(SitemapGetItemArgs args)
        {
            Assert.ArgumentNotNull(args, nameof(args));

            foreach (var sitemapLanguage in args.SitemapLanguages)
            {
                var itemLanguageVersion = args.Item.Versions.GetLatestVersion(sitemapLanguage.Language);

                var sitemapValidateVersionItemArgs = new SitemapValidateVersionItemArgs(itemLanguageVersion);

                CorePipeline.Run("sitemap.ValidateItemVersion", sitemapValidateVersionItemArgs);

                if (sitemapValidateVersionItemArgs.Valid)
                {
                    args.SitemapItems.Add(
                        new SitemapItem(itemLanguageVersion, args.SitemapSiteArgs.SiteContext, sitemapLanguage)
                        );
                }
            }
        }