XLSForm Standard

Der Standard für digitale Umfragen.

XLSForm-Dokumentation

Hinweis: Diese Seite wurde (abgesehen von einigen Beispielen) maschinell aus dem Englischen übersetzt und gekürzt. Die Originalversion findet ihr unter xlsform.org/en/. Wegen der Kürzung sollten für forgeschrittene Vorhaben immer diese Website zu Rate gezogen werden.

Was ist eine XLSForm?

XLSForm ist ein Umfragestandard, der entwickelt wurde, um die Erstellung von Umfragen in Excel zu vereinfachen. Die Erstellung erfolgt in einem für Menschen lesbaren Format unter Verwendung eines vertrauten Tools, das fast jeder kennt - Excel. XLSForms bieten einen praktischen Standard für den Austausch und die Zusammenarbeit bei der Umfrageerstellung. Der Einstieg ist einfach, ermöglicht aber die Erstellung komplexer Umfragen durch Personen, die mit der unten beschriebenen Syntax vertraut sind.

Hinweis des CDL: XLSForm kann man in allen Spreadsheet-Tools erstellen, zum Beispiel auch in Google Sheets, LibreOffice Calc oder Grist.

Die XLSForm wird anschließend in ein ODK XForm konvertiert, einen gängigen offenen Umfragestandard, der es dir ermöglicht, eine Umfrage mit komplexen Funktionen, wie z.B. Sprunglogik, auf einheitliche Weise über eine Reihe von Web- und mobilen Datenerfassungsplattformen hinweg zu erstellen.

Grundlegendes Format

Jede Excel-Arbeitsmappe enthält in der Regel zwei Arbeitsblätter: „survey” (Umfrage) und „choices” (Auswahlmöglichkeiten). Ein drittes, optionales Arbeitsblatt mit dem Namen „settings” (Einstellungen), kann deiner Umfrage zusätzliche Angaben hinzufügen und wird im Folgenden beschrieben.

Das Arbeitsblatt „survey”

Dieses Arbeitsblatt gibt deiner Umfrage die Gesamtstruktur vor und enthält den Großteil des Umfrageinhalts. Es enthält die vollständige Liste der Fragen sowie Informationen darüber, wie diese in der Umfrage angezeigt werden sollen. Jede Zeile steht in der Regel für eine Frage; es gibt jedoch bestimmte weitere Funktionen, die im Folgenden beschrieben werden und die du der Umfrage hinzufügen kannst, um die Benutzerfreundlichkeit zu verbessern.

Das Arbeitsblatt „choices”

Dieses Arbeitsblatt dient dazu, die Antwortmöglichkeiten für Multiple-Choice-Fragen festzulegen. Jede Zeile steht für eine Antwortmöglichkeit. Antwortmöglichkeiten mit demselben Listennamen werden als Teil einer zusammengehörigen Auswahlgruppe betrachtet und erscheinen gemeinsam in einer Frage. Auf diese Weise kann eine Auswahlgruppe auch für mehrere Fragen wiederverwendet werden (z. B. Ja/Nein-Fragen).

Einrichten deiner Arbeitsblätter

Beide Arbeitsblätter enthalten eine Reihe von Pflichtspalten, die vorhanden sein müssen, damit die Umfrage funktioniert. Darüber hinaus verfügt jedes Arbeitsblatt über eine Reihe von optionalen Spalten, die eine weitere Steuerung des Verhaltens der einzelnen Einträge in der Umfrage ermöglichen, jedoch nicht zwingend erforderlich sind. Jeder Eintrag muss Werte für jede der Pflichtspalten enthalten, die optionalen Spalten können jedoch leer gelassen werden.

  • Das survey-Arbeitsblatt verfügt über 3 obligatorische Spalten: type, name und label.
    • Die Spalte type gibt den Typ des Eintrags an, den du für die Frage erwartest.
    • Die Spalte name gibt den eindeutigen Variablennamen für diese Eingabe an. Keine zwei Eingaben dürfen denselben Namen haben. Namen müssen mit einem Buchstaben oder einem Unterstrich beginnen. Namen dürfen nur Buchstaben, Ziffern, Bindestriche, Unterstriche und Punkte enthalten. Bei Namen wird zwischen Groß- und Kleinschreibung unterschieden.
    • Die Spalte label enthält den tatsächlichen Text, den du für die Frage in der Umfrage sehen. Alternativ können Spalten für die Übersetzung der Beschriftungen verwendet werden.
survey
typenamelabel
heuteheute
select_one BildungsabschlussBildungsabschlussHöchster Bildungsabschluss?
integerAlterAlter des Befragten?
  • Das Arbeitsblatt choices enthält ebenfalls drei Pflichtspalten: list_name, name und label.
    • In der Spalte list_name kannst du eine Reihe miteinander verbundener Antwortmöglichkeiten gruppieren, d. h. Antwortmöglichkeiten, die unter einer Frage gemeinsam angezeigt werden sollen.
    • Die Spalte name gibt den eindeutigen Variablennamen für diese Antwortoption an.
    • Die Spalte label zeigt die Antwortoption genau so an, wie sie in der Umfrage erscheinen soll. Alternativ können Spalten für die Übersetzung der Label verwendet werden.
choices
list_namenamelabel
Bildungsabschlusskein_abschlussKein Abschluss
BildungsabschlusshauptschuleHauptschulabschluss
BildungsabschlussrealschuleMittlere Reife
BildungsabschlussabiturAbitur
BildungsabschlussstudiumHochschulabschluss

Die Spalten, die du deiner Excel-Arbeitsmappe hinzufügst, können in beliebiger Reihenfolge erscheinen, unabhängig davon, ob sie obligatorisch oder optional sind. Optionale Spalten können vollständig weggelassen werden. Zeilen oder Spalten können zur besseren Lesbarkeit leer gelassen werden, jedoch werden Daten nach 20 aufeinanderfolgenden leeren Spalten oder Zeilen auf einem Blatt nicht verarbeitet. Die gesamte Formatierung der .xlsx-Datei wird ignoriert, sodass du Trennlinien, Schattierungen und andere Schriftformatierungen verwenden kannst, um die Umfrage übersichtlicher zu gestalten.

