Nächste Seite: Datenstruktur und Dokumententyp-Definition QuestionaryAnswer
Aufwärts: Datenstrukturen Questionary und QuestionaryAnswer
Vorherige Seite: Datenstrukturen Questionary und QuestionaryAnswer
  Inhalt
  Index
Datenstruktur und Dokumententyp-Definition Questionary
Im Abschnitt 2.1 wurde die Dokumententyp-Definition von Fragebogen vorgestellt. Die
Verarbeitung von Fragebögen basiert auf der Eins-Zu-Eins-Abbildung eines in XML
spezifizierten Fragebogens in die entsprechende Datenstruktur. Wie dies realisiert ist, zeigen
die beiden unteren Beispiele.
Ein Fragebogen ist laut der Dokumententyp-Definition wie folgt aufgebaut:
<!ELEMENT Questionary
(Password?, QuestionaryHead?, QuestionaryTitle, Chapter+)>
Die korrespondierende Datenstruktur hat die folgende Form:
data Questionary =
Questionary Password QuestionaryHead QuestionaryTitle [Chapter]
Während Password und QuestionaryHead aus weiteren
Unterstrukuren (mehrere fallabhängige Konstruktoren) bestehen, wird
QuestionaryTitle entsprechend der Vorgabe durch die Dokumententyp-Definition auf eine auf
String aufbauende Datenstruktur abgebildet.
Diese schrittweise Abbildung der XML-Spezifikation auf die Datenstruktur Questionary setzt sich in die
tiefe der Strukturen fort. Die Korrespondez von Chapter hat die
folgenden Form.
<!ELEMENT Chapter (ChapterTitle?, Paragraph*, QuestionSegment+)>
data Chapter = Chapter ChapterTitle [Paragraph] [QuestionSegment]
Ähnlich wie im oberen Beispiel wird ChapterTitle auf eine verfeinerte
Datenstruktur abgebildet. Paragraph* und QuestionSegment+ werden auf
Listen von entsprechenden Elementen abgebildet. Hier wird allerdings nicht die
Korrektheit der Konstrukte * und + überprüft.
Ein weiteres Beispiel ist der Aufbau von möglichen Antworten:
- kurze Textantworten (Textfield),
- beliebige Textantworten (Textarea) sowie
- einfache und mehrfache Auswahlmöglichkeiten aus einer Menge vorgegebener
Antworten (GroupAnswer).
Die Dokumententyp-Definition spezifiziert dies folgendermaßen:
<!ELEMENT Answer (Textfield | Textarea | GroupAnswer+)>
<!ELEMENT GroupAnswer ((StaticText | Textfield), GroupElement+)>
<!ATTLIST GroupAnswer Method (BUTTON | SINGLELIST | MULTILIST | CHECKBOX)
#REQUIRED
ID CDATA #REQUIRED
ColumnNumber CDATA #IMPLIED>
<!ELEMENT GroupElement (#PCDATA)>
<!ATTLIST GroupElement Value CDATA #REQUIRED
Selected (YES | NO) #IMPLIED>
Die Umsetzung in die Datenstruktur sieht wie folgt aus:
data QAnswer = QTextfield Content ID Width
| QTextarea Content ID Width Height
| QGroupAnswer [QGroup]
data QGroup = QGroup QGroupField Method ID Column [QGroupElement]
data QGroupField = QGroupStaticText PCData
| QGroupTextfield Content ID Width
data Method = QButton | QSingleList | QMultiList | QCheckbox
data QGroupElement = QGroupElement Content Value Selected
ID und Column werden durch die vorgegebenen Datentypen
String bzw. Int realisiert.
Der vollständige Aufbau der Dokumententyp-Definition und der Datenstruktur Questionary sind im Abschnitt
2.1 bzw. im Modul Questionary.curry zu finden
Nächste Seite: Datenstruktur und Dokumententyp-Definition QuestionaryAnswer
Aufwärts: Datenstrukturen Questionary und QuestionaryAnswer
Vorherige Seite: Datenstrukturen Questionary und QuestionaryAnswer
  Inhalt
  Index
Barbara Bennemann
2004-10-22