Dieses Dokument enthält Hinweise zum Aufbau, der Funktionsweise und den Zusammenhängen zwischen den verschiedenen Dateien des Fragebogengenerators. Es wird vorausgesetzt, dass dem Leser die Funktionsweise des XML2HTML-Tools vertraut ist.
Zunächst gibt es einige allgemeine Erläuterungen zum Konzept.
Es folgt dann im zweiten Abschnitt eine Auflistung der die Fragebögen beschreibenden Parameter und im dritten Abschnitt eine Beschreibung des Aufbaus der Datenkank.
Im Anschluss werden im vierten Abschnitt die Dateien beschrieben, die vom Browser aus aufgerufen werden, und schließlich im fünften Abschnitt die in diesen Dateien verwendeten styles. Es wird dabei nicht im Detail auf jedes einzelne Tag und deren Attribute eingegangen. Vielmehr steht die Darstellung, wofür die jeweilige Datei verwendet wird, im Mittelpunkt.
Zu jeder Datei gibt es eine Kurzreferenz mit den folgenden Angaben:
Styles: | Welche Styles werden von dieser Datei eingebunden? |
HTML-Code: | Steht in der Datei endgültiger HTML-Code, der also nicht mehr ersetzt wird? Ja/Nein |
DB-Zugriff: | Werden in der Datei Datenbankfunktionen genutzt? Ja/Nein |
Um einen Fragebogen zusammenbauen zu können, müssen natürlich zunächst dessen Bestandteile extrahiert werden. Der vorliegende Fragebogengenerator unterscheidet Textelemente, Trennelemente und natürlich Fragen, wobei letztere noch weiter unterteilt werden. Da die Kenntnis der verschiedenen Elemente nicht nur für den Programmierer sondern auch für den Anwender wichtig ist, sei an dieser Stelle nur auf das Benutzerhandbuch verwiesen, wo die Elemente ausführlich beschrieben werden.
Jedes dieser Elemente wird nun durch spezifische, eindeutig benannte Parameter beschrieben. Namen und Werte dieser Parameter werden zusammen in der Datenbank abgespeichert, die Namen ausserdem auch als Namen der Eingabefelder in den Eingabemasken verwendet. Dies ermöglicht eine einfache Speicherung der Daten. Durch die eindeutige Benennung der Parameter kann von jedem dieser Parameter auf die Art des zugehörigen Elementes geschlossen werden, der Typ muss also nicht noch extra abgespeichert werden.
Bei den folgenden Attributen handelt es sich nur um jene, die einen Fragebogen bzw. dessen Elemente näher beschreiben. Es handelt sich dabei nicht um eine Aufzählung aller Attribute sämtlicher verwendeter Tags. Alle diese Attribute werden auch in der Datenbank abgespeichert, sind also die gültigen Werte für das Feld _Attributes_ in der Tabelle _formdata_.
Attributname | mögliche Werte | Element(e) | Bedeutung |
---|---|---|---|
FORMID | integer | Fragebogen allgemein | Eindeutige Ziffernfolge, generiert aus Datum und Uhrzeit, zur Identifikation der Fragebögen |
ORDERNO | integer | alle | Reihenfolgenposition der Elemente innerhalb des Fragebogens |
FrmTitle | text | Fragebogen allgemein | Titel/Überschrift |
FrmDescription | text | Fragebogen allgemein | Beschreibung |
FrmCreatedOn | datum | Fragebogen allgemein | Datum der Erstellung |
FrmCreatedBy | text | Fragebogen allgemein | Name des Erstellers |
FrmLastUpdated | datum | Fragebogen allgemein | Datum der letzten Änderung |
FrmShowTitle | boolean | Fragebogen allgemein | Anzeige der Überschrift im Fragebogen? |
FrmBgColor | farbwert | Fragebogen allgemein | Hintergrundfarbe |
FrmFgColor | farbwert | Fragebogen allgemein | Vordergrundfarbe |
TxtText | text | Textelement | Text eines Textelementes |
TxtAlignment | left, center, right | Textelement | Ausrichtung des Textes |
TxtSize | [-5..+5] | Textelement | Größe des Textes |
TxtColor | farbwert | Textelement | Farbe des Textes |
TxtLinkTarget | integer | Textelement | Nummer der Frage, auf die das Textelement verweisen soll |
SepType | hr, space, img | Trennelement | Typ des Elementes |
SepData | integer, url | Trennelement | Nähere Angaben zum Ausgewählten Typ |
QstNumber | integer | Fragen | Nummer einer Frage |
QstShowNumber | boolean | Fragen | Anzeige der Fragenummer im Fragebogen? |
QstText | text | Fragen | Text einer Frage |
QstAlignment | left, center, right | Fragen | Ausrichtung des Fragetextes |
QstAnswerAlignment | aaal, aaar, baar (*) | Fragen | Ausrichtung der Antwort |
InpTxtLength | integer | Textfrage | Länge des Feldes |
InpTxtWidth | integer | Textfrage | Breite des Feldes |
InpTxtHeight | integer | Textfrage | Höhe des Feldes |
InpSelType | radio, kombi, lists, check, listm | Auswahlfragen | Typ des Auswahlelementes |
InpSelOptionValues | text | Auswahlfragen | Werte und Bezeichnungen der Optionen |
InpSelDefault | integer | Auswahlfragen | Vorausgewählter Wert |
InpSelAlignText | behind, before, above | Auswahlfragen | Anordnung der Optionsbezeichnungen |
InpSelAlignOptions | horizontal, vertical | Auswahlfragen | Anordnung der Optionen |
InpSelBlockValues | text | Blockfrage | Unterfragen |
InpSelSubQstAlignment | left, center, right | Blockfrage | Anordnung der Unterfragen |
Es werden vom Fragebogengenerator die folgenden Tabellem verwendet:
formdata - für die Fragebogendaten selbst:
Feldname | Wertebereich | Beschreibung |
---|---|---|
FORMID | Varchar(20) | eindeutige Identifikation zur Unterscheidung der Fragebögen |
ORDERNO | Integer | Reihenfolgeposition des Elementes im Fragebogen |
ATTRIBUTE | Varchar(50) | Name des zum Element gehörigen Attributes |
VALUE | Text | Wert des bezeichneten Attributes |
results - für die Ergebnisse der Befragungen:
Feldname | Wertebereich | Beschreibung |
---|---|---|
FORMID | Varchar(20) | eindeutige Identifikation zur Unterscheidung der Fragebögen |
SESSSIONID | varchar(20) | eindeutige Identifikation zur (anonymen) )Unterscheidung der antwortenden Personen |
QUESTIONNO | Varchar(9) | Nummer der Frage im angegebenen Fragebogen |
ANSWER | text | Ausgewählte bzw. eingegebene Antwort |
resultlog - für die Zeiten der Ergebniseintragungen:
Feldname | Wertebereich | Beschreibung |
---|---|---|
SESSSIONID | Varchar(30) | Eintragsidentifikation |
REMOTEHOST | Varchar(30) | Addresse des Clientrechners |
Der Aufruf des Fragebogengenerators geschieht über die Datei
index.html. Dieses ist die einzige Datei,
die (ohne Argumente) direkt aufgerufen werden kann. Die Datei element.html wird nur vom Fragebogengenerator
aufgerufen und hat ohne die von diesem übergebenen Parameter
keine Funktion. Die Datei form.html
schließlich sorgt für die Ausgabe des Fragebogens. Das
Abspeichern der von einem ausgefüllten Fragebogen gesendeten
Daten übernimmt die Datei ergebnis.html.
Im folgenden ist der Inhalt der drei Dateien noch näher
beschrieben.
Diese Datei liefert die allgemeinen Seiten des Fragebogengenerators. Neben der Startseite mit allgemeinen Hinweisen ist dies die Verwaltung der Fragebögen, d.h. die Auswahl der bestehenden Fragebögen mit der Möglichkeit diese zu öffnen oder zu löschen und neue zu erstellen.
Hierzu werden zwei Menüs definiert - ein einfaches, das nur eine Schaltfläche bietet, mit der der Anwender zur Verwaltung kommt und ein umfangreicheres, das die Schaltflächen zum Erstellen, Öffnen, Löschen etc. zur Verfügung stellt.
Zu diesen beiden Menüs werden zwei Inhalte definiert. Zum einen ein Bereich mit allgemeinen Hinweisen und zum anderen ein Bereich mit der Liste zur Auswahl bereits existierender Fragenbögen.
Aus Menü und Inhalt wird dann jeweils ein <layout> Tag gebildet. Näheres hierzu bei der Beschreibung des layout.style.
Ausserdem wird in dieser Datei das Neuerstellen, Kopieren und Löschen von Fragebögen durchgeführt. Die Steuerung erfolgt dabei mit Hilfe der in der folgenden Tabelle aufgeführten Parameter:
Name | Werte | Beschreibung |
---|---|---|
Action | [delete | display | describe | copy | link | ""] | gibt an, welche Aktion vor Anzeige der Seite ausgeführt werden soll |
FORMID | String | Identifikationsnummer des aktuell ausgewählten Fragebogens |
CopyID | String | Identifikationsnummer des neuen Fragebogens, wenn ein Fragebogen kopiert wird (Action = "copy") |
Link | String | Link zu einem Fragebogen |
Styles: | basics.style, databasesetup.style, layout.style |
HTML-Code: | Ja |
DB-Zugriff: | Ja |
Diese Datei ist für die Darstellung der verschiedenen Eingabemasken verantwortlich. Auch hier wird - wie in index.html - das Menü definiert und aus diesem und dem Inhalt ein <layout> Tag (siehe layout.style) gebildet. Der Inhalt besteht hier in jedem Fall aus dem Tag <getelements>, dass in output.style definiert ist.
Neben der Ausgabe sind hier die Datenbankzugriffe zum Speichern, Löschen und Kopieren der Elemente implementiert. Die Parameter zur Steuerung sind der folgenden Tabelle zu entnehmen:
Name | Werte | Beschreibung |
---|---|---|
Action | [display | new | save | ordercount | delete | copy] | gibt an, welche Aktion vor Anzeige der Seite ausgeführt werden soll |
FORMID | String | Identifikationsnummer des aktuell bearbeiteten Fragebogens |
ORDERNO | Zahl | Nummer des Fragebogenelements, das aktuell angezeigt bzw. bearbeitet wird |
OrderMax | Zahl | Nummer des letzten Fragebogenelementes + 1 |
NewElem | [qsttxt | qstmul | qstblk | sep | txt | frm] | wird angegeben, wenn ein neues Element in den Fragebogen eingefügt werden soll; anhand des Wertes ist erkennbar, welches Element neu eingefügt werden soll |
Status | inserted | wurde ein Element neu eingefügt und noch nicht gespeichert, so wird dieser Parameter überliefert |
CopyNo | Zahl | wird angegeben, wenn ein Element kopiert wird; gibt die Position im Fragebogen an, an die kopiert werden soll |
Styles: | basics.style, databasesetup.style, layout.style, input.style, output.style |
HTML-Code: | Ja |
DB-Zugriff: | Ja |
Diese Datei gibt einen fertigen, in der Datenbank existierenden Fragebogen aus. Sie wird vom Fragebogengenerator für die Vorschau verwendet, kann aber ebenso direkt per Link aufgerufen werden. Hierzu muss lediglich die ID eines Fragebogens übergeben werden. Ein korrekter Link zu einem Fragebogen lässt sich mit dem Tool erzeugen.
Styles: | output.style |
HTML-Code: | Ja |
DB-Zugriff: | Nein |
Diese Datei veranlasst durch Einbindung des Makros resultinput.style die Abspeicherung der Ergebnisse aus einem ausgefüllten Fragebogen in der Datenbank und liefert eine kurze Seite mit einer Danksagung für das Ausfüllen des Fragebogens an den Browser zurück.
Styles: | resultinput.style |
HTML-Code: | Ja |
DB-Zugriff: | Nein |
Hier folgt nun eine Liste der verwendeten style-Dateien, jeweils mit kurzer Beschreibung, was das style macht. Die Liste ist alphabetisch nach Dateinamen geordnet. Es dürfte jedoch sinnvoller sein, beim Lesen von dieser Reihenfolge abzuweichen und sich die styles in der Reihenfolge ihrer Einbindung im Ersetzungsprozess anzuschauen. Begonnen werden sollte dann mit einem der oben bereits erwähnten Makros.
Hier werden nur einige wenige, in mehreren anderen styles verwendete Tags definiert. Im eigentlichen Darstellungsprozess spielt diese Datei nur eine untergeordnete Rolle.
Styles: | |
HTML-Code: | Nein |
DB-Zugriff: | Nein |
Dieses style sorgt für die für die Einbindung der Datenbankschnittstelle. Hier werden auch die Datenbankparameter wie Datenbankname, Benutzername etc. festgelegt.
Styles: | dbcutil.style |
HTML-Code: | Nein |
DB-Zugriff: | Nein |
Definition einiger Tags zur Vereinfachung von Datenbankzugriffen. Erstellung erfolgte bereits durch den Autor der XML2HTML-Datenbankschnittstelle.
Styles: | |
HTML-Code: | Nein |
DB-Zugriff: | Nein |
Dieses style wird zur Ausgabe des Fragebogens verwendet.
Das Makro sorgt für eine weitere Detailierung der in output.style erzeugten Tags. Es wird
insbesondere durch getrennte Tags genauer zwischen verschiedenen
Frage- bzw. Antworttypen unterschieden. Auf diese Weise entsteht ein
strukturiertes, gut lesbares XML-Dokument, das einen kompletten
Fragebogen darstellt.
Styles: | formoutput2.style |
HTML-Code: | Nein |
DB-Zugriff: | Nein |
In diesem style ist festgelegt, wie ein Fragebogen im Format eines durch formoutput1.style generierten XML-Dokumentes bzw. dessen Elemente in HTML aussehen sollen. Soll das Aussehen der fertigen Fragebögen geändert werden, so kann das also in diesem style geschehen.
Styles: | |
HTML-Code: | Ja |
DB-Zugriff: | Nein |
Dieses style übernimmt das Einschreiben der Parameter eines beliebigen Fragebogenelementes in die Datenbank.
Styles: | |
HTML-Code: | Nein |
DB-Zugriff: | Ja |
In diesem style wird das Tag <layout> definiert. Es stellt den allgemeinen Seitenaufbau zur Verfügung. Dieser besteht aus einem Menübereich und einem Inhaltsbereich. Was jeweils als Menü und als Inhalt in der Seite dargestellt werden soll, wird über die Attribute menu und content übergeben.
Styles: | |
HTML-Code: | Ja |
DB-Zugriff: | Nein |
Mit diesem style werden die verschiedenen Eingabemasken erzeugt, jenachdem, ob es sich bei dem aus der Datenbank ausgelesenen Element um Fragebogendaten, eine Frage, einen Text oder eine Trennung handelt. Im Falle einer Frage wird noch weiter unterschieden in Fragen mit Textantwort, einer Auswahlantwort oder mehreren Auswahlantworten.
Styles: | standardanswers.style |
HTML-Code: | Ja |
DB-Zugriff: | Nein |
Dieses style definiert das Tag <getelements> und ist damit Ausgangspunkt für jegliche Ausgaben von Datenbankinhalten. Es wird sowohl in form.html als auch in element.html verwendet.
Zunächst werden aus den Datenbankinhalten allgemeine Tags gebildet. Diese allgemeinen Tags werden in einem weiteren Schritt dann in unterschiedliche Tags ausgetauscht, jenachdem ob es sich bei dem Element um allgemeine Fragebogendaten, eine Frage, ein Trennelement oder ein Textelement handelt.
Die weitere Ersetzung dieser Tags erfolgt dann entweder durch maskoutput.style, wenn eine Eingabemaske für das entsprechende Element erzeugt werden soll, oder durch formoutput1.style, wenn der gesamte Fragebogen ausgegeben werden soll.
Styles: | databasesetup.style, basics.style, entweder formoutput1.style oder maskoutput.style |
HTML-Code: | Nein |
DB-Zugriff: | Ja |
Liest die übergebenen CGI-Argumente aus und speichert sie in der Tabelle results in der Datenbank.
Styles: | |
HTML-Code: | Nein |
DB-Zugriff: | Ja |
Beinhaltet die standardisierten Skalen für Auswahlantworten.
Styles: | |
HTML-Code: | Nein |
DB-Zugriff: | Nein |