SCORMパッケージとは、eラーニングコンテンツをLMS(学習管理システム)に登録するために必要な「ZIP形式の配布ファイル」です。 正しい構造で作成しなければLMSが認識できないため、ディレクトリ構成と必須ファイルの理解が不可欠です。本記事では、SCORMパッケージの中身を図解し、imsmanifest.xmlの書き方からパッケージング手順までをステップバイステップで解説します。
1. SCORMパッケージとは
SCORMパッケージは、以下の要素をまとめた1つのZIPファイルです。
- imsmanifest.xml — パッケージの「設計図」にあたるマニフェストファイル
- XSD(スキーマ)ファイル群 — マニフェストの構造を検証するための定義ファイル
- コンテンツファイル — HTML、CSS、JavaScript、画像、動画などの学習素材
LMSはZIPを展開し、まず imsmanifest.xml を読み取ります。ここに記述された情報をもとに、コンテンツの構成・起動URL・メタデータなどを把握します。つまり、マニフェストが正しくなければコンテンツは動作しません。
2. ディレクトリ構成(ツリー図)
一般的なSCORMパッケージの内部構造は次のとおりです。
my-course.zip
├── imsmanifest.xml ← 必須:マニフェストファイル
├── adlcp_rootv1p2.xsd ← 必須:ADL拡張スキーマ(SCORM 1.2)
├── ims_xml.xsd ← 必須:XML基本スキーマ
├── imscp_rootv1p1p2.xsd ← 必須:IMS Content Packaging スキーマ
├── imsmd_rootv1p2p1.xsd ← 必須:IMS Metadata スキーマ
├── content/
│ ├── index.html ← SCOの起動ファイル
│ ├── page2.html
│ ├── style.css
│ └── script.js
├── images/
│ ├── fig01.png
│ └── fig02.jpg
└── lib/
└── scorm_api.js ← SCORM API ラッパー
重要なルール: imsmanifest.xml はZIPの ルート直下 に配置しなければなりません。サブフォルダに入っているとLMSはパッケージを認識できません。
3. 必須ファイル一覧(チェックリスト)
| ファイル名 | 役割 | 必須 | 備考 |
|---|---|---|---|
imsmanifest.xml | パッケージ構成の定義 | 必須 | ZIPルート直下に配置 |
adlcp_rootv1p2.xsd | ADL SCORM拡張のスキーマ | 必須 | SCORM 1.2用 |
ims_xml.xsd | XML名前空間の基本スキーマ | 必須 | 共通 |
imscp_rootv1p1p2.xsd | Content Packagingスキーマ | 必須 | 共通 |
imsmd_rootv1p2p1.xsd | メタデータスキーマ | 必須 | 共通 |
| 起動HTMLファイル | SCOのエントリポイント | 必須 | manifest内のhref属性で指定 |
| CSS / JS / 画像等 | コンテンツ素材 | 任意 | resourcesで宣言推奨 |
SCORM 2004の場合はXSDファイル名が異なります(後述の「SCORM 1.2 と 2004 の違い」を参照)。
4. imsmanifest.xml の書き方
imsmanifest.xmlはSCORMパッケージの核となるファイルです。大きく3つのセクションで構成されます。
4-1. 全体構造
<?xml version="1.0" encoding="UTF-8"?>
<manifest identifier="com.example.course001"
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>
<!-- メタデータセクション -->
</metadata>
<organizations default="org_01">
<!-- 組織(学習構造)セクション -->
</organizations>
<resources>
<!-- リソース(実ファイル)セクション -->
</resources>
</manifest>
4-2. metadata セクション
パッケージ全体のスキーマバージョンを宣言します。
<metadata>
<schema>ADL SCORM</schema>
<schemaversion>1.2</schemaversion>
</metadata>
schema— 常にADL SCORMと記載します。schemaversion— SCORM 1.2なら1.2、SCORM 2004なら2004 4th Editionなどを指定します。
4-3. organizations セクション
学習の構造(目次)を定義します。organization の中に item を並べてツリー構造を作ります。
<organizations default="org_01">
<organization identifier="org_01">
<title>SCORM入門コース</title>
<item identifier="item_01" identifierref="res_01">
<title>第1章:SCORMの基礎</title>
</item>
<item identifier="item_02" identifierref="res_02">
<title>第2章:パッケージの作り方</title>
</item>
<item identifier="item_03" identifierref="res_03">
<title>第3章:APIの活用</title>
</item>
</organization>
</organizations>
default属性 — LMSが最初に読み込む組織のidentifierを指定します。identifierref— 各itemがどのresource(SCO)に対応するかを紐付けます。
4-4. resources セクション
実際のファイルとSCOの起動URLを定義します。
<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/chapter3.html">
<file href="content/chapter3.html"/>
<file href="images/fig01.png"/>
</resource>
</resources>
adlcp:scormtype="sco"— LMSと通信するSCO(Sharable Content Object)であることを示します。通信不要なアセットはassetを指定します。href属性 — SCOの起動HTMLファイルへの相対パスです。要素 — そのリソースが使用するすべてのファイルを列挙します。
5. XSD(スキーマ)ファイルの役割
XSDファイルはimsmanifest.xmlの構造を検証(バリデーション)するための定義ファイルです。SCORMの仕様で同梱が求められています。
多くのLMSはXSD検証をスキップしますが、一部のLMSや検証ツール(SCORM Cloud、ADL Test Suiteなど)はXSDを参照してバリデーションを行います。XSDファイルが欠落しているとアップロード時にエラーになるLMSもあるため、必ず同梱してください。
XSDファイルはADLの公式サイトや各SCORMバージョンのサンプルパッケージから入手できます。自分で作成する必要はありません。
6. SCORM 1.2 と 2004 のパッケージの違い
| 項目 | SCORM 1.2 | SCORM 2004 |
|---|---|---|
| 名前空間URI | imscp_rootv1p1p2 | imscp_v1p1 |
| ADL拡張スキーマ | adlcp_rootv1p2.xsd | adlcp_v1p3.xsd 等 |
| Sequencing | なし | imsss_v1p0.xsd が追加 |
| Navigation | なし | adlnav_v1p3.xsd が追加 |
| schemaversion | 1.2 | 2004 4th Edition 等 |
| SCO間データ共有 | 不可 | 共有データ機能あり |
SCORM 2004ではシーケンシング(学習順序制御)やナビゲーション制御が追加されるため、XSDファイルの数が増え、imsmanifest.xmlに ブロックが加わります。
初めてSCORMパッケージを作成する場合は、対応LMSの多い SCORM 1.2 から始めることをおすすめします。
7. パッケージング手順(ステップバイステップ)
ステップ1:ファイルを準備する
コンテンツファイル(HTML/CSS/JS/画像)を作成し、フォルダにまとめます。
ステップ2:SCORM API連携コードを追加する
起動HTMLにSCORM Runtime APIとの通信コードを実装します。最低限、以下の処理が必要です。
// SCORM 1.2 の場合
var api = findAPI(window); // LMSが提供するAPIオブジェクトを検索
api.LMSInitialize(""); // 通信開始
api.LMSSetValue("cmi.core.lesson_status", "completed"); // 完了報告
api.LMSCommit(""); // データ送信
api.LMSFinish(""); // 通信終了
ステップ3:imsmanifest.xml を作成する
前述の構造に従い、organizations と resources を定義します。identifier の重複がないよう注意してください。
ステップ4:XSDファイルを配置する
使用するSCORMバージョンに対応するXSDファイルをルート直下にコピーします。
ステップ5:ZIP圧縮する
すべてのファイルをフォルダごとではなく、ファイル群を直接ZIPに入れます。
# 正しい例:コンテンツフォルダ内で実行
cd my-course/
zip -r ../my-course.zip .
# 間違い例:親フォルダで実行すると階層が1つ深くなる
zip -r my-course.zip my-course/
間違った方法でZIPを作ると、imsmanifest.xmlが my-course/imsmanifest.xml というパスになり、LMSが認識できなくなります。
ステップ6:検証ツールでチェックする
パッケージを作成したら、LMSに登録する前に検証ツールでテストしましょう。
8. 検証ツールの紹介
| ツール名 | 種類 | 特徴 |
|---|---|---|
| SCORM Cloud | クラウドサービス | Rustici Software提供。ブラウザ上でパッケージをテスト可能 |
| ADL SCORM Test Suite | デスクトップアプリ | ADL公式の検証ツール。詳細なエラーレポートを出力 |
| Reload Editor | デスクトップアプリ | パッケージの作成・編集・検証が可能(やや古い) |
特にSCORM Cloudは無料プランでもパッケージのアップロードテストができるため、開発時の動作確認に重宝します。
9. よくあるエラーと対処法
SCORMパッケージ作成時に頻出するエラーをまとめます。
| エラー内容 | 原因 | 対処法 |
|---|---|---|
| マニフェストが見つからない | imsmanifest.xmlがルート直下にない | ZIPの圧縮方法を見直す |
| スキーマ検証エラー | XSDファイルの不足・名前の不一致 | 正しいXSDファイルを同梱する |
| SCOが起動しない | href属性のパスが間違っている | ファイルパスの大文字小文字を確認 |
| 学習ステータスが記録されない | API通信コードが未実装 | LMSInitialize/LMSFinishを実装する |
| identifier重複エラー | item/resourceのIDが重複 | ユニークなidentifierに変更する |
| 文字化け | XMLのエンコーディング宣言が不正 | UTF-8で保存し、宣言もUTF-8にする |
10. よくある質問(FAQ)
Q1. imsmanifest.xml は手書きしなければいけませんか?
手書きでも作成可能ですが、オーサリングツール(iSpring、Articulate Storylineなど)を使えば自動生成されます。既存のツールで出力したパッケージを元にカスタマイズするのが効率的です。
Q2. XSDファイルを入れ忘れるとどうなりますか?
多くのLMSでは動作しますが、一部のLMS(特に厳密なバリデーションを行うもの)ではアップロード時にエラーになります。SCORM仕様上は必須なので、必ず同梱してください。
Q3. 1つのSCORMパッケージに複数のSCOを入れられますか?
はい。organizations内に複数のitemを定義し、それぞれ別のresourceに紐付ければ、1パッケージ内で複数のSCOを管理できます。ただし、SCOの数が多すぎるとLMSの管理が煩雑になるため、適切な粒度を検討してください。
Q4. SCORM 1.2 と 2004、どちらで作るべきですか?
対応LMSの多さと実装の容易さから、まずはSCORM 1.2で作成することを推奨します。シーケンシング(学習順序の制御)が必要な場合のみSCORM 2004を検討してください。
Q5. パッケージのファイルサイズに制限はありますか?
SCORM仕様上の制限はありませんが、LMS側でアップロード制限(50MB〜500MB程度)を設けていることが一般的です。動画を含む場合はファイルサイズが大きくなりがちなので、動画は外部ホスティングにしてHTMLから参照する方法も検討してください。
11. まとめ
- SCORMパッケージは imsmanifest.xml + XSDファイル群 + コンテンツファイル をZIPにまとめたもの
- imsmanifest.xmlは必ず ZIPのルート直下 に配置する
- マニフェストは metadata / organizations / resources の3セクションで構成される
- XSDファイルは仕様上必須——省略するとLMSによってはエラーになる
- ZIP圧縮時はフォルダを含めず ファイル群を直接 圧縮する
- 作成後は SCORM Cloudなどの検証ツール で必ず動作確認を行う
- 迷ったらまず SCORM 1.2 から始める
SCORMパッケージの作成でお困りでしたら、eラーニング専門18年・3,000件超の制作実績を持つエレファンキューブにご相談ください。パッケージの新規制作はもちろん、既存コンテンツのSCORM変換や、LMSへの搭載テストまでワンストップで対応いたします。
株式会社エレファンキューブ
eラーニング教材制作の専門会社。2008年の創業以来、3,000件超の制作実績を持ち、SCORM 1.2 / SCORM 2004 / xAPI / cmi5など各種規格に精通。企画からLMS搭載まで、ワンストップで対応しています。
コーポレートサイト