english version
Dokumente bei /Partusch

Stundenplan XML+XSLT Dokumentation

Das Folgende ist die Dokumentation von Stundenplan XML+XSLT, sowie des XML-Formats der Stundenpläne.

Inhalt dieser Seite:
  1. Verwendung des Stylesheets
  2. Unterstützte Browser
  3. Das XML-Format der Stundenpläne
    1. Allgemeiner Aufbau
    2. Veranstaltungen
    3. Konfiguration
    4. Beispiel-Stundenpläne
 

Verwendung des Stylesheets

Stundenplan XML+XSLT muss nicht installiert werden. Es reicht, dass sich die Datei "stundenplan.xsl" im selben Ordner wie der XML-Stundenplan befindet. Sie kann sich jedoch auch an einem beliebigen anderem Ort befinden. Dann muss die xml-stylesheet-Angabe bei den Stundenplänen jedoch entsprechend angepasst sein.
Der erste Schritt ist also das Schreiben eines XML-Stundenplans - entsprechend dem im letzten Abschnitt definiertem XML-Format. Im Anschluss muss man sicher gehen, dass im xml-stylesheet-Attribut der Pfad bzw Ort des Stylesheets - der Datei "stundenplan.xsl" - richtig angegeben ist. Nun kann man den Stundenplan bereits in einem der unterstützten Browser aufrufen und sich am Ergebnis erfreuen.

Achtung: Die Datei-Endung des Stylesheets lautet "xsl" und nicht "xls"!

nach oben

 

Unterstützte Browser

Stundenplan XML+XSLT verwendet internationale Web-Standards, die von den gängigen Browsern in aktuellen Versionen unterstützt werden. Namentlich sind das HTML 4.01, CSS 2.1 (auch etwas CSS 3), JavaScript, XML 1.0, XSLT 1.0 und EXSLT. Die Stundenpläne funktionieren daher sowohl mit Microsoft Internet Explorer, Mozilla Firefox, Apple Safari, Opera und Google Chrome. Die Mindestversionen sind dabei Internet Explorer ab Version 6, Firefox ab Version 3, Safari ab Version 3.1, Opera ab Version 9 und jede Version von Google Chrome.

nach oben

 

Das XML-Format der Stundenpläne

Das XML-Format, welches von den Stundenplänen verwendet wird, ist relativ einfach zu lesen und zu schreiben. Um entsprechende Dateien zu erstellen ist nur ein normaler Text-Editor notwendig. Ein Editor mit "Syntax-Highlightning" für XML ist dabei zu empfehlen.

Im Folgenden wird das XML eines vollständigen, aber sehr kleinen Stundenplans gezeigt und die wichtigen (rot markierten) Stellen werden Schritt für Schritt erklärt.

Das XML sieht wie folgt aus:

01:	<?xml version="1.0" encoding="UTF-8"?>
02:	<?xml-stylesheet type="text/xsl" href="stundenplan.xsl"?>
03:	 
04:	<stundenplan version="2.0">
05:	 	<titel>Beispiel-Stundenplan</titel>
06:	 	<semester>2008</semester>
07:	 
08:	 	<Vorlesung>
09:	 		<veranstaltung>
10:	 			<titel>Vorlesung</titel>
11:				<anmerkung>s.t.</anmerkung>
12:				<dozent>Name des Professors</dozent>
13:				<url>http://home.arcor.de/partusch/</url>
14:				<termin>
15:					<tag>di</tag>
16:					<von>14:15</von>
17:					<bis>15:45</bis>
18:					<ort>Hörsaal am Dienstag</ort>
19:				</termin>
20:				<termin>
21:					<tag>do</tag>
22:					<von>14:00</von>
23:					<bis>16:00</bis>
24:					<ort>Hörsaal am Donnerstag</ort>
25:				</termin>
26:			</veranstaltung>
27:		</Vorlesung>
28:	
29:		<konfiguration>
30:			<farben farbdruck="0">
31:				<Vorlesung>orange<Vorlesung>
32:			</farben>
33:			<wochentage>
34:				<tag id="mo">Montag</tag>
35:				<tag id="di">Dienstag</tag>
36:				<tag id="mi">Mittwoch</tag>
37:				<tag id="do">Donnerstag</tag>
38:				<tag id="fr">Freitag</tag>
39:			</wochentage>
40:			<anzeige>
41:			    <sws-anzeigen>1</sws-anzeigen>
42:			    <hervorhebung>1</hervorhebung>
43:			</anzeige>
44:			<zeiten zeige-alle="0">
45:				<intervall sichtbar="1">0</intervall>
46:				<beginn>8</beginn>
47:				<ende>20</ende>
48:			</zeiten>
49:		</konfiguration>
50:	</stundenplan>
 

