下記は、IMSエンタープライズデータファイルの基本的な構造に関するシンプルなガイドです。詳細は、 IMS Enterprise official website をご覧ください。
このプラグインが処理できるIMSデータ要素に関して説明した conformance summary をご覧ください。
すべてのIMSスタイルのユーザ登録では、コースを定義する <group> タグ、ユーザアカウントを定義する <member> タグ、コースでの役割りを定義する <member> タグを含む <membership> タグが必要です。
Moodleデータベースで使用される数値キーは、共有できるデータでは無いことに注意してください。学生データシステムは、前もってJoeが20番目にMoodleデータベースに追加されたユーザだと判断できません。ですから、このタイプのデータで、これらは交換されるキーではありません。
一般的に、コースは名称とともに参照コードを持ちます。参照コードが、MOODLE101 だと仮定しましょう。あなたのコースを下記のように定義できます。
<group>
<sourcedid>
<source>MyDataSystem</source>
<id>MOODLE101</id>
</sourcedid>
<description>
<short>Moodle 101</short>
</description>
</group>
ユーザ登録スクリプトは、コード MOODLE101 のコースを探し、見つからない場合 (任意で) そのコースを作成します。同様に、「jmoodle」というユーザアカウントを考えてみましょう。
<person>
<sourcedid>
<source>MyDataSystem</source>
<id>jmoodle</id>
</sourcedid>
<userid>jmoodle</userid>
<name>
<fn>Joe Moodle</fn>
<n>
<family>MOODLE</family>
<given>JOE</given>
</n>
</name>
</person>
Joeがアカウントを持っていない場合、スクリプトは (任意で) アカウントを作成することができます。
それでは、ユーザをコースに追加する membership を見てみましょう。
<membership>
<sourcedid>
<source>MyDataSystem</source>
<id>MOODLE101</id>
</sourcedid>
<member>
<sourcedid>
<source>MyDataSystem</source>
<id>jmoodle</id>
</sourcedid>
<role roletype="01">
<status>1</status>
<extension><cohort>unit 2</cohort></extension>
</role>
</member>
</membership>
IMSエンタープライズ仕様は、ユーザ登録の開始/終了日を指定する機能を提供しません。必要な場合、<timeframe> タグを使用して指定することができます。
すでにユーザがコース内のグループに登録されている場合、スクリプトは実際にはそのユーザを変更しません。しかし、ユーザがグループに属していない場合、指定されたグループが適用されます。