Beim Erstellen von Umfragen in Excel ist zu beachten, dass die verwendete Syntax präzise sein muss. Wenn du beispielsweise „Choices” oder „choice” anstelle von „choices” eingibst, funktioniert die Umfrage nicht.

Fragetypen

XLSForm unterstützt eine Reihe von Fragetypen. Dies sind nur einige der Optionen, die du in die Spalte type im survey-Arbeitsblatt deiner XLSForm eingeben kannst:

FragetypAntwort-Eingabe
integerEingabe einer ganzen Zahl.
decimalEingabe einer Dezimalzahl.
rangeBereichseingabe (einschließlich Bewertung)
textFreitextantwort.
select_one [Optionen]Multiple-Choice-Frage; es kann nur eine Antwort ausgewählt werden.
select_multiple [Optionen]Multiple-Choice-Frage; es können mehrere Antworten ausgewählt werden.
select_one_from_file [Datei]Multiple-Choice-Frage aus einer Datei; es kann nur eine Antwort ausgewählt werden.
select_multiple_from_file [Datei]Multiple-Choice-Frage aus Datei; es können mehrere Antworten ausgewählt werden.
rank [Optionen]Rangfrage; eine Liste ordnen.
noteZeigt eine Notiz auf dem Bildschirm an, benötigt keine Eingabe. Abkürzung für type=text mit readonly=true.
dateDatumsangabe.
timeZeitangabe.
calculateEine Berechnung durchführen; siehe den Abschnitt „Berechnung” weiter unten.

Eine vollständige Liste der Fragetypen und der Elemente, die diese in der Vorlage und im Verweis anpassen können, findest du hier.

Mehrfachauswahl

XLSForm unterstützt sowohl „select_one”-Fragen (nur eine Antwort auswählen) als auch „select_multiple”-Fragen (mehrere Antworten auswählen). Du kannst die Antwortmöglichkeiten für Multiple-Choice-Fragen direkt in der Umfrage festlegen oder, bei sehr langen Auswahllisten oder solchen, die durch einen externen Prozess aktualisiert werden müssen, in angehängten Dateien.

Um Auswahlmöglichkeiten in deiner Umfrage zu definieren, musst du deiner Excel-Arbeitsmappe ein Arbeitsblatt mit den Auswahlmöglichkeiten hinzufügen. Hier ist ein Beispiel für eine „select_one”-Frage:

survey
typenamelabel
select_one ja_neinmag_PizzaMagst du Pizza?
choices
list_namenamelabel
ja_neinjaJa
ja_neinneinNein

Beachte, dass das Feld ja_nein im Arbeitsblatt survey mit dem Feld ja_nein in der Spalte list_name des Arbeitsblatts choices übereinstimmen muss. Dadurch wird sichergestellt, dass die Umfrage die richtige Liste mit Antwortmöglichkeiten für eine bestimmte Frage anzeigt. Wir können auch Multiple-Choice-Fragen hinzufügen, bei denen mehrere Antworten ausgewählt werden können, und zwar so:

survey
typenamelabel
select_multiple pizza_toppingsfavorite_toppingsWas sind deine Lieblingsbeläge für Pizza?
choices
list_namenamelabel
PizzabelägeKäseKäse
PizzabelägePeperoniPeperoni
PizzabelägeWurstWurst

Klicke auf den Link, um den vollständigen Pizza-Fragebogen anzusehen.

Namen von Auswahlmöglichkeiten (choices)

Die name Spalte des Auswahlblatts definiert die Werte, die gespeichert werden, wenn die jeweilige Auswahl während der Datenerfassung ausgewählt wird. Antwortnamen für select_multiple-Fragen dürfen keine Leerzeichen enthalten, da Leerzeichen als Trennzeichen verwendet werden, wenn eine Antwort mit mehreren ausgewählten Antworten gespeichert wird. Antwortnamen für „select_one”-Fragen dürfen Leerzeichen enthalten. Wir empfehlen jedoch, diese zu vermeiden, um die Analyse zu vereinfachen. Außerdem ermöglicht dies die Umwandlung der Frage in eine select_multiple-Frage in einer zukünftigen Umfrageversion.

Im Allgemeinen sollten die Namen der Auswahlmöglichkeiten innerhalb einer Auswahlliste eindeutig sein. Wenn zwei Auswahlmöglichkeiten derselben Liste denselben Namen haben, lassen sie sich bei der Auswertung nicht voneinander unterscheiden. Bei doppelten Namen der Auswahlmöglichkeiten wird eine Fehlermeldung angezeigt, und deine Umfrage wird nicht konvertiert. In manchen Fällen kann es jedoch sinnvoll sein, doppelte Namen für Auswahlmöglichkeiten zu verwenden. Ein Beispiel hierfür wäre die Verwendung einer kaskadierenden Auswahl, bei der die gleichnamigen Auswahlmöglichkeiten durch eine vorangestellte Frage voneinander unterschieden werden. Wenn du doppelte Auswahlnamen verwenden musst, kannst du die Fehler bei der Verwendung der choice_duplicates Einstellung:

settings
allow_choice_duplicates
yes

Werte in einer Auswahlliste nachschlagen

Du kannst dem Auswahlblatt zusätzliche Spalten hinzufügen und dann mithilfe der Instanzfunktion Werte für diese Spalten nachschlagen.

„Anderes angeben”

Warnung: Wir empfehlen generell, die Spalte relevant zu verwenden, um deine eigene „Sonstiges”-Option festzulegen. Die in diesem Abschnitt beschriebene Abkürzung funktioniert nur bei Auswahlfeldern ohne Übersetzungen oder choice_filters. Sie verwendet Englisch für die Option „Sonstiges”, die nicht angepasst werden kann.

