Verwaltung von Webseiten mit XML

XML ist eine Format-Vorschrift zur Abspeicherung hierachisch gegliederter Informa­tionen, die einen großen Freiraum zur Anpassung an die eigenen Gegeben­heiten und Anforde­rungen bietet. Deshalb kann man auch es hervor­ragend nutzen, um die eigenen Webseiten - wenn sie denn an Zahl und Umfang zugenommen haben - einheit­lich zu verwalten um dadurch "Herr der Dinge" zu bleiben.

Basis-Angaben

top ↑

Die Verwaltung des gesamten Web-Auftritts erfolgt über eine zentrale XML-Datei. Sie enthält für jede erstellte Webseite ein eigenes site - Element. Diese Informationen werden auch für die automatische Generierung des Navigations-Menü verwendet.

Was muss ein site - Eintrag alles enthalten?

Zunächst einmal eine eindeutige ID zur Unterscheidung von den anderen Webseiten. Für diese Seite ist z. B. die ID website_management festgelet. Zusätzlich wird hier auch der Text für den zugehörigen Menüeintrag mit angeben. Dadurch kann man an dieser zentralen Stelle auch alle Menüeinträge verwalten und so für eine einheitliche Sprache sorgen.

Mit dem Menütext allein kann zwar schon das Menü zur Anzeige und Einbindung in die einzelnen HTML-Seiten generiert werden - es ist dann aber noch ohne Funktionalität. Damit tatsächlich navigiert werden kann, müssen die Menü-Einträge mit Informationen hinterlegt werden, um die zugehörigen HTML-Seiten auch aufrufen zu können. Dazu wird der Pfad zu der jeweiligen .html - Datei benötigt.

Da zusammen­gehörende Dateien sinnvoller­weise gemeinsam abgelegt werden, kann hier ein vereinfachtes Verfahren zur Pfad-Ermittlung verwendet werden. Dazu gibt es eine weitere Festlegung: alle Seiten werden in Unterverzeichnissen eines gemeinsamen Basis-Verzeichnisses abgelegt. Es gibt hierbei nur eine Unterebene. Somit kann der (relative) Pfad von einer Seite zu einer anderen immer durch ../<dir>/<file> angegeben werden.

Wenn, als zusätzliche Regel,der Dateiname <file> immer aus ID (.html) gebildet wird, muss lediglich der Name des zugehörigen Unterver­zeichnisses als weitere Information mit abgespeichert werden.

Somit hat das site - Element bis jetzt folgenden Aufbau:

<site xml:id="website_management" 
  menu-title="Web&#173;sei&#173;ten-Ver&#173;wal&#173;tung"  dir="xml" /> 

Erweiterung

top ↑

Ab einer bestimmten Anzahl von einzelnen Seiten bietet es sich an, ein wenig Ordnung in das Chaos zu bringen.

Dazu eignet sich eine hierachische Struktur mit mehreren Ebenen. Zunächst gibt es Webseiten auf gleicher Ebene, Geschwistern sozusagen. Am Beispiel dieser "Einblick"-Seiten sind das die Seiten zu Java, XML, Internet, ... .

Zu jeder dieser Seiten kann es wiederum eine oder mehrere Seiten geben, die sich inhaltlich nur auf diese übergeordnete Seite beziehen, z. B. Detailseiten zu Java, Detailseiten zu XML (wie auch diese Seite), ... . Sie werden inhaltlich in der Hierachie eine Ebene tiefer eingeordnet und gehören zu genau einer Eltern - Seite der darüberliegenden Ebene.

Damit kommt ein weiterer Eintrag, das parent - Attribut, hinzu. Als Wert wird sinnvollerweise die ID der übergeordneten Webseite hinterlegt. Damit ist es möglich, von jeder x-beliebigen Webseite sukzessiv nach oben zu gelangen. An der Spitze steht jeweils eine Seite, deren parent - Attribut die eigene ID enthält.

Diese Seiten stehen für eigenständige, jeweils weiter untergliederte Themenbereiche. Es sind auch genau die Seiten, die als Hauptmenü-Punkte in die Navigation eingeordnet werden können. Ihre IDs werden durch das site - Attribut in den menu - Elementen referenziert.

