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つは、インポート/エクスポートのカテゴリを指定するためのカテゴリタイプを持つダミーの質問です。

 <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 > 

それぞれの質問は、Moodleに正しくインポートするためにXMLファイルのための<name>タグと<question-text>タグを必要とします。

「フォーマット」は質問テキストのフォーマットオプションを選択します。オプションには、HTML(デフォルト)、moodle_auto_format、plain_text値下げされています。選択によって、テキストの表示方法が変わります。

通常は少なくとも1つの<answer>タグを含む別のタグが、<question>タグの子ノードとしてドットでマークされたスペースに続きます。応答関連のタグは、このページのさらに下にリストされています。さまざまな(オプションの)タグが可能です。

  • タグ(非階層キーワード)
  • ペナルティ
  • 一般フィードバック
  • defaultgrade
  • 隠された

質問タグ(非階層キーワード)は質問エンジンでは完全にはサポートされていませんが、XMLを介してインポートおよびエクスポートすることができます。

 <question ... >
  ...
  <tags >
    <tag >
      <text > keyword1 </text >
    </tag >
    <tag >
      <text > keyword2 </text >
    </tag >
    ...
  </tags >
  ...
</question > 

<image>タグには、含まれている画像のURLが含まれています。 <image>タグ内にネストされているのは、base64 [1]でエンコードされた実際の画像データを含む<image_base64>タグです。

注: Moodle 1.9サーバから質問をエクスポートする場合、エクスポートされたファイルには1.9サーバでホストされている画像への相対URLのみが含まれ、Moodle 2.xおよび3.xサーバからエクスポートされた質問には実際の画像がエンコードされます。 base 64.これが、いくつかの問題バンクのインポート/エクスポート操作にすべての画像が含まれるのと、その他の操作が含まれないのが説明します。


次の質問タイプの例では、わかりやすくするために質問の共通部分は示していません。完全な例を見るには、いくつかの例を自分でエクスポートすることをお勧めします。

多肢選択問題

MCの質問には、選択肢ごとに1つの<answer>タグがあります。それぞれの選択は、フィードバックとスコアの重み付けを(fraction属性を使用して)実行できます。さらに、MCの質問には次のタグがあります。

  • single (値:true / false)
  • シャッフル回答(値:1/0)
  • 正帰還
  • 部分的なフィードバック
  • 不正確なフィードバック
  • 回答番号(許容値: 'none'、 'abc'、 'ABCD'、または '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つは偽です。回答タグのfraction属性は、どのオプションが正しい(100)、どれがfalse(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_auto_format、plain_text値下げを -これらは、定数に対応し、Moodleのコードで使用FORMAT_HTML、FORMAT_MOODLEなど)を指定する必要があり、コンテンツの各部分のために。デフォルトでは、フォーマットは<text>要素の親で指定する必要があります。これは少し変わっていますが、歴史の残りです。

質問テキストにフォーマットが指定されていない場合は、 htmlがデフォルトです。形式が質問の他の部分で指定されていない場合、質問テキストの形式がデフォルトになります。

(このデフォルトは2011年11月ごろに変更されました。それ以前は、フォーマットが指定されていないときはいつでもデフォルトはmoodle_auto_formatでした。)

便利なユーティリティ

関連情報