Bei Multiple-Choice-Fragen bieten Umfragen oft die Möglichkeit, „Sonstiges” anzukreuzen, wenn die gewünschte Antwortoption nicht aufgeführt ist. In diesem Fall werden die Befragten in der Regel gebeten, die sonstige Option näher zu beschreiben. XLSForm bietet hierfür eine Abkürzung: Füge im Umfrage-Arbeitsblatt hinter dem Namen der Antwortauswahlliste „or_other” ein. Das Arbeitsblatt mit den Antwortoptionen bleibt unverändert. Siehe unten:

survey
typenamelabel
select_multiple pizza_toppings or_otherLieblingsbelagWas sind deine Lieblings-Pizzabeläge?

Mehrfachauswahl aus Datei

Wenn du die Antwortmöglichkeiten für eine Multiple-Choice-Frage in einer separaten Datei bereitstellen möchtest, verwende den Fragetyp select_one_from_file oder select_multiple_from_file. Die Verwendung separater Dateien kann die Verwaltung längerer Antwortlisten vereinfachen und die Wiederverwendung von Antwortlisten in verschiedenen Umfragen erleichtern. Es werden drei Dateiformate unterstützt: CSV-, XML- und GeoJSON-Dateien. Siehe Anwendungsbeispiele unten:

survey
typenamelabelAuswahlfilter
select_multiple_from_file country.csvlivIn welchen Ländern hast du gelebt?
select_one_from_file countries.xmlcouIn welchem Land lebst du jetzt?
select_one_from_file cities.xmlcitWas ist die nächstgelegene Stadt?country=${cou}
select_one_from_file households.csvhhWähle die Haushaltsnummer aus

Die Dateien müssen ein bestimmtes Format aufweisen. Eine CSV-Datei muss Spalten enthalten, die den Wert und die Bezeichnung der Optionen. Wenn du die Spaltennamen Name und die Bezeichnung verwendest, werden diese automatisch verwendet. Du kannst auch die zu verwendenden Spalten angeben.

Eine XML-Datei muss die folgende Struktur aufweisen:

<root>
    <item>
        <name/>
        <label/>
        ...
    </item>
</root>

Ein GeoJSON erfordert, dass jedes Feature über eine ID und eine Titel-Eigenschaft verfügt. Das GeoJSON muss durch eine einzige FeatureCollection auf oberster Ebene definiert sein. Weitere Informationen findest du in der ODK-Dokumentation.

CSV-, XML- und GeoJSON-Dateien können zusätzliche Spalten, XML-Knoten oder Merkmale und benutzerdefinierte Eigenschaften enthalten, solange die oben genannten grundlegenden Anforderungen erfüllt sind.

Dieser Fragetyp ist im Allgemeinen die bevorzugte Methode zum Erstellen von Auswahlfragen aus externen Daten, da er am vielseitigsten ist und anwendungsübergreifend funktioniert. Allerdings können Auswahlen aus Dateien mit Zehntausenden von Optionen die Reaktionsgeschwindigkeit der Umfrage beeinträchtigen. Wenn du lange Auswahllisten hast, prüfe, ob deine Umfrage auf dem Gerät mit der geringsten Leistung, das dein Datenerfassungsteam verwenden wird, ausreichend reaktionsschnell ist. Wenn es zu langsam ist, solltest du die Verwendung von dynamischen Auswahlen aus vorgeladenen Daten in Betracht ziehen, sofern deine Datenerfassungsanwendung dies unterstützt.

Rang

Mit dem Rang-Widget können die Befragten eine Liste von Optionen ordnen. Die Antwort wird als geordnete, durch Leerzeichen getrennte Liste von Optionswerten, wobei alle Optionen immer enthalten sind. Die Syntax ist der von Multiple-Choice-Fragen sehr ähnlich.

survey
typenamelabel
Rang pizza_toppingsBelägeBestelle Pizza-Beläge mit deinem Lieblingsbelag
Auswahl
list_namenamelabel
PizzabelägeKäseKäse
PizzabelägePeperoniPeperoni
PizzabelägeWurstWurst

Um Verzerrungen zu vermeiden, wird oft empfohlen, die Zufallsfunktion in Verbindung mit diesem Widget zu verwenden.

Bereich

Um die Eingabe von ganzen Zahlen oder Dezimalzahlen auf einen bestimmten Bereich zu beschränken, kannst du die Bereichsfrage verwenden. Diese Frage kann mit drei optionalen, durch Leerzeichen getrennten Parametern verwendet werden: Start, Ende und Schritt in einer Parameterspalte. Die Standardwerte sind jeweils 1, 10 und 1.

Das folgende Beispiel erstellt eine Frage, die Eingaben von 0 bis 17 mit einem Schritt von 1 zulässt. Die Verwendung eines Dezimalschritts führt dazu, dass Dezimalwerte erfasst werden.

survey
typenamelabelparameters
rangeamountWie alt ist das Kind?start=0 end=17 step=1

Um eine Bereichsfrage als Bewertungs-Widget mit Sternen anzuzeigen, kannst du das Bewertungs-Layout wie unten gezeigt hinzufügen:

survey
typenamelabelappearanceparameters
rangeratingWelche Bewertung gibst du?ratingstart=1 end=5 step=1

Metadaten

XLSForm bietet eine Reihe von Datentypoptionen für die Metadatenerfassung:

MetadatentypBedeutung
startStartdatum und -zeit der Umfrage.
endEnddatum und -zeit der Umfrage.
todayTag der Umfrage.
deviceidEindeutige Client-Kennung. Kann vom Benutzer zurückgesetzt werden.
phonenumberTelefonnummer (falls vorhanden).
usernameKonfigurierter Benutzername (falls vorhanden).
emailKonfigurierte E-Mail-Adresse (falls vorhanden).
auditVerhalten des Enumerators während der Dateneingabe protokollieren

Beachte, dass einige Metadatenfelder nur für Umfragen auf Mobiltelefonen gelten.

Wenn du beispielsweise alle diese Arten von Metadaten erfassen möchtest, füge Folgendes in deine Umfrage ein (in der Regel am Anfang, es kann jedoch an einer beliebigen Stelle in der Umfrage stehen):