Allgemeiner Aufbau

Achtung: Bitte beachten, dass XML "case-sensitive" ist. Das heißt, es muss exakt auf Groß- und Kleinschreibung geachtet werden! Die im Stundenplan-XML verwendeten Tags und Attribute sind klein geschrieben und müssen dies auch in jedem Stundenplan sein!

 

Encoding- und Stylesheet-Angabe

In der ersten Zeile der Stundenplan-Datei muss das "encoding"-Attribut korrekt gesetzt sein. Dieses Attribut gibt an, welcher Zeichensatz für die Datei verwendet wurde. Dies ist bei allen Beispiel-Stundenplänen UTF-8. Gerade unter Windows kann es jedoch auch sein, dass der Editor standardmäßig ISO-8859-1 bzw Windows-1252 verwendet. Wenn das der Fall ist, muss der passende Zeichensatz in dem "encoding"-Attribut angegeben sein.
In der zweiten Zeile folgt die "xml-stylesheet"-Anweisung. Diese Zeile ist sehr wichtig, denn es ist die Anweisung, dass das "Stundenplan XML+XSLT"-Stylesheet auf den XML-Code angewendet werden muss. Das "href"-Attribut muss den korrekten Namen des Stylesheets enthalten. Befindet sich die XML-Datei nicht im selben Verzeichnis/Ordner wie die XSL-Datei, so muss in dem Attribut auch der Pfad zu dem Stylesheet enthalten sein und nicht nur der einfache Dateinamen.

nach oben

 

Allgemeine Stundenplan-Angaben

stundenplan: Alle Angaben befinden sich in einem gemeinsamen Wurzel-Tag "stundenplan". Dieses Wurzel-Tag benötigt ein "version"-Attribut, welches die Version des eingesetzten Stundenplan-XMLs angibt. Aktuell und hier beschrieben ist Version 2.0 dieses XML-Formats. Die einzigen Tags, die direkt dem "stundenplan"-Tag untergeordnet und vorgegeben sind, sind: titel, semester und konfiguration.

titel: Im Titel-Tag wird die Überschrift angegeben, die über dem gesamten Stundenplan stehen soll. Das titel-Tag ist optional und kann auch vollständig weggelassen werden.

semester: Dieses Tag bestimmt das Semester, für welches der Stundenplan vorgesehen ist. Standardmäßig oder wenn das Attribut lang="de" gesetzt ist, sollten hier nur die Jahreszahlen des Semesters stehen. Der Stundenplan ermittelt automatisch, ob es sich um ein Sommer- oder um ein Wintersemester handelt. Gibt es ein Trennzeichen wie "/" oder "-" wird ein Wintersemester angenommen (Beispiel: 2008/09). Andernfalls wird ein Sommersemester angenommen (Beispiel: 2008).
Wird das lang-Attribut auf einen anderen Wert als "de" gesetzt, wird diese Automatik umgangen und es wird einfach der gesamte Inhalt des Tags für die Angabe des Semesters verwendet (Beispiel: <semester lang="ch">Herbstsemester 2007</semester>).

nach oben

 

Veranstaltungen

Der wichtigste und größte Teil eines Stundenplans sind die Veranstaltungen. Bei "Stundenplan XML+XSLT" können die Veranstaltungen daher für bessere Übersichtlichkeit gruppiert werden. Der "stundenplan"-Wurzel wird dabei ein beliebig benanntes Tag untergeordnet, welches ein oder mehrere "veranstaltung"-Tags beinhaltet. Dieses beliebig benannte Tag ist eine Gruppe oder Kategorie für die Veranstaltungen. Im obigen Beispiel sind die Veranstaltungen in der Gruppe "Vorlesung" zusammengefasst. Die Gruppen können grundsätzlich beliebig bezeichnet werden und zum Beispiel verschiedene Fachtypen bezeichnen (Hauptfach, Nebenfach, ...), Veranstaltungstypen (Vorlesung, Seminar, ...) oder beliebige andere Kategorien. Jede Veranstaltung muss innerhalb einer solchen Gruppe stehen!
Die Gruppen werden für die Farbgebung, wie auch zur Berechnung der Semesterwochenstunden verwendet. Siehe dazu auch den Abschnitt "Konfiguration".