Die Reihenfolge der Hauptmenü-Punkte ergibt sich aus der Reihenfolge, in der die menu - Elemente innerhalb von menus angegeben sind. Für die Reihenfolge der untergeordneten Menüpunkte / Seiten ist die Reihenfolge der site - Elemente innerhalb von sites entscheidend. Dabei werden aber jeweils nur die Seiten (site) betrachtet, die das gleiche parent - Attribut haben.

Zentrale Festlegungen

top ↑

Neben den Einträgen zu den einzelnen Webseiten, die den Inhalt des Web-Auftritts bestimmen, sind in auch formale Dinge festzugelegen: Styles und Hauptmenü-Punkte.

Bei den Styles gibt es Festlegungen zu einzelnen Bereichen der Seite. Sie bestimmen, welche Farben, Schriftarten, Abstände, Anordungsvorschriften (Layout) hier jeweils verwendet werden soll. Sie werden in CSS definiert und in separaten .css - Dateien abgelegt. Die korrekte Einbindung wird über reference - Elemente realisiert.

Zur Unterscheidung erhalten die Styles eigene IDs. Bei jeder Seite wird durch das style - Attribut angegeben, welches Style verwendet werden soll. Damit können die einzelnen Seiten differenziert dargestellt werden. Wieviel Styles man dazu benötigt und jeweils auch vorher definiert, ist jeder/m selbst überlassen. Nach oben ist nur durch die Anzahl der Seiten die Grenze gesetzt ;-)

Bei den Hauptmenü-Punkten gibt es die Festlegung, welches Logo bei den daz gehörenden Seiten mit eingebunden werden soll und welcher Logo-Text darunter angezeigt werden soll. Ist kein Text angegeben, wird der Menütext der zum Hauptmenü-Punkt gehörenden Seite verwendet.

Die Einträge in der zentralen XML-Datei haben, für diese Webseite, folgenden Inhalt:

<?xml version="1.0" encoding="utf-8"?>
<!-- Informationen zur Webseitenverwaltung
     (Website: finos.de) -->

<website>

  <references>
    <reference xml:id="css_finos-insight" 
      type="src"  target="../intern/finos_insight.css" />  
      ...
    <reference xml:id="img_logo-finos" 
      type="src"  target="../images/finos02_5.gif" />        
  </references>

  <!-- verwendete Format-Styles -->
  <styles>
      <style xml:id="style_insight"  src="css_finos-insight" />
      ...
  </styles>

  <!-- Hauptmenü-Punkte -->
  <menus>
    <menu site="..."    ... />
      ...     
    <menu site="insight"
      logo-image="img_logo-finos"  logo-text="" />
      ...             
  </menus>

  <!-- Einzelseiten -->
  <sites>
    <site xml:id="..."    ... />
      ...
      
  <site xml:id="website_management"     
    parent="xml"    style="style_insight"     head="subpath"  
    menu-title="Web&#173;sei&#173;ten-Ver&#173;wal&#173;tung"
    document="finos111215"  dir="xml" />   
      ...   
          
  </sites>

</website>

Bei dem gezeigten site Eintrag zu dieser Seite fallen bei menu-title die &#173; Stellen auf. Sie kodieren einen bedingten Trennstrich und sorgen dafür, dass bei zu langen Menüeinträgen an genau diesen Stellen umgebrochen werden kann. Mit head wird festgelegt, ob der Seiten-Titel neben dem Logo nur den aktuellen Text des Menü-Eintrags oder den gesamten Pfad (path) aller Menü-Einträge anzeigen soll. Mit subpath wird nur der letzte Teil des Pfades verwendet.

In dem hier nicht gezeigten Eintrag zur xml - Seite ist als parent die Seite insight eingetragen. Diese ist als Einblick - Seite zugleich einer der Hauptmenü-Punkte und wird von dem (gezeigten) menu - Element über dessen site - Attribut referenziert. Da hier kein logo-text hinterlegt ist, wird der gleiche Text wie für den Menüeintrag (Einblick) verwendet. Er wird direkt unter dem Logo angezeigt.