XmlSiteMapProvider.BuildSiteMap Methode

Definition

Lädt die Siteübersichtsinformationen aus einer XML-Datei und erstellt sie im Arbeitsspeicher.Loads the site map information from an XML file and builds it in memory.

public:
 override System::Web::SiteMapNode ^ BuildSiteMap();
public override System.Web.SiteMapNode BuildSiteMap ();
override this.BuildSiteMap : unit -> System.Web.SiteMapNode
Public Overrides Function BuildSiteMap () As SiteMapNode

Gibt zurück

Gibt den Stamm-SiteMapNode der Navigationsstruktur für die Siteübersicht zurück.Returns the root SiteMapNode of the site map navigation structure.

Ausnahmen

Der XmlSiteMapProvider wurde nicht ordnungsgemäß initialisiert.The XmlSiteMapProvider was not initialized properly.

- oder --or- Eine siteMapFile wird für einen <siteMapNode> analysiert, der nicht eindeutig ist.A siteMapFile is parsed for a <siteMapNode> that is not unique.

- oder --or- Die von siteMapFile angegebene Datei hat nicht die Dateinamenerweiterung .sitemap.The file specified by the siteMapFile does not have the file name extension .sitemap.

- oder --or- Die von siteMapFile angegebene Datei ist nicht vorhanden.The file specified by the siteMapFile does not exist.

- oder --or- Ein im provider eines <siteMapNode> konfigurierter Anbieter gibt einen NULL-Stammknoten zurück.A provider configured in the provider of a <siteMapNode> returns a null root node.

Die siteMapFile ist angegeben, aber der Pfad liegt außerhalb der aktuellen Verzeichnisstruktur für die Anwendung.The siteMapFile is specified but the path lies outside the current directory structure for the application.

Beim Laden der Konfigurationsdatei ist ein Fehler aufgetreten.There is an error loading the configuration file.

- oder --or- Das oberste Element der Konfigurationsdatei ist nicht named <siteMap>.The top element of the configuration file is not named <siteMap>.

- oder --or- In der Konfigurationsdatei ist mehr als ein Knoten der obersten Ebene vorhanden.More than one top node exists in the configuration file.

- oder --or- Ein untergeordnetes Element von <siteMap> hat einen anderen Namen als <siteMapNode>.A child of the <siteMap> has a name other than <siteMapNode>.

- oder --or- Für <siteMapNode> wird ein unerwartetes Attribut analysiert.An unexpected attribute is parsed for the <siteMapNode>.

- oder --or- Untergeordnete Elemente werden unter einem <siteMapNode> geschachtelt, in dem der provider festgelegt ist.Sub-elements are nested beneath a <siteMapNode> where the provider is set.

- oder --or- Die roles des <siteMapNode> enthalten ungültige Zeichen.The roles of the <siteMapNode> contain characters that are not valid.

- oder --or- Eine url wird für einen <siteMapNode> analysiert, der nicht eindeutig ist.A url is parsed for a <siteMapNode> that is not unique.

- oder --or- Ein SiteMapNode mit einem doppelten Wert für Key wurde gefunden.A SiteMapNode was encountered with a duplicate value for Key.

- oder --or- Der ResourceKey oder der Title wurde in einem SiteMapNode oder einem für den Knoten in einem expliziten Ressourcenausdruck definierten custom-Attribut angegeben.The ResourceKey or Title was specified on a SiteMapNode or a custom attribute defined for the node contained an explicit resource expression.

- oder --or- Ein expliziter Ressourcenausdruck wurde entweder auf den Title oder die Description oder auf ein custom-Attribut eines SiteMapNode angewendet, aber die expliziten Informationen waren ungültig.An explicit resource expression was applied either to the Title or Description or to a custom attribute of a SiteMapNode but the explicit information was not valid.

- oder --or- Beim Analysieren des Url eines SiteMapNode ist ein Fehler aufgetreten.An error occurred while parsing the Url of a SiteMapNode.

In der aktuellen Auflistung der Siteübersichtsanbieter kann kein benannter Anbieter gefunden werden.A named provider cannot be found in the current site map providers collection.

