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
xmlnsIMS Content Packaging名前空間SCORM 1.2: imscp_rootv1p1p2 / 2004: imscp_v1p1
xmlns:adlcpADL SCORM拡張名前空間SCORM 1.2: adlcp_rootv1p2 / 2004: adlcp_v1p3
xmlns:xsiXMLスキーマインスタンス名前空間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 SCORMADL SCORM
バージョン文字列1.22004 4th Edition

LMSはこの値を読み取り、どのバージョンのSCORM APIを提供するかを決定します。schemaversion の誤記はAPI通信エラーの原因になるため、正確に記述してください。

5. セクション

学習の目次構造を定義するセクションです。

要素・属性説明必須
デフォルト組織のidentifierを指定必須
組織(学習構造)の定義必須(1つ以上)
</code></td><td>組織またはアイテムのタイトル</td><td>必須</td></tr> <tr><td><code><item identifier="..." identifierref="..."></code></td><td>学習項目。identifierrefでresourceと紐付け</td><td>必須(1つ以上)</td></tr> <tr><td><code><item></code> のネスト</td><td>親itemの中に子itemを入れて階層構造を作成</td><td>任意</td></tr> <tr><td><code><adlcp:masteryscore></code></td><td>合格基準スコア(SCORM 1.2のみ)</td><td>任意</td></tr> </tbody></table> <p><code><item></code> はネスト可能です。親itemにidentifierrefを付けず、子itemだけにidentifierrefを付けると「章 → 節」のようなツリー構造になります。</p> <pre><code><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> </code></pre> <h2 id="6-resources-セクション">6. <code><resources></code> セクション</h2> <p>実ファイルの場所と種別を定義するセクションです。</p> <table> <thead><tr><th>要素・属性</th><th>説明</th><th>必須</th></tr></thead> <tbody> <tr><td><code><resource identifier="..."></code></td><td>リソースの一意識別子</td><td>必須</td></tr> <tr><td><code>type="webcontent"</code></td><td>リソース種別(常にwebcontent)</td><td>必須</td></tr> <tr><td><code>adlcp:scormtype="sco"</code></td><td>LMSと通信するSCO</td><td>scoまたはassetを指定</td></tr> <tr><td><code>href="..."</code></td><td>SCOの起動ファイルへの相対パス</td><td>scoの場合は必須</td></tr> <tr><td><code><file href="..."/></code></td><td>リソースが使用するファイルの列挙</td><td>推奨</td></tr> <tr><td><code><dependency identifierref="..."/></code></td><td>他のresourceへの依存宣言</td><td>任意</td></tr> </tbody></table> <p><strong>scoとassetの違い:</strong> <code>sco</code> はLMSとSCORM APIで通信するコンテンツ、<code>asset</code> は通信しない静的コンテンツ(PDFや参考ページなど)です。</p> <p>共通リソース(CSSやJSライブラリ)は <code><dependency></code> で共有できます。</p> <pre><code><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> </code></pre> <h2 id="7-scorm-12-と-scorm-2004-の違い">7. SCORM 1.2 と SCORM 2004 の違い</h2> <table> <thead><tr><th>項目</th><th>SCORM 1.2</th><th>SCORM 2004(4th Edition)</th></tr></thead> <tbody> <tr><td>CP名前空間URI</td><td><code>http://www.imsproject.org/xsd/imscp_rootv1p1p2</code></td><td><code>http://www.imsglobal.org/xsd/imscp_v1p1</code></td></tr> <tr><td>ADL名前空間URI</td><td><code>http://www.adlnet.org/xsd/adlcp_rootv1p2</code></td><td><code>http://www.adlnet.org/xsd/adlcp_v1p3</code></td></tr> <tr><td>schemaversion</td><td><code>1.2</code></td><td><code>2004 4th Edition</code></td></tr> <tr><td>scormtype属性</td><td><code>adlcp:scormtype</code></td><td><code>adlcp:scormType</code>(大文字T)</td></tr> <tr><td>masteryscore</td><td><code><adlcp:masteryscore></code> で記述</td><td>Sequencing Definitionで定義</td></tr> <tr><td>シーケンシング</td><td>非対応</td><td><code><imsss:sequencing></code> で制御</td></tr> <tr><td>ナビゲーション</td><td>非対応</td><td><code><adlnav:presentation></code> で制御</td></tr> <tr><td>追加XSD</td><td>なし</td><td><code>imsss_v1p0.xsd</code>, <code>adlnav_v1p3.xsd</code> など</td></tr> </tbody></table> <p><strong>特に注意すべき点は <code>scormtype</code> と <code>scormType</code> の大文字・小文字の違いです。</strong> SCORM 2004で小文字のまま記述すると、LMSがSCOをassetとして扱い、API通信が行われません。</p> <h2 id="8-シーケンシング記述例scorm-2004">8. シーケンシング記述例(SCORM 2004)</h2> <p>SCORM 2004では <code><imsss:sequencing></code> を使って学習順序や完了条件を制御できます。以下は「第1章を完了しないと第2章に進めない」設定の例です。</p> <pre><code><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> </code></pre> <p>シーケンシングは柔軟ですが記述が複雑になりやすいため、まずはオーサリングツールで自動生成し、必要に応じてXMLを手修正するアプローチがおすすめです。</p> <h2 id="9-よくある記述ミスと対策">9. よくある記述ミスと対策</h2> <table> <thead><tr><th>ミスの内容</th><th>症状</th><th>対策</th></tr></thead> <tbody> <tr><td>imsmanifest.xmlがサブフォルダ内にある</td><td>LMSが「マニフェストが見つからない」エラー</td><td>ZIPルート直下に配置する</td></tr> <tr><td>identifierの重複</td><td>アップロード時にバリデーションエラー</td><td>すべてのidentifierをユニークにする</td></tr> <tr><td>hrefのパスミス(大文字小文字の違い)</td><td>SCOが起動しない・404エラー</td><td>実ファイルのパスと完全一致させる</td></tr> <tr><td>名前空間URIの誤り</td><td>LMSがバージョンを誤認識しAPI通信失敗</td><td>SCORM 1.2と2004のURIを混同しない</td></tr> <tr><td><code>scormType</code> の大文字小文字誤り</td><td>SCOがasset扱いになり通信不可</td><td>SCORM 1.2は小文字t、2004は大文字T</td></tr> <tr><td>schemaversion の値が不正</td><td>LMSが対応バージョンを判定できない</td><td><code>1.2</code> または <code>2004 4th Edition</code> を正確に記述</td></tr> <tr><td>XML宣言のエンコーディング不一致</td><td>日本語タイトルが文字化け</td><td>ファイルをUTF-8で保存し宣言も <code>UTF-8</code> にする</td></tr> <tr><td><code><organizations></code> の <code>default</code> 属性の欠落</td><td>LMSがどの組織を使うか判定できない</td><td>必ずdefault属性を指定する</td></tr> </tbody></table> <h2 id="10-よくある質問faq">10. よくある質問(FAQ)</h2> <p><strong>Q1. imsmanifest.xmlはテキストエディタで編集できますか?</strong></p> <p>はい。imsmanifest.xmlは通常のXMLファイルなので、VS CodeやSublime Textなどのテキストエディタで編集可能です。XML用のシンタックスハイライトやバリデーション拡張を入れておくとミスを検出しやすくなります。</p> <p><strong>Q2. manifest要素のidentifierに命名規則はありますか?</strong></p> <p>SCORM仕様では「URI形式であること」が推奨されていますが、多くのLMSは任意の文字列を受け付けます。実運用では <code>com.example.course-001</code> のように組織名とコースIDを組み合わせるのが一般的です。半角英数字・ハイフン・ドットで構成し、スペースや日本語は避けてください。</p> <p><strong>Q3. 1つのresourceを複数のitemで共有できますか?</strong></p> <p>はい。複数の <code><item></code> が同じ <code>identifierref</code> を指定すれば、同一のSCOを目次の複数箇所から起動できます。ただし、LMSによっては学習ステータスの記録が1つのSCOに対して1つになるため、進捗管理に注意が必要です。</p> <p><strong>Q4. XSDファイルを最新版に差し替えてもよいですか?</strong></p> <p>基本的にはSCORMバージョンに同梱されている公式XSDをそのまま使ってください。独自に改変したり別バージョンのXSDを混在させたりすると、バリデーションエラーの原因になります。ADL公式サイトのサンプルパッケージからコピーするのが確実です。</p> <p><strong>Q5. SCORM 2004のシーケンシングは必須ですか?</strong></p> <p>必須ではありません。<code><imsss:sequencing></code> を省略すると、LMSはデフォルトの動作(学習者が自由に選択可能)を適用します。学習順序の制御が不要なら、シーケンシングなしでも問題なく動作します。</p> <h2 id="11-まとめ">11. まとめ</h2> <ul> <li>imsmanifest.xmlは <strong>manifest / metadata / organizations / resources</strong> の4構造で成り立つ</li> <li>名前空間URIはSCORM 1.2と2004で異なるため、<strong>バージョンに対応した正確な記述</strong>が必須</li> <li><code>scormtype</code>(1.2)と <code>scormType</code>(2004)の<strong>大文字・小文字の違い</strong>に注意する</li> <li>SCORM 2004のシーケンシングは強力だが複雑——<strong>必要な場合のみ導入</strong>する</li> <li>作成後は必ず <strong>SCORM Cloudなどの検証ツール</strong> でバリデーションを実行する</li> </ul> <hr> <p>imsmanifest.xmlの作成や既存パッケージの修正でお困りでしたら、eラーニング専門18年・3,000件超の実績を持つ<strong>株式会社エレファンキューブ</strong>にお気軽にご相談ください。マニフェストの記述チェックからパッケージ制作・LMS搭載テストまでワンストップで対応いたします。</p> <!-- CTA --> <div class="mt-12 bg-gradient-to-r from-primary-800 to-primary-600 rounded-2xl p-8 lg:p-10 text-center text-white"> <h3 class="text-2xl font-bold mb-4" style="border:none; padding:0; margin:0 0 1rem 0; color:#fff;">SCORMのことなら、何でもご相談ください</h3> <p class="mb-6 max-w-lg mx-auto" style="color:#bfdbfe;">SCORM変換・教材制作・技術トラブルの解決まで、ワンストップで対応します。ご相談・お見積もりは無料です。</p> <a href="../#contact" class="inline-flex items-center justify-center px-8 py-4 bg-accent-500 hover:bg-accent-600 text-white text-lg font-bold rounded-full shadow-xl hover:shadow-2xl transition-all hover:-translate-y-0.5"> 無料で相談する <svg class="ml-2 w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"/></svg> </a> </div> <!-- 著者情報 --> <div class="mt-10 flex items-start gap-5 bg-gray-50 rounded-xl p-6 border border-gray-200"> <div class="w-16 h-16 bg-primary-100 rounded-full flex items-center justify-center flex-shrink-0"> <svg class="w-8 h-8 text-primary-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"/></svg> </div> <div> <p class="font-bold text-gray-900 mb-1">株式会社エレファンキューブ</p> <p class="text-sm text-gray-600 leading-relaxed">eラーニング教材制作の専門会社。2008年の創業以来、3,000件超の制作実績を持ち、SCORM 1.2 / SCORM 2004 / xAPI / cmi5など各種規格に精通。企画からLMS搭載まで、ワンストップで対応しています。</p> <a href="https://www.elephancube.co.jp/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center text-primary-600 text-sm font-medium mt-2 hover:underline"> コーポレートサイト <svg class="ml-1 w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/></svg> </a> </div> </div> </article> <!-- サイドバー --> <aside class="hidden lg:block"> <div class="sticky top-24 space-y-6 max-h-[calc(100vh-7rem)] overflow-y-auto pr-1"> <!-- CTA --> <div class="bg-gradient-to-b from-primary-800 to-primary-600 rounded-2xl p-6 text-center text-white"> <p class="font-bold text-lg mb-3">SCORMでお困りですか?</p> <p class="text-blue-200 text-sm mb-5">まずはお気軽にご相談ください。無料でご対応します。</p> <a href="../#contact" class="block w-full py-3 bg-accent-500 hover:bg-accent-600 text-white font-bold rounded-full text-sm transition">無料で相談する</a> </div> <!-- 目次 --> <div class="bg-white border border-gray-200 rounded-xl p-5"> <p class="font-bold text-gray-900 text-sm mb-3">目次</p> <ol class="space-y-2 text-xs text-gray-500 list-decimal pl-4"> <li><a href="#1-imsmanifestxmlの役割と全体構造" class="hover:text-primary-600 transition">1. imsmanifest.xmlの役割と全体構造</a></li> <li><a href="#2-完全なimsmanifestxmlサンプルscorm-12" class="hover:text-primary-600 transition">2. 完全なimsmanifest.xmlサンプル(SCORM 1.2)</a></li> <li><a href="#3-manifest-要素と名前空間" class="hover:text-primary-600 transition">3. `<manifest>` 要素と名前空間</a></li> <li><a href="#4-metadata-セクション" class="hover:text-primary-600 transition">4. `<metadata>` セクション</a></li> <li><a href="#5-organizations-セクション" class="hover:text-primary-600 transition">5. `<organizations>` セクション</a></li> <li><a href="#6-resources-セクション" class="hover:text-primary-600 transition">6. `<resources>` セクション</a></li> <li><a href="#7-scorm-12-と-scorm-2004-の違い" class="hover:text-primary-600 transition">7. SCORM 1.2 と SCORM 2004 の違い</a></li> <li><a href="#8-シーケンシング記述例scorm-2004" class="hover:text-primary-600 transition">8. シーケンシング記述例(SCORM 2004)</a></li> <li><a href="#9-よくある記述ミスと対策" class="hover:text-primary-600 transition">9. よくある記述ミスと対策</a></li> <li><a href="#10-よくある質問faq" class="hover:text-primary-600 transition">10. よくある質問(FAQ)</a></li> <li><a href="#11-まとめ" class="hover:text-primary-600 transition">11. まとめ</a></li> </ol> </div> <!-- 関連記事 --> <div class="bg-white border border-gray-200 rounded-xl p-5"> <p class="font-bold text-gray-900 text-sm mb-4">関連記事</p> <div class="space-y-4"> <a href="../column/?slug=scorm-data-model" class="block group"> <p class="text-xs text-primary-600 font-bold mb-1">技術リファレンス</p> <p class="text-sm font-bold text-gray-800 group-hover:text-primary-600 transition leading-snug">SCORMデータモデル一覧——SCORM 1.2 / 2004のCMIエレメント完全リファレンス</p> </a> <a href="../column/?slug=scorm-api-reference" class="block group"> <p class="text-xs text-primary-600 font-bold mb-1">技術リファレンス</p> <p class="text-sm font-bold text-gray-800 group-hover:text-primary-600 transition leading-snug">SCORM APIリファレンス——LMSInitialize, SetValue, Commitの使い方</p> </a> <a href="../column/?slug=scorm-status-guide" class="block group"> <p class="text-xs text-primary-600 font-bold mb-1">技術リファレンス</p> <p class="text-sm font-bold text-gray-800 group-hover:text-primary-600 transition leading-snug">SCORMの学習ステータス(lesson_status / completion_status)の仕組みと設計</p> </a> <a href="../column/?slug=scorm-debug" class="block group"> <p class="text-xs text-primary-600 font-bold mb-1">技術リファレンス</p> <p class="text-sm font-bold text-gray-800 group-hover:text-primary-600 transition leading-snug">SCORM教材のデバッグ方法——ブラウザ開発者ツールとSCORM Cloudの活用</p> </a> </div> </div> </div> </aside> </div> </div> </div> </main> <footer id="company" class="bg-gray-900 text-gray-400 pt-16 pb-8" role="contentinfo"> <div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="grid gap-10 md:grid-cols-4 mb-12"> <div class="md:col-span-1"> <a href="../" class="text-2xl font-extrabold text-white tracking-tight" style="font-family:'Sora',sans-serif;">scorm<span class="text-primary-400">.jp</span></a> <p class="mt-4 text-sm leading-relaxed">SCORMに関するあらゆるお悩みを解決する、eラーニング専門のサービスサイトです。</p> </div> <div> <h4 class="text-white font-bold text-sm mb-4">サービス</h4> <ul class="space-y-2 text-sm"> <li><a href="../service/consultation.php" class="hover:text-white transition">無料相談</a></li> <li><a href="../service/conversion.php" class="hover:text-white transition">SCORM変換</a></li> <li><a href="../service/production.php" class="hover:text-white transition">SCORM対応教材制作</a></li> </ul> </div> <div> <h4 class="text-white font-bold text-sm mb-4">情報</h4> <ul class="space-y-2 text-sm"> <li><a href="../works/" class="hover:text-white transition">制作実績</a></li> <li><a href="../column/" class="hover:text-white transition">SCORMコラム</a></li> <li><a href="../faq/" class="hover:text-white transition">よくある質問</a></li> </ul> </div> <div> <h4 class="text-white font-bold text-sm mb-4">会社情報</h4> <ul class="space-y-2 text-sm"> <li><a href="https://www.elephancube.co.jp/" target="_blank" rel="noopener noreferrer" class="hover:text-white transition">運営会社(株式会社エレファンキューブ)</a></li> <li><a href="../privacy/" class="hover:text-white transition">プライバシーポリシー</a></li> <li><a href="../contact/" class="hover:text-white transition">お問い合わせ</a></li> </ul> </div> </div> <div class="border-t border-gray-800 pt-8 flex flex-col md:flex-row items-center justify-between gap-4"> <p class="text-xs">運営: <a href="https://www.elephancube.co.jp/" target="_blank" rel="noopener noreferrer" class="hover:text-white transition">株式会社エレファンキューブ</a></p> <p class="text-xs">© 2026 Elephancube Inc. All rights reserved.</p> </div> </div> </footer> <script> const menuBtn = document.getElementById('menuBtn'); const mobileMenu = document.getElementById('mobileMenu'); menuBtn.addEventListener('click', () => mobileMenu.classList.toggle('hidden')); mobileMenu.querySelectorAll('a').forEach(link => { link.addEventListener('click', () => mobileMenu.classList.add('hidden')); }); const header = document.querySelector('header'); window.addEventListener('scroll', () => { header.classList.toggle('shadow-md', window.scrollY > 10); header.classList.toggle('shadow-sm', window.scrollY <= 10); }); </script> </body> </html>