veranstaltung: Jeder Termin entspricht einer Veranstaltung. Veranstaltungen müssen immer einem Gruppen-Tag untergeordnet sein. Jede Veranstaltung besitzt einen Titel im "titel"-Tag und mindestens ein "termin"-Tag, sowie eine Reihe optionaler Angaben.

titel: Titel der Veranstaltung. Eine Pflichtangabe.

anmerkung: Zu jeder Veranstaltung kann eine Anmerkung angegeben werden. Diese wird kursiv neben dem Titel dargestellt. Dies ist ein optionales Tag und kann vollständig weggelassen werden.

dozent: Gibt den Namen des Professors, Übungsleiters oder allgemein Dozenten der Veranstaltung an. Die Namensangabe muss keiner bestimmten Form entsprechen und kann beliebig gewählt oder ganz weggelassen werden.

url: Jede Veranstaltung kann mit einer URL, einer Internet-Adresse, d. h. einem Link, verknüpft werden. Wird eine URL angegeben, so wird der Titel der Veranstaltung mit dieser URL verknüpft. "url" ist eine optionale Angabe und kann vollständig weggelassen werden.

termin: Jede Veranstaltung kann mehrere "termin"-Tags haben, muss jedoch mindestens einen vollständig ausgefüllten "termin"-Tag besitzen. Ein Termin besteht aus einem "tag", einer Anfangs- und Endzeit, sowie einer Ortsangabe, wobei die Ortsangabe optional ist.

tag: Gibt die ID eines Tages an. Die IDs und Tage werden in der Konfiguration angegeben. Siehe dazu den Abschnitt "Konfiguration". Üblicherweise ist die ID das gängige zwei-buchstabige Kürzel des Tages (zum Beispiel "mo" für Montag).

von und bis: Die Anfangs- und Endzeit des jeweiligen Termins. Wird hier nur eine Zahl angegeben, wird das als volle Stundenangabe interpretiert. Minutenangaben können optional verwendet werden und mit ":" an die Stundenangabe gefügt werden (Beispiel: 14:45). Bei der Angabe der Zeit sollte bedacht werden, dass auch die Minutenangaben vom Stundenplan dargestellt werden. Es ist daher besser durchgehend durch den gesamten Stundenplan ähnliche Minutenangaben zu verwenden (z. B. immer Viertelstunden oder 10-minütige Angaben). Das ist nicht zwingend erforderlich - der Stundenplan kann auch mit wild gemischten Minutenangaben umgehen - es erhöht jedoch die Übersichtlichkeit deutlich.

ort: Hier kann eine Raumangabe, eine Adresse oder ein sonstiger beliebiger Ort angegeben werden. Die Ortsangabe erscheint beim jeweiligen Termin, so dass eine Veranstaltung zu verschiedenen Terminen auch an verschiedenen Orten stattfinden kann. Die Angabe eines Orts ist jedoch optional.

nach oben

 

Konfiguration

Die Stundenpläne sind individuell konfigurierbar. Dies geschieht durch den Inhalt des "konfiguration"-Tags.

