Ein Benutzermenü kann unterschiedlich aufgebaut sein. In unserem Beispiel gehen wir hier von einer Verschachtelung aus.
Beispiel:
Home Programmierung PHP&MySQL ASP.NET&MsSQL Kontakt Impressum Wegbeschreibung Support-Anfrage Downloads...
Diese Art der Struktur wird durch Sitemap-Dateien dargestellt. Hierzu stehen in diesem Fall nur begrenzte Hilfsmittel zur Verfügung, sodass hier fast alles händisch einzupflegen ist. Die siteMap, nach oben vorgegebenem Beispiel sieht dann wie folgt aus.
<?xml version="1.0" encoding="utf-8" ?> <siteMapxmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="default.aspx" title="Home" description="Startseite"> <siteMapNode url="Programmierung.aspx" title="Programmierung" description="Wir programmieren in..."> <siteMapNode url="asp.aspx" title="ASP.NET und MsSQL" description="Programmierung in ASP.NET und MsSQL" /> <siteMapNode url="php.aspx" title="PHP und MySQL" description="Programmierung in PHP und MySQL" /> </siteMapNode> <siteMapNode url="kontakt.aspx" title="Kontakt" description="Kontaktaufnahme"> <siteMapNode url="Impressum.aspx" title="Impressum" description="Impressum" /> <siteMapNode url="Wegbeschreibung.aspx" title="Wegbeschreibung" description="So finden Sie uns" /> <siteMapNode url="Support-Anfrage.aspx" title="Support-Anfrage" description="Sie haben Fragen?" /> </siteMapNode> <siteMapNode url="Downloads.aspx" title="Downloads" description="Downloads" /> </siteMapNode> </siteMap>
Die Seitenübersicht basiert auf XML, die Einhaltung der Wohlgeformtheitsregel ist hierbei zu beachten. Das Rootelement (hier gelb markiert) heißt siteMap. Unter diesem Element muss mindestens eine siteMapNode existieren. siteMapNodes lassen sich in beliebiger Tiefe verschachteln. Durch diese Schachtelung bringt man eine Struktur in die Anwendung. Diese hat jedoch nichts mit den wirklichen Verzeichnissen zu tun (Bsp: Inhalte von MySQL müssen nicht unter "Programmierung/PHP&MySQL/" abgelegt werden.).
Beim Hinterlegen der siteMapNode sind als Attribute die URL der Seite mit Pfad sowie der Titel und die Beschreibung anzugeben. Die verwendete URL kann natürlich auch Querystrings enthalten, hat aber innerhalb der Seitenübersicht im Ganzen eindeutig zu sein. Weitere mögliche SiteMapNode - Elemente sind hier tabellarisch aufgelistet.
Attribute
Beschreibung
Description
Die Information, welche man unter dem Description-TAG anlegt, werden als ToolTip im Browser ausgegeben.
Provider
Hier wird der verwendete Sitemap-Provider gelesen oder gesetzt.
Title
Zur Darstellung des Menütextes
Url
Zieladresse, welche beim Klicken des Menütextes aufgerufen werden soll
ResourceKey
ist die Zeichenkette, welche als Schlüssel zur Lokalisierung verwendet wird.
SiteMapFile
dient zur Spezifizierung einer externen Sitemap-Datei, die weitere Node Elemente enthält.
Roles
dient zum lesen oder setzen von Rollen. Bei der Verwendung mehrerer Rollen, werden diese durch Komma getrennt. Roles steuern die Zugriffsrechte auf die Menüpunkte.
SecurityTrimmingEnabled
Sicherheitseinstellungen werden je nach booleschem Wert ignoriert. Gesetzt wird dies zentral in den Einstellungen des Providers.
Wichtig: Das SecurityTrimmingEnabled Attribut in der Sitemap-Datei funktioniert nicht in Verbindung mit dem SitemapDataSource Steuerelement. Hier wird zur Laufzeit eine Exception ausgelöst. Alternativ kann hier das XMLDataSource Steuerelement genutzt werden.