survey
typenamelabelparameters
startStart
endend
todayheute
deviceidGeräte-ID
phonenumberTelefonnummer
usernameBenutzername
emailE-Mail
auditAudit[optional, siehe unten]

Beachte, dass den Metadaten-Fragearten keine Beschriftungen zugeordnet sind. Das liegt daran, dass das Telefon diese Variablen automatisch erfasst. Diese Fragen werden nicht auf dem Bildschirm des Telefons angezeigt, aber du siehst sie, wenn du deine übermittelten Umfragedaten einsehen. Das Tutorial XLSForm zeigt, wie Metadaten in einer Umfrage verwendet werden.

Hinweise (hints)

Allgemeine Hinweise

Manchmal möchtest du einer Frage in deiner Umfrage einen kleinen Hinweis hinzufügen, der dem Benutzer erklärt, wie er die Frage beantworten soll, aber du möchtest nicht, dass der Hinweis Teil der Frage selbst ist. In XLSForms ist es ganz einfach, Fragen mit Hinweisen zu versehen. Füge einfach eine Hinweisspalte hinzu und gib deine Hinweismeldung ein. Ein Beispiel findest du unten.

survey
typenamelabelhint
textnameWie heißt dieses Geschäft?Schau auf das Schild, falls das Geschäft ein Schild hat.
geopointgeopointErfasse die GPS-Koordinaten dieses Ladens.

Das Tutorial XLSForm enthält weitere Beispiele für Fragen mit Hinweisen.

Formeln

Formeln werden in den Spalten „Einschränkung”, „Relevant”, „Berechnung” und „Auslöser” sowie optional auch in den Spalten „Standard” und „Erforderlich” verwendet. Mit Formeln kannst du deinen Umfragen zusätzliche Funktionen und Maßnahmen zur Datenqualität hinzufügen.

Formeln bestehen aus Funktionen und Operatoren (+, *, div usw.). Eine gut dokumentierte vollständige Liste der Operatoren und Funktionen findest du in der ODK-Dokumentation. Für technisch Interessierte ist die zugrunde liegende XForms-Spezifikation das eigentliche Quelldokument für die unterstützten Funktionen.

Werte in Auswahllisten oder angehängten Dateien nachschlagen

Du kannst Werte aus Listen abrufen, die im Auswahlblatt, in angehängten CSV-Dateien, in angehängten GeoJSON-Dateien und angehängten XML-Dateien abfragen, indem du die Instanzfunktion verwendest. Du verwendest dabei folgende allgemeine Struktur:

instance('list_name')/root/item[Filterausdruck]/gewünschte_Eigenschaft

Die Instanzfunktion benötigt den Namen der Liste, in der du nach einem Wert suchen möchtest. Bei Listen, die im Auswahlblatt angegeben sind, ist dies der list_name. Bei angehängten Dateien verwendest du den Dateinamen ohne die Erweiterung. Zum Beispiel:

  • Um Werte in einer im Auswahlblatt definierten Obstliste nachzuschlagen, verwende instance('fruits')
  • Um Werte in einer participants.csv-Datei nachzuschlagen, verwendest du instance('participants')
  • Um Werte in einer „places.geojson”-Datei nachzuschlagen, verwendest du instance('places')

Der nächste Teil des Ausdrucks lautet /root/item[Filterausdruck]. /root/item bedeutet, dass jedes Element in die Liste, und der angegebene Filterausdruck wird verwendet, um Elemente einzubeziehen, für die der Ausdruck wahr und Elemente auszuschließen, für die der Ausdruck falsch ist. Es handelt sich um denselben Ausdruck, der auch in der Spalte „choice_filter” verwendet wird. Die gängigste Art von Filterausdruck sucht nach einer exakten Übereinstimmung in der name Spalte eines Elements:

  • Um das Element in participants.csv mit dem Namen eines gescannten Barcodes abzurufen: instance('participants')/root/item[name=${barcode_id}]
  • Um das Element in participants.csv mit dem Namen eines Werts, der aus einer Auswahl stammt, abzurufen: instance('participants')/root/item[name=${participant}]

Der letzte Teil des Ausdrucks ist ein Eigenschafts- oder Spaltenname, auf den zugegriffen wird, um die Elemente abzurufen, die dem Filterausdruck entsprechen:

  • Um das Alter eines Teilnehmers abzurufen, dessen Ausweis gescannt wurde: instance('participants')/root/item[name=${barcode_id}]/age
  • Um den Vornamen eines aus einer Liste ausgewählten Teilnehmers abzurufen: instance('participants')/root/item[name=${participant}]/fname

Dies ist in der Regel die bevorzugte Methode zum Abrufen von Werten aus angehängten Dateien, da sie am vielseitigsten ist und anwendungsübergreifend funktioniert. Das Abrufen von Werten aus Dateien mit mehreren Zehntausend Optionen kann jedoch die Reaktionsgeschwindigkeit der Umfrage beeinträchtigen. Wenn du lange Auswahllisten hast, prüfe, ob deine Umfrage auf dem Gerät mit der geringsten Leistung, das dein Datenerfassungsteam verwenden wird, ausreichend reaktionsschnell ist. Sollte es zu langsam sein, ziehe die Verwendung von pulldata() in Betracht, sofern deine Datenerfassungsanwendung dies unterstützt.

Diese Ausdrücke verwenden eine Teilmenge von XPath 1.0. Der Filterausdruck in eckigen Klammern kann ein beliebiger Ausdruck sein, der zu „wahr” oder „falsch” ausgewertet wird, einschließlich der Verwendung von Funktionen.

Externe CSV-Daten

Wenn du eine CSV-Datei an deine Umfrage anhängen möchtest, um darin Werte nachzuschlagen, hast du mehrere Möglichkeiten. Wenn du eine Auswahl aus den Werten dieser CSV erstellen musst, kannst du select_one_from_file verwenden. Dadurch wird die CSV an deine Umfrage angehängt und du kannst darin Werte nachschlagen, wie oben beschrieben.

Wenn du keine Auswahl aus den Werten in deiner CSV-Datei erstellen musst, kannst du den Typ csv-external verwenden und den Namen der Datei ohne Dateiendung angeben:

