Moodle XMLフォーマット
XMLフォーマットは、小テストモジュールで使用される問題をインポートおよびエクスポートするためのMoodle固有のフォーマットです。このフォーマットはMoodleコミュニティ内で開発されましたが、他のソフトウェアが多かれ少なかれそれをサポートしている可能性があります。
有効性(およびCDATA)についての一言
XML パーサは、XML ファイルが正しく形成されていることを前提としており、エラーを検出したり報告したりしません。そうでない場合は、予期しないエラーが発生する可能性が高くなります。あなたがXMLファイルを手作業でコーディングしている場合、Moodleにインポートする前に、何らかのXML検証ツールに通すことを強くお勧めします。これを行う簡単な方法は、FirefoxまたはInternet Explorerを使って、XMLファイルを開くことです。
特に、埋め込まれたHTMLフラグメントはCDATAセクション内にある必要があることに注意してください。 CDATAの例:
<questiontext format="html">
<text><![CDATA[
Now I can include any HTML that I
wish. Without the CDATA, the HTML tags would break
the XML!!
]]>
</text>
</questiontext>
XMLファイルの全体的な構造
ファイルは以下のようにタグで囲まれています。xmlタグがファイルの最初の行であることを確認することは、重要です。最初の行が空白であったり、最初の行に追加のタグがあると、Moodle XMLパーサは混乱します。
<?xml version="1.0" ?>
<quiz>
.
.
.
</quiz>
<quiz>タグの中には、任意の数の<question>タグがあります。これらの<question>タグのうちの1つは、インポート/エクスポート用のカテゴリを指定するための category タイプのダミーの問題にすることができます。
<question type="category">
<category>
<text>$course$/XXXX</text>
</category>
</question>
ここで、XXXXは新しいカテゴリ名です。カテゴリが存在する場合、問題は既存のコースに追加されます。それ以外の場合は、新しいカテゴリが作成されます。これは、"ファイルからカテゴリを取得する" がオンになっている場合にのみ機能します。
同じファイルで複数のカテゴリを指定できます。新しいカテゴリを確立するたびに、別のダミーの 'カテゴリ' 問題を追加するだけで、それに続く問題がそこに配置されます。
ファイルはUTF8でエンコードする必要があります
Moodle XMLのインポートとエクスポートは機能的にバランスが取れているので、フォーマットを理解する必要がある場合は、いくつかの問題を作成してエクスポートするだけで、どのように見えるかを確認できます。
すべての問題タイプに共通のタグ
問題は次のように書かれています。
<question type="multichoice|truefalse|shortanswer|matching|cloze|essay|numerical|description">
<name>
<text>Name of question</text>
</name>
<questiontext format="html">
<text>What is the answer to this question?</text>
</questiontext>
.
.
.
</question>
XMLファイルをMoodleに正しくインポートするために、各問題には<name>タグおよび<question-text>タグが必要です。
"フォーマット"は、問題文のフォーマットオプションを選択します。オプションは、html (デフォルト)、moodleオートフォーマット、プレインテキスト および マークダウン です。選択肢は、テキストの表示方法に影響を与えます。
さらに、通常は少なくとも1つの<answer>タグを含むタグが、<question>タグの子ノードとしてドットでマークされたスペースに続きます。解答関連のタグは、このページの下の方に記載されています。様々な(オプションの?)タグが可能です。
- tags (non-hierarchical keywords)
- penalty
- generalfeedback
- defaultgrade
- hidden
問題タグ(非階層的なキーワード)は問題エンジンでは完全にはサポートされていませんが、XMLを介してインポートおよびエクスポートすることができます。
<question ...>
...
<tags>
<tag>
<text>keyword1</text>
</tag>
<tag>
<text>keyword2</text>
</tag>
...
</tags>
...
</question>
<image>タグには、画像のURLを記述します。<image>タグの中には、base64でエンコードされた画像データを含む<image_base64>タグを入れることができます。 [1].
注意: あなたがMoodle 1.9サーバから問題をエクスポートした場合、エクスポートされたファイルには1.9サーバでホストされているイメージへの相対URLのみが含まれますが、Moodle 2.xおよび3.xサーバからエクスポートされた問題にはベース64でエンコードされた実際のイメージが含まれます。これが、問題集のインポート/エクスポート操作で、すべての画像が含まれるものと、含まれないものがある理由です。 |
次の問題タイプの例では、わかりやすくするために問題の一般的な部分は示されていません。完全な例を表示するには、いくつかの例を自分でエクスポートすることをお勧めします。
多肢選択
MCの問題には各選択肢に1つの<answer>タグがあります。それぞれの選択肢にはフィードバックやスコアの重み付け (fraction属性の使用) を行うことができます。さらに、MC問題は以下のタグを持ちます。
- single (values: true/false)
- shuffleanswers (values: 1/0)
- correctfeedback
- partiallycorrectfeedback
- incorrectfeedback
- answernumbering (allowed values: 'none', 'abc', 'ABCD' or '123')
<single>タグは、単一の解答(ラジオボタン)と複数解答(チェックボックス)を区別するために使用されます。
<question type="multichoice">
<answer fraction="100">
<text>The correct answer</text>
<feedback><text>Correct!</text></feedback>
</answer>
<answer fraction="0">
<text>A distractor</text>
<feedback><text>Ooops!</text></feedback>
</answer>
<answer fraction="0">
<text>Another distractor</text>
<feedback><text>Ooops!</text></feedback>
</answer>
<shuffleanswers>1</shuffleanswers>
<single>true</single>
<answernumbering>abc</answernumbering>
</question>
真/偽
2つの解答タグが与えられます。1つは真で、もう1つは偽です。 answerタグのfraction属性は、どのオプションが正しいか (100)、どれが間違っているか (0) を識別します。フィードバックがサポートされています。次の例は、trueが正解で、falseが間違っている場合の形式を示しています。
<question type="truefalse">
<answer fraction="100">
<text>true</text>
<feedback><text>Correct!</text></feedback>
</answer>
<answer fraction="0">
<text>false</text>
<feedback><text>Ooops!</text></feedback>
</answer>
</question>
記述問題
記述問題タイプは、それぞれ独自の重み付けとフィードバックを持つ代替の正解をサポートします。Moodle XMLフォーマットでは各正解候補に対して1つの<answer>タグを使用します。
<usecase>タグは、1/0の値で大文字小文字の区別を切り替えます。
<question type="shortanswer">
<answer fraction="100">
<text>The correct answer</text>
<feedback><text>Correct!</text></feedback>
</answer>
<question type="shortanswer">
<answer fraction="100">
<text>The correct answer</text>
<feedback><text>Correct!</text></feedback>
</answer>
<answer fraction="100">
<text>An alternative answer</text>
<feedback><text>Correct!</text></feedback>
</answer>
</question>
数値解答
以下は、数値解答用のMoodle XMLフォーマットの簡易版です。
<question type="numerical">
<answer fraction="100">
<text>23</text>
<feedback><text>Feedback</text></feedback>
</answer>
</question>
Moodleでは<tolerance>タグ (どのくらい正確な数値が必要か) および1つ以上の<unit>タグもサポートしています。単位タグには名前と倍率があります。例えば、メインの答えがキロメーターである場合、追加の答えは1000の乗数でメートルに相当するものにすることができます。
注: 1.7.2 より前のバージョンでは、分数は <fraction> 要素で 0 から 1 までの値で表現され、解答値は <text> タグで囲まれ ません でした。このフォーマットの数値問題タイプは非推奨ですが、見つかった場合は正しくインポートされます(今のところ)。
組み合わせ
組み合わせの解答では、<shuffleanswers> タグを使用して、アイテムの順序をランダムにするかどうかを決定します。 各ペアは <subquestion> タグの中に含まれます。それぞれのペアの最初の項目は<text>タグで囲まれ、2番目の項目は<answer>タグで囲まれます。この解答タイプではフィードバックおよびスコアの加重はMoodleではサポートされません。
<question type="matching">
<subquestion>
<text>This is the 1st item in the 1st pair.</text>
<answer>
<text>This is the 2nd item in the 1st pair.</text>
</answer>
</subquestion>
<subquestion>
<text>This is the 1st item in the 2nd pair.</text>
<answer>
<text>This is the 2nd item in the 2nd pair.</text>
</answer>
</subquestion>
<shuffleanswers>true</shuffleanswers>
</question>
作文
作文タイプの問題の例...
<question type="essay">
<answer fraction="0">
<text></text>
</answer>
</question>
この場合、答えはなく、評定もありません。
注: 1.7.2より前のバージョンでは、分数は<fraction>要素で0から1までの値で表現され、解答値は<text>タグで囲まれた ません でした。小論文の問題タイプのこのフォーマットは非推奨ですが、発見された場合は正しくインポートされます(今のところ)。
その他の問題タイプ
穴埋め (Cloze)
これはサポートされており、<questiontext>タグの特別なフォーマットに依存しています。
説明解答タイプ
この解答タイプには、問題ヘッダに含まれるタグ(<questiontext>など)以外の追加タグはありません。
ランダム記述組み合わせ
Moodleには、同じ小テストの中の記述問題を、組み合わせの練習問題として表示する問題タイプがあります。しかし、Moodleはこの問題タイプをエクスポートもインポートもできません。
テキストフォーマット
Moodle XMLファイルでは各コンテンツのテキストフォーマット ('html、moodleオートフォーマット、プレインテキスト、マークダウン - これらはMoodleコードで使用される定数、FORMAT_HTML、FORMAT_MOODLE等に対応します) を明示的に指定してください。デフォルトでは、フォーマットは<text>要素の親で指定されます。デフォルトでは、フォーマットは<text>要素の親で指定されます。これは少し変ですが、歴史の名残です。
問題文にフォーマットが指定されていない場合は、html がデフォルトとなります。問題の他の部分でフォーマットが指定されていない場合は、問題文のフォーマットがデフォルトとなります。
(このデフォルトは、2011年11月頃に変更されました。それ以前は、フォーマットが指定されていない場合、デフォルトは moodle_auto_format でした)。
便利なユーティリティ
- クロスXMLフォーマットこの入力フォーマットプラグインは、問題をある問題タイプから別の問題タイプに変換する便利なユーティリティです。
- オンラインMoodleXMLコンバーター既存のテキストファイルの用語集と小テストからMoodleXMLフォーマットに変換します。 MoodleXMlからテキストに変換することもできます。
- スプレッドシートの小テストの問題をMoodle XMLに変換するためのRスクリプト - これは、小テスト問題を含むスプレッドシートをMoodle XMLファイルに変換するRスクリプトです。スプレッドシートの例も含まれています。クイックスタートガイドを書きましたが、2つのファイルしかアップロードできません。個人的な使用のために自由に修正してください。もし、有用な修正ができたら、私と共有してください。私は多肢選択問題(単一の正解)、記述問題、および真偽判定問題のサポートのみを記述しました。私は、Moodle 3.7でのみテストしました。
- R/exams は、R/MarkdownまたはR/LaTeXで書かれた潜在的に動的なエクササイズからMoodle XML(他の様々な出力フォーマットの中で)をエクスポートすることができる一斉試験ジェネレータです。Moodleの簡単なチュートリアルは以下のサイトにあります。E-Learning Quizzes with R/exams for Moodle and OpenOLAT.