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.xsdADL SCORM拡張のスキーマ必須SCORM 1.2用
ims_xml.xsdXML名前空間の基本スキーマ必須共通
imscp_rootv1p1p2.xsdContent 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.2SCORM 2004
名前空間URIimscp_rootv1p1p2imscp_v1p1
ADL拡張スキーマadlcp_rootv1p2.xsdadlcp_v1p3.xsd
Sequencingなしimsss_v1p0.xsd が追加
Navigationなしadlnav_v1p3.xsd が追加
schemaversion1.22004 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への搭載テストまでワンストップで対応いたします。

SCORMのことなら、何でもご相談ください

SCORM変換・教材制作・技術トラブルの解決まで、ワンストップで対応します。ご相談・お見積もりは無料です。

無料で相談する

株式会社エレファンキューブ

eラーニング教材制作の専門会社。2008年の創業以来、3,000件超の制作実績を持ち、SCORM 1.2 / SCORM 2004 / xAPI / cmi5など各種規格に精通。企画からLMS搭載まで、ワンストップで対応しています。

コーポレートサイト