Development ASP.Net Tutorial

Under the covers, the SiteMapDataSource control represents the contents of the SiteMap  class. 
File: Global.asax
<%@ Application Language="C#" %>
<%@ Import Namespace="System.IO" %>

    void Application_Start(Object sender, EventArgs e)
    {
         SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(SiteMap_SiteMapResolve);
    }
    SiteMapNode SiteMap_SiteMapResolve(object sender, SiteMapResolveEventArgs e)
    {
        if (SiteMap.CurrentNode == null)
        {
            string url = e.Context.Request.Path;
            string title = Path.GetFileNameWithoutExtension(url);
            SiteMapNode newNode = new SiteMapNode(e.Provider, url, url, title);
            newNode.ParentNode = SiteMap.RootNode;
            return newNode;
        }
        return SiteMap.CurrentNode;
    }

File: Web.sitemap

  url="Default.aspx"
  title="Home"
  description="The Home Page">
      url="Default1.aspx"
    title="Our Products"
    description="Products that we offer">
          url="FirstProduct.aspx"
      title="First Product"
      description="The description of the First Product" />
          url="SecondProduct.aspx"
      title="Second Product"
      description="The description of the Second Product" />
  
      url="Default2.aspx"
    title="Our Services"
    description="Services that we offer">
          url="FirstService.aspx"
      title="First Service"
      description="The description of the First Service"
      metaDescription="The first service" />
          url="SecondService.aspx"
      title="Second Service"
      description="The description of the Second Service" />