survey
typenamelabelcalculation
csv-externalTeilnehmer
barcodeIDID scannen
calculateVornameinstance('participants')/root/item[participant_id=${id}]/fname

Das obige Beispielformular fügt die participants.csv Liste an die Umfrage an. Anschließend wird nach einem Barcode-Scan gefragt und verwendet den gescannten Wert, um den Teilnehmer mit der passenden ID in der participant_id Spalte. Der Wert in der Vorname Spalte wird in der Vorname berechnen.

Einschränkungen (constraint)

Eine Möglichkeit, die Datenqualität sicherzustellen, besteht darin, den Datenfeldern in deiner Umfrage Einschränkungen hinzuzufügen. Wenn du beispielsweise nach dem Alter einer Person fragst, möchtest du unmögliche Antworten wie -22 oder 200 vermeiden. Das Hinzufügen von Datenbeschränkungen in deiner Umfrage ist ganz einfach. Füge einfach eine neue Spalte namens constraint hinzu und gib die Formel ein, die die Grenzen für die Antwort festlegt. Im folgenden Beispiel muss die Antwort für das Alter der Person kleiner oder gleich 150 sein. Beachte, wie das . in der Formel auf die Fragevariable verweist.

survey
typenamelabelconstraint
integerAlterWie alt bist du?. <= 150

In diesem Beispiel besagt die Formel . <= 150, dass der eingegebene Wert . Die Antwort auf die Frage muss kleiner oder gleich 150 sein. Wenn der Benutzer 151 oder mehr als Antwort eingibt, darf er nicht zur nächsten Frage übergehen oder die Umfrage absenden.

Weitere nützliche Ausdrücke für die Spalte constraint findest du hier. Schau unter dem Abschnitt Operatoren nach.

Einschränkungsmeldung

Wenn du deiner Einschränkung eine Meldung hinzufügen möchtest, die dem Benutzer erklärt, warum die Antwort nicht akzeptiert wird, kannst du deiner Umfrage eine Spalte constraint_message hinzufügen. Siehe das folgende Beispiel.

survey
typenamelabelconstraintconstraint_message
integerAlter des BefragtenAlter des Befragten. >=18Der Befragte muss mindestens 18 Jahre alt sein, um an der Umfrage teilzunehmen.

Wenn der Benutzer in diesem Beispiel ein Alter unter 18 Jahren eingibt, wird die Fehlermeldung in der Spalte constraint_message angezeigt. Weitere Beispiele zu Einschränkungen sind in diesem XLSForm dargestellt.

Relevant

Eine großartige Funktion von XLSForm ist die Möglichkeit, eine Frage zu überspringen oder eine zusätzliche Frage anzuzeigen, je nach Antwort auf eine vorherige Frage. Nachfolgend findest du ein Beispiel dafür, wie dies durch Hinzufügen einer Spalte relevant für eine „select_one”-Frage umgesetzt werden kann, wobei wir unser vorheriges Beispiel mit den Pizzabelägen verwenden:

survey
typenamelabelrelevant
select_one ja_neinmag_PizzaMagst du Pizza?
select_multiple Pizzabeläge oder_anderesLieblingsbelagLieblingsbelag${mag_Pizza} = 'ja'

In diesem Beispiel wird der Befragte gefragt: „Magst du Pizza?” Wenn die Antwort Ja lautet, erscheint unten die Frage nach dem Pizzabelag. Beachte die ${ } Klammern um die Variable mag_Pizza. Diese sind erforderlich, damit die auf die Variable aus der vorherigen Frage verweisen kann.

Die Festlegung der Relevanz basierend auf dem Wert einer select_multiple-Frage unterscheidet sich geringfügig von dem Beispiel im obigen Beispiel:

survey
typenamelabelrelevant
select_one ja_neinmag_PizzaMagst du Pizza?
select_multiple PizzabelägeLieblingsbelagWas sind deine Lieblings-Pizzabeläge?${mag_Pizza} = 'ja'
choices
list_namenamelabel
PizzabelägeKäseKäse
PizzabelägePeperoniPeperoni
PizzabelägeWurstWurst

Da bei der Frage nach dem Pizzabelag mehrere Antworten möglich sind, müssen wir die Funktion selected(${Lieblingsbelag}, 'Käse') verwenden, da die Frage nach dem Käse jedes Mal erscheinen soll, wenn der Benutzer Käse als eine der Antworten auswählt (unabhängig davon, ob weitere Antworten ausgewählt werden).

Im Abschnitt „Sonstiges angeben” wird erwähnt, dass die Funktion „relevance” verwendet werden kann, um bei Multiple-Choice-Fragen eine Freitext-Option „Sonstiges” anzugeben. Die Vorteile dieser Vorgehensweise gegenüber der Verwendung der Abkürzung or_other bestehen darin, dass du die Kontrolle über den Namen der Auswahlmöglichkeit hast, den Text festlegen kannst, den der Benutzer sieht, und dass dies auch bei mehrsprachigen Umfragen funktioniert. Hier ist ein Beispiel:

survey
typenamelabelrelevant
select_multiple pizza_toppingsLieblingsbelägeWas sind deine Lieblings-Pizzabeläge?
textLieblingsbeläge_SonstigesWelche anderen Beläge magst du?selected(${Lieblingsbeläge}, 'Sonstiges')
choices
list_namenamelabel
PizzabelägeKäseKäse
PizzabelägePeperoniPeperoni
PizzabelägeWurstWurst
PizzabelägeSonstigesSonstiges

Beachte, dass du Sonstiges als Antwortmöglichkeit in das Arbeitsblatt Antwortmöglichkeiten aufnehmen musst.

Berechnung

Deine Umfrage kann Berechnungen anhand der Werte aus den vorhergehenden Fragen durchführen. In den meisten Fällen ist die Verwendung einer Frage vom Typ Berechnung angemessen. In der folgenden Umfrage haben wir beispielsweise das Trinkgeld für eine Mahlzeit berechnet und es dem Benutzer angezeigt:

survey
typenamelabelcalculation
decimalBetragWie viel hat das Essen gekostet?
calculateTrinkgeld${Betrag} * 0,18
noteAnzeigen18 % Trinkgeld für deine Mahlzeit beträgt: ${Trinkgeld}

Beachte, dass das ${Trinkgeld} in der letzten Zeile beim Anzeigen und Ausfüllen der Umfrage durch den tatsächlichen Trinkgeldbetrag ersetzt wird.

Der Berechnungstyp dient zur Berechnung von Text, Berechnungen können jedoch auch zu jedem anderen Fragetyp hinzugefügt werden. Nicht-Text-Typen können für die Datenanalyse nützlich sein, z. B. wenn ein Datum oder eine Datums- und Zeitangabe berechnet wird. Wenn keine Beschriftung und kein Hinweis angegeben sind, wird die Berechnung ausgeblendet. Siehe das folgende Beispiel, das dem vorherigen Formular entspricht:

survey
typenamelabelhintcalculation
decimalBetragWie viel hat das Essen gekostet?
textTrinkgeld${Betrag} * 0,18
noteAnzeige18 % Trinkgeld für deine Mahlzeit beträgt: ${Trinkgeld}

Und dies ist ein Beispiel dafür, wann aufgrund von Anforderungen an die Datenanalyse ein Nicht-Text-Typ benötigt wird:

survey
typenamelabelhintcalculation
dateTagtoday()

Beachte, dass die Verwendung von Berechnungstypen, die kein Text sind, keinen Einfluss auf die Verwendung des Berechnungsergebnisses innerhalb der Umfrage selbst hat. Dies ist ein häufiges Missverständnis.

Wenn eine Beschriftung oder ein Hinweis angegeben wird, wird die Frage in der Umfrage angezeigt und der berechnete Wert erscheint im Eingabefeld oder Widget. Dies wird im Allgemeinen nur für schreibgeschützte Fragen empfohlen, um eine Neuberechnung (und damit das Löschen) eines vom Benutzer eingegebenen Werts zu vermeiden. Siehe das folgende Beispiel:

survey
typenamelabelreadonlycalculation
decimalBetragWie viel hat das Essen gekostet?
noteAnzeige18 % Trinkgeld für dein Essen betragen:${Betrag} * 0,18
dateheuteDas heutige Datum ist:truetoday()

Beachte den Unterschied zum ersten Formular in diesem Abschnitt: Der berechnete Trinkgeldbetrag wird hier anders angezeigt. Im ersten Beispiel wurde er in der Beschriftung angezeigt, im letzten Beispiel hingegen in einem schreibgeschützten Eingabefeld.

Erforderlich

Es ist ganz einfach, bestimmte Fragen in deiner Umfrage als Pflichtfelder zu kennzeichnen. Wenn du sie als Pflichtfelder kennzeichnest, kann der Benutzer nicht zur nächsten Frage übergehen oder die Umfrage absenden, ohne eine Antwort auf diese Frage eingegeben zu haben.

Um Fragen als Pflichtfelder zu kennzeichnen, füge deinem Umfrage-Arbeitsblatt eine Spalte erforderlich hinzu. Markiere die Fragen in dieser Spalte als Pflichtfelder, indem du ja eintragst. Siehe das folgende Beispiel:

survey
typenamelabelconstrainterforderlich
integerAlterWie alt bist du?. <= 150ja

Erforderliche Meldung

Wenn du die Meldung anpassen möchtest, die Benutzern angezeigt wird, wenn sie eine Pflichtfrage leer lassen, kannst du deiner Umfrage eine Spalte required_message hinzufügen. Siehe das Beispiel unten.

survey
typenamelabelrequiredrequired_message
integerAlter des BefragtenAlter des BefragtenjaEntschuldigung, diese Antwort ist erforderlich.

Gruppierung von Fragen

Um eine Gruppe von Fragen in deiner Umfrage zu erstellen, verwende die Syntax begin_group…end_group.

survey
typenamelabel
begin_groupBefragterBefragter
textnameGib den Namen des Befragten ein
textPositionGib die Position des Befragten innerhalb der Schule ein.
end_group

Dies ist eine gute Möglichkeit, verwandte Fragen für den Datenexport und die Analyse zu gruppieren. Beachte, dass end_group keinen Namen oder keine Bezeichnung benötigt, da sie in der Umfrage ausgeblendet ist.

In deiner Umfrage kannst du die Darstellung als Feldliste für eine Gruppe verwenden, um mehrere Fragen auf demselben Bildschirm anzuzeigen.

Gruppen innerhalb von Gruppen verschachteln

Fragengruppen können ineinander verschachtelt werden:

survey
typenamelabel
begin_groupKrankenhausKrankenhaus
textnameWie heißt dieses Krankenhaus?
begin_grouphiv_medicationHIV-Medikamente
select_one Ja_Neinhave_hiv_medicationVerfügt dieses Krankenhaus über HIV-Medikamente?
end_group
end_group

Du musst immer zuerst die zuletzt erstellte Gruppe beenden. Die erste end_group, die du siehst, schließt beispielsweise die Gruppe „HIV-Medikamente”, und die zweite schließt die Gruppe „Krankenhaus”. Wenn du mit Gruppen arbeitest und beim Hochladen deiner Umfrage immer wieder Fehlermeldungen erhältst, überprüfe bitte, ob du für jede begin_group eine end_group hast.

Überspringen

Eine praktische Funktion von XLSForm ist die Möglichkeit, eine Gruppe von Fragen zu überspringen, indem man die Gruppenfunktion mit der entsprechenden Syntax kombiniert. Wenn du eine Gruppe von Fragen auf einmal überspringen möchtest, setze das entsprechende Attribut wie folgt an den Anfang einer Gruppe:

survey
typenamelabelrelevant
integerAlterWie alt bist du?
begin_groupKindKind${Alter} <= 5
integerMUACErfasse den Oberarmumfang dieses Kindes.
select_one ja_neinmrdtIst der Schnelltest des Kindes positiv?
end_group