Ein <siteMapNode>, der auf eine Siteübersichtsdatei verweist, enthält eine leere Zeichenfolge für die siteMapFile.A <siteMapNode> referencing a site map file contains an empty string for the siteMapFile.

Eine siteMapFile eines <siteMapNode> verwendet einen physikalischen Pfad.A siteMapFile of a <siteMapNode> uses a physical path.

- oder --or- Beim Analysieren des virtuellen Pfads der in der siteMapFile angegebenen Datei ist ein Fehler aufgetreten.An error occurred while attempting to parse the virtual path to the file specified in the siteMapFile.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie eine neue Instanz der XmlSiteMapProvider -Klasse erstellt und initialisiert wird, um eine Site Map aus XML-Daten zu erstellen.The following code example demonstrates how to create a new instance of the XmlSiteMapProvider class and initialize it to build a site map from XML data.

<%@ Page Language="c#" %>  
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
 <SCRIPT runat="server">  
 private void Page_Load(object sender, System.EventArgs e)  
 {  
     // Create an instance of the XmlSiteMapProvider class.  
     XmlSiteMapProvider testXmlProvider = new XmlSiteMapProvider();  
     NameValueCollection providerAttributes = new NameValueCollection(1);  
     providerAttributes.Add("siteMapFile","test.sitemap");  
     // Initialize the provider with a provider name and file name.  
     testXmlProvider.Initialize("testProvider", providerAttributes);  
  
     // The BuildSiteMap method is implicitly called when the   
     // RootNode property is accessed.  
  
     // Prints "/myvirtualdirectory/WebForm1.aspx"  
     Response.Write(testXmlProvider.RootNode.Url + "<BR>");  
     // Prints "/myvirtualdirectory/WebForm2.aspx"  
     Response.Write(testXmlProvider.CurrentNode.Url + "<BR>");  
 }  

Im vorangehenden Codebeispiel wird eine XML-Datei verwendet, die sich im virtuellen Stammverzeichnis der ASP.NET-Anwendung befindet.The preceding code example uses an XML file that is located in the virtual root of the ASP.NET application. Die Datei weist das folgende Format auf:The file has the following format:

<siteMap>  
     <siteMapNode title="RootNode" description="The root page." url="WebForm1.aspx">  
         <siteMapNode title="CurrentNode" description="Some sub page." url="WebForm2.aspx"/>  
     </siteMapNode>  
 </siteMap>  

Hinweise

Die BuildSiteMap -Methode wird aufgerufen, um die Site Übersicht aus dem permanenten Speicher zu laden und zu erstellen.The BuildSiteMap method is called to load and build the site map from persistent storage.

Das Standardverhalten beim Aktivieren der Sicherheits Kürzung finden Sie unter "Hinweise" in IsAccessibleToUser.For the default behavior when security trimming is enabled, see "Remarks" in IsAccessibleToUser.

Nachdem das XmlSiteMapProvider Objekt Site Übersichts Daten analysiert und geladen hat, werden alle SiteMapNode geladenen Objekte SiteMapNodeCollection und Sammlungen schreibgeschützt.After the XmlSiteMapProvider object parses and loads site map data, all loaded SiteMapNode objects and SiteMapNodeCollection collections are made read-only. Wenn die Url Eigenschaft aus einer Site Übersichts Datei analysiert,werdenAnwendungsrelativeURLssowierelativeURLsinAnwendungsabsolutevirtuellePfadekonvertiert.XmlSiteMapProviderWhen the XmlSiteMapProvider parses the Url property from a site map file, it converts application-relative URLs, as well as relative URLs, to application-absolute virtual paths.

Das XmlSiteMapProvider abonniert Datei Änderungs Benachrichtigungen für die. Sitemap-Datei.The XmlSiteMapProvider subscribes to file change notifications for the .sitemap file. Wenn an der Sitemap-Datei eine Änderung vorgenommen wird, XmlSiteMapProvider wird neu geladen, und die Struktur der Site Map wird neu erstellt.If any change is made to the .sitemap file, the XmlSiteMapProvider is reloaded, and the site map structure is rebuilt.

Gilt für:

Siehe auch