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 <strong>any</strong> HTML that I<br />
              wish. Without the CDATA, the <i>HTML</i> 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ファイルでは各コンテンツのテキストフォーマット ('htmlmoodleオートフォーマットプレインテキストマークダウン - これらは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.

関連項目