Im obigen Beispiel werden die beiden Fragen zur Untergruppe (muac und mrdt) nur angezeigt, wenn das Alter des Kindes aus der ersten Frage fünf Jahre oder weniger beträgt.

Unterstützung mehrerer Sprachen

Es ist ganz einfach, eine Umfrage um mehrere Sprachen zu erweitern. Du musst lediglich deine Beschriftungen wie folgt benennen: label::language1 (Code), label::language2 (Code) usw., und schon sind deine Umfragen in mehreren Sprachen verfügbar. Siehe das folgende Beispiel. Wähle im Pulldown-Menü der Datenerfassungsanwendung (dieses befindet sich möglicherweise unter der Menütaste) eine andere Umfragesprache aus. Für das untenstehende Formular werden Englisch und Spanisch als mögliche Optionen angezeigt.

survey
typenamelabel::English (en)label::Español (es)constraint
integerAlterWie alt bist du?¿Cuántos años tienes?. <= 150

Du kannst auch verschiedene Sprachspalten für Hinweise und Mediendateien hinzufügen, indem du die ::language (Code) Syntax verwendest. Siehe auch die XLSForm-Referenz, die eine Liste aller Spaltenüberschriften enthält, bei denen eine Sprachänderung vorgenommen werden kann.

survey
hint::Englisch (en)hint::Niederländisch (nl)image::Englisch (en)image::Niederländisch (nl)
ein Hinweiseen hintold_person_cartoon.pngouwe_strip.png

Die Sprache der Umfrage und die Sprache der Benutzeroberfläche können von der Anwendung separat festgelegt werden und stimmen möglicherweise nicht überein. Um (in Zukunft) eine Übereinstimmung beider Sprachen zu erleichtern, wird empfohlen – wenn auch optional –, einen zweistelligen Sprachcode hinter dem Sprachnamen anzufügen. Die offiziellen zweistelligen Sprachcodes, sogenannte Subtags, sind hier veröffentlicht (durchsuchen Sie die Seite mit Strg-F oder Cmd-F).

Wenn deine Umfrage mehrere Sprachen definiert und du eine Sprache für die Datenerfassung festlegen möchtest, lege eine explizite Standardsprache fest. Dies geschieht im Einstellungsblatt des XLSForms, indem du die Sprache in der Spalte default_language angibst. Im folgenden Beispiel ist die Standardsprache Französisch.

settings
form_idversiondefault_language
test_form101French (fr)

Standard (Default)

Das Hinzufügen eines Standardfelds bedeutet, dass eine Frage beim ersten Anzeigen für den Benutzer bereits mit einer Antwort vorbelegt ist. Dies kann Zeit sparen, wenn es sich um eine häufig ausgewählte Antwort handelt, oder dem Benutzer zeigen, welche Art von Antwort erwartet wird. Siehe das Beispiel unten.

survey
typenamelabeldefault
dateUmfragedatumErhebungsdatum?15.06.2010
decimalGewichtGewicht des Befragten? (in kg)51,3

Der Befragte kann die Antwort ganz einfach ändern, indem er auf das Antwortfeld tippt und eine andere Antwort eingibt.

Du kannst auch eine Standardberechnung hinzufügen, die nur einmal berechnet wird, wenn die Umfrage geladen wird oder – falls sich die Frage innerhalb einer Wiederholung befindet – wenn die Wiederholung hinzugefügt wird.

survey
typenamelabeldefault
datedGib das Datum ein, an dem das Ereignis stattfand?today()

Darstellung

In der Spalte appearance kannst du das Erscheinungsbild der Fragen in deiner Umfrage ändern. Die folgende Tabelle listet die möglichen Darstellungsattribute auf und zeigt, wie die Frage in der Umfrage angezeigt wird.

Erscheinungsbild-AttributFragetypBeschreibung
multilinetextAm besten für Webclients geeignet, macht das Textfeld mehrere Zeilen lang.
minimalselect_one, select_multipleAntwortmöglichkeiten erscheinen in einem Dropdown-Menü.
quickselect_oneNur für mobile Clients relevant, springt automatisch zur nächsten Frage nach Auswahl einer Antwort.
no-calendardateNur für mobile Geräte, unterdrückt die Kalenderanzeige.
month-yeardateErmöglicht die Auswahl von Monat und Jahr für das Datum.
yeardateErmöglicht die Auswahl nur eines Jahres für das Datum.
horizontal-compactselect_one, select_multipleNur für Webclients, zeigt Antwortmöglichkeiten horizontal an.
horizontalselect_one, select_multipleNur für Webclients, zeigt Antwortmöglichkeiten horizontal in Spalten an.
likertselect_oneAm besten für Webclients geeignet, zeigt Antwortmöglichkeiten als Likert-Skala an.
compactselect_one, select_multipleZeigt Antwortmöglichkeiten nebeneinander mit minimalem Abstand und ohne Radiobuttons oder Checkboxen an. Besonders nützlich bei Bildauswahlen.
quickcompactselect_oneWie vorher, springt aber automatisch zur nächsten Frage (nur für mobile Clients).
field-listgroupsDie gesamte Gruppe von Fragen erscheint auf einem Bildschirm (nur für mobile Clients).
labelselect_one, select_multipleZeigt die Beschriftungen der Antwortmöglichkeiten an (nicht die Eingabefelder).
list-nolabelselect_one, select_multipleWird in Kombination mit dem Label-Attribut verwendet, zeigt die Antwort-Eingabefelder ohne Beschriftungen an (bei mobilen Clients die Felder label und list-nolabel in eine Gruppe mit dem Attribut field-list setzen).
table-listgroupsEinfacherer Weg, um das gleiche Erscheinungsbild wie oben zu erreichen; wende dieses Attribut auf die gesamte Gruppe von Fragen an (kann die Umfrage etwas verlangsamen).
signatureimageErmöglicht das Zeichnen einer Unterschrift in die Umfrage (nur für mobile Clients).
drawimageErmöglicht das Skizzieren einer Zeichnung mit dem Finger auf dem Bildschirm des mobilen Geräts.
map, quick mapselect_one, select_one_from_fileErmöglicht die Auswahl einer Option aus vielen Merkmalen auf einer Karte.

