imsmanifest.xmlは、SCORMパッケージの中核を担うマニフェストファイルです。 LMSはこのファイルを最初に読み取り、コンテンツの構成・起動URL・メタデータを把握します。記述に誤りがあるとコンテンツは正しく動作しません。本記事では、imsmanifest.xmlの全要素をリファレンス形式で解説し、SCORM 1.2とSCORM 2004の違い、シーケンシング記述例、よくある記述ミスまでを網羅します。
1. imsmanifest.xmlの役割と全体構造
imsmanifest.xmlはSCORMパッケージ(ZIPファイル)のルート直下に必ず配置するXMLファイルです。LMSはZIPを展開した直後にこのファイルを解析し、以下の情報を取得します。
- パッケージのバージョン情報(metadata)
- 学習構造と目次(organizations)
- 実ファイルの場所と種別(resources)
全体は1つの 要素で囲まれ、その中に metadata → organizations → resources の順で記述します。
2. 完全なimsmanifest.xmlサンプル(SCORM 1.2)
まず、SCORM 1.2準拠の完全な記述例を示します。
<?xml version="1.0" encoding="UTF-8"?>
<manifest identifier="course-scorm12-001"
version="1.0"
xmlns="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_rootv1p2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.imsproject.org/xsd/imscp_rootv1p1p2 imscp_rootv1p1p2.xsd
http://www.imsglobal.org/xsd/imsmd_rootv1p2p1 imsmd_rootv1p2p1.xsd
http://www.adlnet.org/xsd/adlcp_rootv1p2 adlcp_rootv1p2.xsd">
<metadata>
<schema>ADL SCORM</schema>
<schemaversion>1.2</schemaversion>
</metadata>
<organizations default="org-001">
<organization identifier="org-001">
<title>SCORM入門コース</title>
<item identifier="item-01" identifierref="res-01">
<title>第1章:SCORMの概要</title>
</item>
<item identifier="item-02" identifierref="res-02">
<title>第2章:API通信の基本</title>
</item>
<item identifier="item-03" identifierref="res-03">
<title>第3章:確認テスト</title>
<adlcp:masteryscore>80</adlcp:masteryscore>
</item>
</organization>
</organizations>
<resources>
<resource identifier="res-01" type="webcontent"
adlcp:scormtype="sco" href="content/chapter1.html">
<file href="content/chapter1.html"/>
<file href="content/style.css"/>
<file href="lib/scorm_api.js"/>
</resource>
<resource identifier="res-02" type="webcontent"
adlcp:scormtype="sco" href="content/chapter2.html">
<file href="content/chapter2.html"/>
<file href="content/style.css"/>
</resource>
<resource identifier="res-03" type="webcontent"
adlcp:scormtype="sco" href="content/quiz.html">
<file href="content/quiz.html"/>
<file href="content/style.css"/>
</resource>
</resources>
</manifest>
3. 要素と名前空間
はルート要素であり、名前空間宣言とスキーマロケーションを属性で指定します。
| 属性 | 説明 | 記述例 |
|---|---|---|
identifier | パッケージの一意識別子 | course-scorm12-001 |
version | パッケージのバージョン | 1.0 |
xmlns | IMS Content Packaging名前空間 | SCORM 1.2: imscp_rootv1p1p2 / 2004: imscp_v1p1 |
xmlns:adlcp | ADL SCORM拡張名前空間 | SCORM 1.2: adlcp_rootv1p2 / 2004: adlcp_v1p3 |
xmlns:xsi | XMLスキーマインスタンス名前空間 | http://www.w3.org/2001/XMLSchema-instance |
xsi:schemaLocation | スキーマファイルの対応表 | 名前空間URIとXSDファイルのペア |
名前空間を間違えるとLMSがバージョンを誤認識します。 SCORM 1.2とSCORM 2004では名前空間URIが異なるため、コピー&ペースト時は特に注意してください。
4. セクション
パッケージのスキーマ情報を宣言するセクションです。
| 要素 | 説明 | SCORM 1.2の値 | SCORM 2004の値 |
|---|---|---|---|
| スキーマ名 | ADL SCORM | ADL SCORM |
| バージョン文字列 | 1.2 | 2004 4th Edition |
LMSはこの値を読み取り、どのバージョンのSCORM APIを提供するかを決定します。schemaversion の誤記はAPI通信エラーの原因になるため、正確に記述してください。
5. セクション
学習の目次構造を定義するセクションです。
| 要素・属性 | 説明 | 必須 |
|---|---|---|
| デフォルト組織のidentifierを指定 | 必須 |
| 組織(学習構造)の定義 | 必須(1つ以上) |
| 組織またはアイテムのタイトル | 必須 |
| 学習項目。identifierrefでresourceと紐付け | 必須(1つ以上) |
のネスト | 親itemの中に子itemを入れて階層構造を作成 | 任意 |
| 合格基準スコア(SCORM 1.2のみ) | 任意 |
はネスト可能です。親itemにidentifierrefを付けず、子itemだけにidentifierrefを付けると「章 → 節」のようなツリー構造になります。
<item identifier="chapter-01">
<title>第1章</title>
<item identifier="section-01-01" identifierref="res-01">
<title>1-1. はじめに</title>
</item>
<item identifier="section-01-02" identifierref="res-02">
<title>1-2. 基本操作</title>
</item>
</item>
6. セクション
実ファイルの場所と種別を定義するセクションです。
| 要素・属性 | 説明 | 必須 |
|---|---|---|
| リソースの一意識別子 | 必須 |
type="webcontent" | リソース種別(常にwebcontent) | 必須 |
adlcp:scormtype="sco" | LMSと通信するSCO | scoまたはassetを指定 |
href="..." | SCOの起動ファイルへの相対パス | scoの場合は必須 |
| リソースが使用するファイルの列挙 | 推奨 |
| 他のresourceへの依存宣言 | 任意 |
scoとassetの違い: sco はLMSとSCORM APIで通信するコンテンツ、asset は通信しない静的コンテンツ(PDFや参考ページなど)です。
共通リソース(CSSやJSライブラリ)は で共有できます。
<resource identifier="res-common" type="webcontent" adlcp:scormtype="asset">
<file href="css/style.css"/>
<file href="lib/scorm_api.js"/>
</resource>
<resource identifier="res-01" type="webcontent"
adlcp:scormtype="sco" href="content/chapter1.html">
<file href="content/chapter1.html"/>
<dependency identifierref="res-common"/>
</resource>
7. SCORM 1.2 と SCORM 2004 の違い
| 項目 | SCORM 1.2 | SCORM 2004(4th Edition) |
|---|---|---|
| CP名前空間URI | http://www.imsproject.org/xsd/imscp_rootv1p1p2 | http://www.imsglobal.org/xsd/imscp_v1p1 |
| ADL名前空間URI | http://www.adlnet.org/xsd/adlcp_rootv1p2 | http://www.adlnet.org/xsd/adlcp_v1p3 |
| schemaversion | 1.2 | 2004 4th Edition |
| scormtype属性 | adlcp:scormtype | adlcp:scormType(大文字T) |
| masteryscore | で記述 | Sequencing Definitionで定義 |
| シーケンシング | 非対応 | で制御 |
| ナビゲーション | 非対応 | で制御 |
| 追加XSD | なし | imsss_v1p0.xsd, adlnav_v1p3.xsd など |
特に注意すべき点は scormtype と scormType の大文字・小文字の違いです。 SCORM 2004で小文字のまま記述すると、LMSがSCOをassetとして扱い、API通信が行われません。
8. シーケンシング記述例(SCORM 2004)
SCORM 2004では を使って学習順序や完了条件を制御できます。以下は「第1章を完了しないと第2章に進めない」設定の例です。
<organization identifier="org-001">
<title>順序制御コース</title>
<item identifier="item-01" identifierref="res-01">
<title>第1章:基礎知識</title>
</item>
<item identifier="item-02" identifierref="res-02">
<title>第2章:応用</title>
<imsss:sequencing>
<imsss:controlMode choice="false" flow="true"/>
<imsss:sequencingRules>
<imsss:preConditionRule>
<imsss:ruleConditions>
<imsss:ruleCondition
referencedObjective="obj-prev"
condition="completed"
operator="not"/>
</imsss:ruleConditions>
<imsss:ruleAction action="disabled"/>
</imsss:preConditionRule>
</imsss:sequencingRules>
<imsss:objectives>
<imsss:primaryObjective objectiveID="obj-02"/>
<imsss:objective objectiveID="obj-prev">
<imsss:mapInfo
targetObjectiveID="obj-01"
readSatisfiedStatus="true"/>
</imsss:objective>
</imsss:objectives>
</imsss:sequencing>
</item>
<imsss:sequencing>
<imsss:controlMode choice="true" flow="true"/>
</imsss:sequencing>
</organization>
シーケンシングは柔軟ですが記述が複雑になりやすいため、まずはオーサリングツールで自動生成し、必要に応じてXMLを手修正するアプローチがおすすめです。
9. よくある記述ミスと対策
| ミスの内容 | 症状 | 対策 |
|---|---|---|
| imsmanifest.xmlがサブフォルダ内にある | LMSが「マニフェストが見つからない」エラー | ZIPルート直下に配置する |
| identifierの重複 | アップロード時にバリデーションエラー | すべてのidentifierをユニークにする |
| hrefのパスミス(大文字小文字の違い) | SCOが起動しない・404エラー | 実ファイルのパスと完全一致させる |
| 名前空間URIの誤り | LMSがバージョンを誤認識しAPI通信失敗 | SCORM 1.2と2004のURIを混同しない |
scormType の大文字小文字誤り | SCOがasset扱いになり通信不可 | SCORM 1.2は小文字t、2004は大文字T |
| schemaversion の値が不正 | LMSが対応バージョンを判定できない | 1.2 または 2004 4th Edition を正確に記述 |
| XML宣言のエンコーディング不一致 | 日本語タイトルが文字化け | ファイルをUTF-8で保存し宣言も UTF-8 にする |
の default 属性の欠落 | LMSがどの組織を使うか判定できない | 必ずdefault属性を指定する |
10. よくある質問(FAQ)
Q1. imsmanifest.xmlはテキストエディタで編集できますか?
はい。imsmanifest.xmlは通常のXMLファイルなので、VS CodeやSublime Textなどのテキストエディタで編集可能です。XML用のシンタックスハイライトやバリデーション拡張を入れておくとミスを検出しやすくなります。
Q2. manifest要素のidentifierに命名規則はありますか?
SCORM仕様では「URI形式であること」が推奨されていますが、多くのLMSは任意の文字列を受け付けます。実運用では com.example.course-001 のように組織名とコースIDを組み合わせるのが一般的です。半角英数字・ハイフン・ドットで構成し、スペースや日本語は避けてください。
Q3. 1つのresourceを複数のitemで共有できますか?
はい。複数の が同じ identifierref を指定すれば、同一のSCOを目次の複数箇所から起動できます。ただし、LMSによっては学習ステータスの記録が1つのSCOに対して1つになるため、進捗管理に注意が必要です。
Q4. XSDファイルを最新版に差し替えてもよいですか?
基本的にはSCORMバージョンに同梱されている公式XSDをそのまま使ってください。独自に改変したり別バージョンのXSDを混在させたりすると、バリデーションエラーの原因になります。ADL公式サイトのサンプルパッケージからコピーするのが確実です。
Q5. SCORM 2004のシーケンシングは必須ですか?
必須ではありません。 を省略すると、LMSはデフォルトの動作(学習者が自由に選択可能)を適用します。学習順序の制御が不要なら、シーケンシングなしでも問題なく動作します。
11. まとめ
- imsmanifest.xmlは manifest / metadata / organizations / resources の4構造で成り立つ
- 名前空間URIはSCORM 1.2と2004で異なるため、バージョンに対応した正確な記述が必須
scormtype(1.2)とscormType(2004)の大文字・小文字の違いに注意する- SCORM 2004のシーケンシングは強力だが複雑——必要な場合のみ導入する
- 作成後は必ず SCORM Cloudなどの検証ツール でバリデーションを実行する
imsmanifest.xmlの作成や既存パッケージの修正でお困りでしたら、eラーニング専門18年・3,000件超の実績を持つ株式会社エレファンキューブにお気軽にご相談ください。マニフェストの記述チェックからパッケージ制作・LMS搭載テストまでワンストップで対応いたします。
株式会社エレファンキューブ
eラーニング教材制作の専門会社。2008年の創業以来、3,000件超の制作実績を持ち、SCORM 1.2 / SCORM 2004 / xAPI / cmi5など各種規格に精通。企画からLMS搭載まで、ワンストップで対応しています。
コーポレートサイト