farben: In diesem Tag können die für die Veranstaltungen benutzten Gruppierungen aufgegriffen und mit einer Farbe versehen werden. Wie am Beispiel zu sehen wird einfach das Gruppierungstag aufgeführt und eine Farbangabe als dessen Inhalt gewählt. Als Farbangaben sind alle CSS-Farbangaben möglich. Das schließt zum Beispiel sowohl die 17 in CSS 2.1 definierten Farb-Bezeichnungen (aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, orange, purple, red, silver, teal, white, yellow) als auch die Angabe von Farbcodes ein (Beispiel: #ff0000 oder rgb(255,0,0)). Es können also alle 16,7 Millionen darstellbaren Farben für die Stundenpläne verwendet werden.
Die jeweilige Farbe wird zur besseren optischen Gliederung als Hintergrundfarbe für die Veranstaltungen der entsprechenden Gruppe verwendet.

Das "farben"-Tag verfügt außerdem über ein Attribut namens "farbdruck". Dieses Attribut gibt an, ob die Hintergrundfarben und sonstige Farben gedruckt werden sollen oder nicht. Hat es den Wert "1" können die Ausdrucke farbig sein. Hat es den Wert "0", so wird automatisch immer Schwarz-Weiß gedruckt. Die Darstellung am Bildschirm ist immer farbig und unabhängig von dieser Einstellung.

wochentage: Dieses Tag definiert die im Stundenplan verwendeten Wochentage. Jedes "tag"-Tag definiert einen Tag, der im Stundenplan angezeigt werden soll. Die Bezeichnung wie auch die Anzahl der Tage kann beliebig geändert werden. Soll zum Beispiel auch der Samstag im Stundenplan berücksichtigt werden, muss man lediglich ein entsprechendes "tag"-Tag hinzufügen (Beispiel: <tag id="sa">Samstag<tag>).

tag: Definiert einen Wochentag, der im Stundenplan angezeigt werden soll. Das Attribut "id" ist wichtig und entspricht der Angabe, die man in den "veranstaltung"-Tags (genauer im "tag"-Tag unter "veranstaltung/termin/tag") verwenden muss, um auf den entsprechenden Wochentag zu verweisen.

sws-anzeigen: Wenn der Inhalt dieses Tags "1" ist, dann wird unterhalb des Stundenplans die Anzahl der Semesterwochenstunden angezeigt. Werden mehrere Veranstaltungsgruppen bei den Veranstaltungen verwendet, so wird die Semesterwochenstunden-Anzeige zusätzlich entsprechend nach den Gruppen aufgeschlüsselt. Ist der Inhalt des Tags "0", so erfolgt keine Anzeige von Semesterwochenstunden.

hervorhebung: Wird als Inhalt des Tags "1" gewählt, dann werden zusammengehörende Termine, d. h. Termine derselben Veranstaltung, optisch hervorgehoben, wenn man mit der Maus über einen der Termine fährt. Außerdem werden zusätzliche Informationen zu jedem Termin eingeblendet (Gruppe der Veranstaltung, Zeitpunkt und Dauer). Bei "0" ist dieses Verhalten ausgeschaltet.

zeiten: Konfiguriert die Zeiten des Stundenplans. Das Attribut "zeige-alle" gibt an, ob der gesamte Zeitrahmen (durch die Tags "beginn" und "ende" definiert) angezeigt werden soll. Ist der Wert des Attributs "1" wird der gesamte Zeitrahmen angezeigt. Bei dem Wert "0" werden nur Stunden angezeigt, in denen mindestens eine Veranstaltung liegt. Die Darstellung bei "0" ist also auf das Wesentliche reduziert und deutlich kompakter.

beginn: Definiert den Beginn des Zeitrahmens. Die Zahl gibt die Stunde an, ab der Veranstaltungen berücksichtigt werden sollen. Siehe auch das Attribut "zeige-alle" des Tags "zeiten".

ende: Definiert das Ende des Zeitrahmens. Die Zahl gibt die Stunde an, bis der Veranstaltungen berücksichtigt werden sollen. Siehe auch das Attribut "zeige-alle" des Tags "zeiten".

intervall: Gibt das Mindestintervall an, welches für die Aufteilung der einzelnen Stunden verwendet werden soll. Gültige Werte reichen von 0 bis 30. Bei "0" gibt es keine Intervall-Vorgabe und Stundenplan XML+XSLT entscheidet automatisch, welches Intervall am besten geeignet ist. Jeder andere Wert wird als Minutenangabe interpretiert. Das bedeutet zum Beispiel, dass "15" mindestens eine Unterteilung in Viertelstunden erzwingt. "30" erzwingt mindestens eine Unterteilung in halbe Stunden und "10" würde mindestens eine Unterteilung in 10-Minuten-Abschnitte erzwingen. Die "intervall"-Angabe wird immer berücksichtigt. Ist jedoch eine feinere Unterteilung für die Anzeige einer Veranstaltung notwendig, wird diese feinere Unterteilung gewählt. Achtung: Wenn es widersprüchliche Intervall-Anforderungen gibt, wird in letzter Konsequenz eine minutengenaue Unterteilung gewählt. Jede Stunde wird dabei in 60 Unterteilungen aufgeteilt.
Das Attribut "sichtbar" definiert, ob die einzelnen Unterteilungen durch eine gestrichelte horizontale Linie angezeigt werden sollen oder nicht. Bei "0" wird keine Linie angezeigt, bei "1" wird eine Linie angezeigt. Diese Einstellung beeinflusst jedoch nicht die Funktionalität der Unterteilungen.

nach oben

 

Beispiel-Stundenpläne

Am einfachsten und bequemsten ist es, wenn man einfach einen fertigen Beispiel-Stundenplan nimmt und entsprechend den eigenen Wünschen anpasst. Drei Beispiel-Stundenpläne stehen zur Verfügung:

nach oben