Eine XLSForm mit allen Darstellungsattributen in dieser Tabelle ist hier verfügbar.

Einstellungs-Arbeitsblatt

Das Einstellungs-Arbeitsblatt ist optional, es wird jedoch dringend empfohlen, zumindest form_title, form_id und version anzugeben. Mit weiteren Einstellungen kannst du deine Umfrage noch individueller anpassen, beispielsweise durch Festlegen eines allgemeinen Stilthemas oder durch Verschlüsseln deiner Datensätze.

Nachfolgend findest du ein Beispiel für ein Einstellungsblatt:

settings
form_titleform_idversioninstance_namedefault_languagepublic_key
Beispielex_id2017021501concat(${Vorname}, ' ', ${Nachname})English (en)IIBIjANBg...

Die verfügbaren Spaltenüberschriften für die Einstellungen sind:

  • form_title: Der Titel der Umfrage, der den Benutzern angezeigt wird. Der Umfragetitel wird aus form_id übernommen, wenn form_title leer ist oder fehlt.
  • form_id: Der Name, der zur eindeutigen Identifizierung der Umfrage auf dem Server verwendet wird. Die Umfrage-ID wird aus dem Namen der XLS-Datei übernommen, wenn form_id leer ist oder fehlt.
  • version: Zeichenfolge, die diese Version angibt. Eine gängige Konvention ist die Verwendung von Zeichenfolgen im Format „yyyymmddrr”. Beispielsweise steht 2017021501 für die erste Überarbeitung vom 15. Februar 2017.
  • instance_name: Ausdruck, der Umfragefelder verwendet, um jede Umfrageübermittlung zu identifizieren. Weitere Informationen.
  • default_language: In lokalisierten Umfragen legt dies fest, welche Sprache als Standard verwendet werden soll. Es sollte dasselbe Format wie beim Hinzufügen von Übersetzungen verwendet werden, einschließlich des Sprachcodes.
  • public_key: Bei Umfragen mit Verschlüsselung wird hier der öffentliche Schlüssel eingefügt. Weitere Informationen.
  • submission_url: Diese URL kann verwendet werden, um den Standard-Server zu überschreiben, an den abgeschlossene Datensätze übermittelt werden sollen. Mehr erfahren.
  • style: Geben Sie für Webumfragen den Umfragestil an. Weitere Informationen.
  • name: Name des XForms-Stammknotens. Dies ist selten erforderlich, mehr erfahren.
  • clean_text_values: Diese Spalte kann verwendet werden, wenn ja oder nein um zu steuern, ob Leerzeichen in der Umfrage ausgeblendet ist (Standardwert ist „ja”).

Umfragen mit mehreren Seiten

Webumfragen können mithilfe des Stils Theme Pages auf mehrere Seiten aufgeteilt werden.

Ein Beispiel für eine Umfrage, die auf mehrere Seiten aufgeteilt ist, findest du im Webformular „Widgets auf Seiten”. Erstelle auf der Registerkarte Einstellungen eine Spalte mit dem Namen Stil und lege diese wie folgt auf Seiten fest:

settings
form_titleform_idstyle
BeispieltitelBeispiel-IDSeiten

Gruppiere auf der Registerkarte Umfrage die Fragen, die auf jeder Seite erscheinen sollen, und lege dann die Darstellung der Gruppe auf Feldliste fest. Siehe das folgende Beispiel.

survey
typenamelabelappearance
begin_groupGruppe1Feldliste
textnameName des Befragten
integerAlterAlter des Befragten
textAdresseAdresse des Befragten
end_group

Weitere Informationen zum Erstellen mehrseitiger Webumfragen findest du in diesem Blogbeitrag. Den Quellcode für XLSForm findest du hier.

Umfragen im Raster-Design

Der Grid-Stil ermöglicht es deiner Umfrage, das Aussehen traditioneller Papierfragebögen nachzuahmen, indem mehrere Fragen in einer Zeile zusammengefasst werden. Dieser Stil eignet sich am besten für größere Bildschirme (z. B. Computer oder Tablets). Außerdem lässt er sich gut ausdrucken!

Bitte klicke auf den Link, um ein Beispiel für ein Webformular im Grid-Design zu sehen.

Um eine Umfrage im Raster-Stil zu erstellen, gib auf der Registerkarte Einstellungen in der Spalte Stil wie folgt theme-grid ein:

settings
form_titleform_idstyle
BeispieltitelBeispiel-IDtheme-grid

Gruppiere auf der Registerkarte Umfrage die Fragen, die in den einzelnen Abschnitten erscheinen sollen, und lege dann die Darstellung für jedes Feld entsprechend der gewünschten Breite fest (die Standardbreite ist 4). Siehe das folgende Beispiel.

survey
typenamelabelappearance
begin_groupGruppe1
textnameName des Befragtenw3
integerAlterAlter des Befragtenw1
textAdresseAdresse des Befragtenw4
end_group

Weitere Informationen zum Erstellen von Grid-Umfragen findest du in diesem Blogbeitrag. Das XLSForm-Beispiel für das Grid-Theme findest du hier.

Tools, die XLSForms unterstützen

Weitere Ressourcen

Wenn du dich eingehender mit XForms befassen und über die Informationen zu XLSForms auf dieser Website hinausgehen möchtest, findest du hier einige Ressourcen:

Geschichte

XLSForm wurde ursprünglich von Andrew Marder und Alex Dorey vom Sustainable Engineering Lab der Columbia University entwickelt. Als XLSForms von der ODK-Community übernommen wurden, arbeitete SEL mit dem ODK-Team zusammen, um die aktuelle Spezifikation zu entwickeln. PyXForm, die Bibliothek zur Konvertierung von XLSForms in XForms, ist ein Open-Source-Projekt, das von Mitgliedern von ODK, Ona, SurveyCTO und KoBoToolbox unterstützt wird.