Das Moodle-XML-Format erklärt, mit Beispiel zum Herunterladen
Moodle XML ist das Dateiformat, mit dem Moodle Fragen aus einer Fragensammlung exportiert und in einen anderen Kurs oder eine andere Website importiert. Es unterstützt alle Standard-Fragetypen, und Bilder und Formeln stecken direkt in der Datei. Deshalb schreiben Tools, die Tests in Moodle-Fragen umwandeln, genau dieses Format. Von Hand schreiben müssen Sie es selten, aber wenn ein Import schiefgeht oder sich eine Frage anders verhält als erwartet, hilft es zu wissen, was darin steht.
Diese Seite geht eine echte Datei Teil für Teil durch. Beide Dateien des Beispiels können Sie herunterladen: einen kurzen Word-Test und die Moodle-XML-Datei, die der kostenlose ExamQR-Test-Konverter daraus erstellt hat.
Das Beispiel herunterladen
- Der Word-Test (moodle-xml-example-de.docx): neun Fragen in vier Teilen, mit einem Bild und einer Gleichung.
- Die Moodle-XML-Datei (moodle-xml-example-de.xml): bereit für den Import in einen Testkurs.
Der Aufbau einer Datei
Eine Moodle-XML-Datei ist ein Element <quiz>, das eine Liste von <question>-Elementen enthält. Das Attribut type gibt an, was jedes davon ist. Das Beispiel enthält diese Typen:
| Typ | Was es ist | Im Beispiel |
|---|---|---|
category | Keine Frage: die Kategorie der Fragensammlung, in der die folgenden Fragen gespeichert werden | Eine pro Teil des Tests |
multichoice | Multiple Choice mit einer oder mehreren richtigen Antworten | Fragen 1 bis 5 |
truefalse | Eine einzelne Aussage, die richtig oder falsch ist | Frage 6, eine pro Aussage |
numerical | Eine Antwort, die eine Zahl ist, mit optionaler Toleranz | Frage 7 |
shortanswer | Ein eingetipptes Wort oder eine Wortgruppe, verglichen mit den akzeptierten Antworten | Frage 8 |
essay | Eine geschriebene Antwort, die eine Lehrkraft bewertet | Frage 9 |
Moodle kennt außerdem matching, description (Text ohne Antwort, etwa ein Lesetext), gapselect, ddwtos und weitere. Fragen von Typen, die durch Plugins hinzukommen, lassen sich nur auf Websites importieren, auf denen diese Plugins installiert sind.
Kategorien
<question type="category">
<category>
<text>$course$/top/moodle-xml-example/Teil 1. Multiple Choice</text>
</category>
</question>
Jede Frage nach diesem Eintrag kommt in die Kategorie Teil 1. Multiple Choice, innerhalb einer nach der Datei benannten Kategorie, ganz oben in der Fragensammlung des Kurses ($course$). Auf der Importseite von Moodle entscheidet Kategorie aus Datei übernehmen (Get category from file), ob diese Einträge verwendet werden. Entfernen Sie das Häkchen, um stattdessen alle Fragen in die Kategorie zu legen, die Sie auswählen.
Was jede Frage hat
<question type="multichoice">
<name><text><![CDATA[Q1: Welches Gerät behält die Daten, wenn der Computer ausgesc...]]></text></name>
<questiontext format="html">
<text><![CDATA[<p>Welches Gerät behält die Daten, wenn der Computer ausgeschaltet ist?</p>]]></text>
</questiontext>
<generalfeedback format="html"><text></text></generalfeedback>
<defaultgrade>1.0000000</defaultgrade>
<penalty>0.0000000</penalty>
<hidden>0</hidden>
…
- name ist das, was Sie in der Liste der Fragensammlung sehen, nicht das, was die Lernenden sehen. Der Konverter beginnt ihn mit der Fragenummer, damit die Sammlung Ihre Reihenfolge behält.
- questiontext ist die Frage als HTML. Dank
CDATAkann das HTML in der XML-Datei stehen, ohne dass jedes<maskiert werden muss. - generalfeedback wird den Lernenden nach dem Antworten angezeigt, wenn die Überprüfungsoptionen des Tests das erlauben. Ein Lösungsweg, der in der Word-Datei unter „Lösung:“ steht, landet hier.
- defaultgrade sind die Punkte der Frage; penalty ist der Abzug für jeden falschen Versuch in Tests, die mehrere Versuche erlauben.
Multiple Choice
<single>true</single>
<shuffleanswers>true</shuffleanswers>
<answernumbering>ABCD</answernumbering>
<answer fraction="0"><text><![CDATA[RAM]]></text></answer>
<answer fraction="100"><text><![CDATA[Festplatte]]></text></answer>
<answer fraction="0"><text><![CDATA[CPU-Cache]]></text></answer>
<answer fraction="0"><text><![CDATA[Grafikkarte]]></text></answer>
- fraction ist der Anteil der Punkte, den eine Antwort bringt, in Prozent: 100 für die richtige, 0 für die anderen.
- single ist
truebei einer richtigen Antwort (Optionsfelder) undfalse, wenn mehrere richtig sind (Kontrollkästchen). In Frage 5 des Beispiels haben Python und Java jeweilsfraction="50"und die beiden falschen Optionenfraction="-100", sodass ein falsches Kreuz die Punkte aufhebt; Moodle geht bei einer Frage nie unter null. - shuffleanswers erlaubt Moodle, die Optionen für jede Person neu anzuordnen, wenn der Test das ebenfalls zulässt. Frage 2 endet mit „Alle oben genannten“, das an letzter Stelle bleiben muss, und Moodle kann keine einzelne Option festsetzen. Deshalb schreibt der Konverter für diese Frage
falseund weist Sie darauf hin.
Richtig oder falsch
Die Moodle-Frage truefalse enthält genau eine Aussage. Eine Word-Frage mit vier Aussagen a) bis d) wird daher zu vier Moodle-Fragen, jede mit einem Viertel der Punkte (defaultgrade 0.25), und die gemeinsame Anweisung steht über jeder Aussage noch einmal:
<question type="truefalse">
<questiontext format="html"><text><![CDATA[<p>Entscheiden Sie bei jeder Aussage über Netzwerke, ob sie richtig oder falsch ist.</p>
<p><b>b)</b> Das Internet ist ein einziges Netzwerk, das einem Unternehmen gehört.</p>]]></text></questiontext>
<defaultgrade>0.2500000</defaultgrade>
<answer fraction="0"><text>true</text></answer>
<answer fraction="100"><text>false</text></answer>
Kurzantworten und Zahlen
<question type="numerical">
…
<answer fraction="100"><text>11</text><tolerance>0</tolerance></answer>
<question type="shortanswer">
…
<usecase>0</usecase>
<answer fraction="100"><text>Strg+C</text></answer>
- Eine Antwort, die eine Zahl ist, wird zu
numerical, sodass „11“, „11.0“ und „ 11“ alle akzeptiert werden. tolerance erlaubt einen Spielraum, zum Beispiel 0,5 bei Messwerten. - Andere Antworten werden zu
shortanswer. usecase 0 ignoriert Groß- und Kleinschreibung. Mehrere akzeptierte Antworten sind mehrere<answer>-Elemente, jedes mit fraction 100.
Freitext
<question type="essay">
…
<responseformat>editor</responseformat>
<responserequired>1</responserequired>
<responsefieldlines>15</responsefieldlines>
<attachments>0</attachments>
<graderinfo format="html"><text></text></graderinfo>
Freitextantworten bewertet eine Lehrkraft, deshalb gibt es keine richtige Antwort. responseformat editor gibt den Lernenden einen Texteditor mit 15 Zeilen. graderinfo sehen nur die Bewertenden; wenn Ihr Test für die Frage eine Musterlösung enthält, kommt sie dorthin.
Bilder
<questiontext format="html">
<text><![CDATA[<p>… Wie lang ist die längste Seite?</p>
<p><img src="@@PLUGINFILE@@/1794550042_7b72e5454d8ace18_001.png" alt="" /></p>]]></text>
<file name="1794550042_7b72e5454d8ace18_001.png" path="/" encoding="base64">iVBORw0KGgo…</file>
</questiontext>
Das Bild reist in der Datei mit. Das Element <file> enthält das Bild als Base64-Text, und das HTML verweist mit @@PLUGINFILE@@ darauf; Moodle ersetzt das nach dem Import durch die Adresse der gespeicherten Datei. Ein Link auf ein Bild auf einer anderen Website würde auch funktionieren, bricht aber, sobald sich diese Website ändert.
Formeln
<p>Welche Lösungen hat die Gleichung \(x^2-5x+6=0\)?</p>
Eine Word-Formel wird als TeX zwischen \( und \) geschrieben. Moodle zeigt sie über seinen MathJax-Filter als Formel an, der standardmäßig aktiviert ist. Sehen die Lernenden stattdessen den Code, bitten Sie die Moodle-Administration, den Filter MathJax für den Kurs zu aktivieren.
Das Beispiel importieren
- Öffnen Sie einen Kurs, in dem Sie testen können, und gehen Sie zu seiner Fragensammlung (im Kursmenü Mehr: Fragensammlung, in neueren Versionen Fragensammlungen).
- Wählen Sie Import, wählen Sie Moodle-XML-Format, ziehen Sie die .xml-Datei in das Dateifeld und klicken Sie auf Import.
- Moodle listet die gelesenen Fragen auf. Klicken Sie auf Weiter; die Fragen liegen in der Kategorie moodle-xml-example und ihren vier Teilen.
- Sehen Sie sich Frage 3 (das Bild) und Frage 4 (die Formel) in der Vorschau an, um zu prüfen, dass beide angezeigt werden.
Eine Datei von Hand bearbeiten
- Verwenden Sie einen reinen Texteditor, der in UTF-8 speichert, keine Textverarbeitung.
- Lassen Sie HTML innerhalb von
CDATA. Außerhalb davon schreiben Sie<für<und&für&. - Ein einziges nicht geschlossenes Tag genügt, und Moodle lehnt die ganze Datei ab. Öffnen Sie sie zuerst in einem Browser: Eine fehlerhafte Datei zeigt die Zeile des Fehlers an.
- Importieren Sie zuerst in einen Testkurs und erst dann in den echten Kurs, und sehen Sie sich einige Fragen in der Vorschau an.
Eine Datei aus Ihrem eigenen Word-Test erstellen
Schreiben Sie den Test wie gewohnt in Word, nach den Regeln im Spickzettel zum Word-Testformat. Öffnen Sie dann den kostenlosen Test-Konverter, laden Sie die Datei hoch und klicken Sie auf Moodle XML (.xml). Ein Konto ist nicht nötig. Der Konverter listet vor dem Download alles auf, was Moodle anders macht, zum Beispiel eine Mehrfachauswahlfrage, die Moodle mit Teilpunkten bewertet. Die vollständige Anleitung finden Sie unter einen Word-Test in Moodle importieren.
Häufige Fragen
Ist Moodle XML dasselbe wie GIFT oder Aiken? Nein. GIFT und Aiken sind reine Textformate, die man von Hand tippt; sie können keine Bilder in der Datei transportieren, und Aiken kennt nur Multiple Choice mit einer richtigen Antwort. Moodle XML ist länger, transportiert aber alles.
Können andere Systeme Moodle XML lesen? Manche ja, aber es ist das eigene Format von Moodle. Für Systeme, die QTI-2.1-Pakete importieren, erstellt der Konverter auch ein solches Paket. Canvas Classic Quizzes erwartet QTI 1.2 und liest dieses Paket daher nicht.
Warum zählt Moodle mehr Fragen, als mein Test hat? Weil manche Fragen zu mehreren Moodle-Fragen werden: Jede Richtig/Falsch-Aussage ist eine eigene Frage, und ein Lesetext wird zu einem Beschreibungselement vor seinen Fragen. Der Konverter sagt Ihnen, wie viele Moodle-Fragen er geschrieben hat.
Funktioniert das Beispiel auch in anderen Sprachen? Ja. Das Beispiel gibt es in jeder Sprache dieser Website; wechseln Sie oben auf der Seite die Sprache, um es herunterzuladen.