Advanced Distributed Learning Initiative

Sharable Content Object
Reference Model (SCORMTM)
Version 1.2

SCORM ﾗﾝﾀｲﾑ環境
2001 年 10 月 1 日

Copyright  2001 Advanced Distributed Learning. All Rights Reserved.
Japanese language edition Copyright  2002 by
Advanced Learning Infrastructure Consortium and e-Learning Consortium Japan.
Japanese translation/rights arranged with Advanced Distributed Learning.

このページは空白である．

Copyright  2001 Advanced Distributed Learning. All Rights Reserved.
Japanese language edition Copyright  2002 by
Advanced Learning Infrastructure Consortium and e-Learning Consortium Japan.
Japanese translation/rights arranged with Advanced Distributed Learning.

Advanced Distributed Learning
Sharable Content Object Reference Model
ﾊﾞｰｼﾞｮﾝ 1.2
SCORM ﾗﾝﾀｲﾑ環境

ADLNet から入手可能(http://www.adlnet.org/)
日本語版は ALIC,eLC から入手可能(http://www.alic.gr.jp/, http://www.elc.or.jp/)

質問やコメントは ADLNet 問い合わせセンタまで．
日本語版に関する質問やコメントは ALIC, eLC まで．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

iこのページは空白である.

ii

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

エディタPhilip Dodds (ADL)
主要貢献エディタ (ADL)
Ron BallWilliam Capone
Jeff Falls
Dexter Fletcher
Alan Hoberney
Paul Jesukiewicz
Kirk Johnson
Mary Krauland

Jeff Krinock
Lori Morealli
Douglas Peterson
Jonathan Poltrack
Chris Snyder
Schawn Thropp
Bryce Walat
Jerry West
貢献者リストの一部:

Alliance of Remote Instructional Authoring & Distribution
Networks for Europe (ARIADNE) (http://www.ariadne-eu.org/)
Erik Duval
Eddy Forte
Florence Haenny
Ken Warkentyne
Aviation Industry CBT (Computer-Based Training) Committee (AICC)(http://www.aicc.org/)
Jack HydeBill McDonald
Anne Montgomery
Institute of Electrical and Electronics Engineers (IEEE)
Learning Technology Standards Committee (LTSC) (http://ltsc.ieee.org/)
Mike Fore
Wayne Hodgins
IMS Global Learning Consortium, Inc. (http://www.imsglobal.org/)Thor Anderson
Steve Griffin
Mark Norton
Ed Walker(At Large)
Bob Alcorn
Lenny Greenberg
Chris Moffatt
Boyd Nielsen
Claude Ostyn
Chantal Paquin

Mike Pettit
Dan Rehak
Tom Rhodes
Tyde Richards
Roger St. Pierre
Kenny Young…and many others.

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

iii

日本語版翻訳者
ALIC 相互運用性部会コンテンツ標準 WG ガイドライン SWG
eLC 相互運用性委員会ガイドライン WG

iv

氏名

所属

担当

石打 智美
関口 法門
高橋 和彦
田口 正弘
樋田 稔
仲林 清
廣瀬 文男

NTT データ（株）（株）富士ゼロックス総合教育研究所（株）富士通インフォソフトテクノロジ（株）アクセスチケットシステムズ
エスエイティーティー（株）（株）エヌ・ティ・ティ エックス
ウイルソンラーニングワールドワイド（株）

2 章，査読査読
3 章，査読査読
1 章，査読1 章，2 章，査読
査読

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

このページは空白である．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

v

目次
３章 SCORMTM ランタイム環境.............................................................................3-1
3.1. ランタイム環境の概要 .......................................................................................................3-3
3.2. 起動 .......................................................................................................................................3-5
3.2.1.
学習資源の起動 ...........................................................................................................3-5
3.2.1.1.
アセット ...................................................................................................................3-6
3.2.1.2.
Sharable Content Object(SCO)..................................................................................3-6
3.3. アプリケーションプログラムインターフェース (API)..................................................3-7
3.3.1.
API の概要 ....................................................................................................................3-7
3.3.2.
SCO／LMS 間通信の記述...........................................................................................3-7
3.3.2.1.
SCO／LMS 間通信 API の詳細...............................................................................3-8
3.3.2.2.
SCO ／ LMS 間通信の API アダプタ状態遷移 ..................................................3-13
3.3.3.
API エラー・コードの使用法 ..................................................................................3-15
3.3.4.
API の一般規則 ..........................................................................................................3-17
3.3.5.
LMS の責任範囲 ........................................................................................................3-17
3.3.5.1.
API アダプタ ..........................................................................................................3-17
3.3.6.
SCO の責任範囲.........................................................................................................3-18
3.3.6.1.
Find API ..................................................................................................................3-18
3.4. データモデル .....................................................................................................................3-20
3.4.1.
データモデルの概要 .................................................................................................3-20
3.4.1.1.
SCORM ランタイム環境データモデル...............................................................3-20
3.4.1.2.
SCORM ランタイム環境データモデルの一般規則 ...........................................3-21
3.4.2.
データモデル要素 .....................................................................................................3-21
3.4.3.
リストの扱い .............................................................................................................3-22
3.4.4.
SCORM ランタイム環境データモデル...................................................................3-23
3.4.5.
データタイプおよび制御ボキャブラリ..................................................................3-85
3.5. ランタイム環境の動作 .....................................................................................................3-89

APPENDIX A 略語リスト...................................................................................A-1
APPENDIX B 参考文献 ....................................................................................... B-1
APPENDIX C 改訂履歴 ....................................................................................... C-1

vi

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

このページは空白である．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

vii

３章
SCORM TM ランタイム環境

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-1

このページは空白である．

3-2

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3.1. ランタイム環境の概要
SCORM の目的は，学習資源を再利用可能とし，複数の学習管理システム(LMS)
にわたって相互運用可能とすることである．これを可能とするために，学習資源を起動する共通の方法，学習資源が LMS と通信するための共通のメカニズム，
そして，通信の基礎を形成するための事前に定義された言語，ないし，ボキャブ
ラリがなければならない．図 3.1a に図示するように，ランタイム環境の 3 つの則面は起動，応用プログラムインターフェース（以下，API）およびデータモデ
ルである．

Learning Management System (LMS)
LMS
LMS
ServerServerServerSide
Client Side
Browser

Data Model
SCOとLMS間でやりとりされる
実際のデータ

SCO

API
API
Adapter
Adapter

Asse
t

起動

JavaScript
JavaScript

API (SCOとLMS間の通信リンク)

図 3.1a:SCORM ランタイム環境に適用する起動，API およびデータモデル

起動メカニズムは，LMS が Web ベースの学習資源を起動するための共通な方法を定義する．このメカニズムは，配信された学習資源と LMS の間で通信を確立するための手続きと責任範囲を定義する．通信プロトコルは，共通の API の使用を通して標準化される．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-3API は，LMS に学習資源の状態(例えば，初期化，終了，エラーの条件)を知らせる通信メカニズムであり，LMS と Sharable Content Object(SCO)の間でデータ(例
えば得点，制限時間，など)を取得したり，設定したりするために使用される．
データモデル(Data Model)は，伝達される(例えば学習内容の状態)情報を定義するために使われるデータ要素の標準セットである．最も単純な場合，データモデ
ルは，LMS と SCO の両方が「知っている」ことになっている要素を定義している．LMS は要求されるデータ要素の状態を複数維セッションに渡って維持しなければならず，さらに，学習コンテンツは，複数のシステム間にまたがる再利用が発生する場合，これらのあらかじめ定義されたデータ要素だけを利用しなければならない．

3-4

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3.2. 起動
起動の共通機構は，その基盤である LMS の実装の依らずに，複数の LMS 間で学習資源の配信動作の整合を可能にする．この文脈では， LMS という用語は，学習資源の配信管理機能を含むシステムを記述するために使用していることに注意されたい．この起動の機構は，学習経験の文脈で，コンテンツオブジェク
ト(SCOs)とアセットの形式でウェブ対応の学習資源の配信を扱うものである．

3.2.1.

学習資源の起動コンテンツアグリゲーションモデルで示されたように，SCORM コンテンツモデ
ルは，次の 3 つの構成要素で構成される．
アセット
SCO
コンテンツアグリゲーション
LMS によって起動され得る 2 つの SCORM コンテンツモデル構成要素は，アセット，及び SCO である．起動される学習資源のタイプに応じて異なる起動要求がある．起動メカニズムは，LMS が学習資源を起動する共通の方法を定義する．
配信された学習資源と LMS 間の通信を確立するための手続きと責任範囲は，起動された SCORM 学習資源のタイプに応じて異なる．
コンテンツパッケージで定義されたコンテンツ構造に基づく学習資源の間のシー
ケンシング，とナビゲーションを管理することは，LMS の役割である．LMS は，学習資源に定義された前提条件の達成に基づいて適応的にシーケンシングを決定する．個別の学習経験を構成する学習資源を通しての進行は，LMS の能力に依存していて，シーケンシャル，非シーケンシャル，ユーザ指示，あるいは，学習者適応のいずれかとなる．現時点で，SCORM は，学習資源の間のシーケンシン
グとナビゲーションの標準化を扱わない．これはまた，シーケンシングに関係したビジュアルコンポーネントのルック・アンド・フィールのガイドラインが存在しないことを意味する．これは，SCORM の将来のバージョンで処理されるであろう．
例えば，LMS は，コンテンツアグリゲーション内をユーザ主導でナビゲーショ
ンするためのメニューを表示することができる．そのメニュは，一連のハイパーリンクで，ハイパーリンクのターゲットはメニュに現れる学習資源の対応する起動場所を含む．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-5

他の方法として，LMS は，学習者のパフォーマンスに基づいて学習資源を起動する順番を適用的に決定するサーバサイドコンテンツ配信機能を含むか，利用することができる．この場合，配信機能を実行するサーバサイド構成要素は，直接，もしくは，間接的に適切な学習資源の指定された起動場所に基づいて，その学習資源を提供するであろう．
なんらかのイベントに基づいて，どの学習資源を起動するかを決定するのは，
LMS (あるいは配信機能/サービス)の役割である．LMS は，コンテンツ構造において定義された順に次の学習資源を起動するか，ユーザが選択した SCO を起動
するか，あるいは，適応的な方式により学習者パフォーマンスに基づき，起動する SCO を決定する．起動する適切な学習資源を決定する際，LMS はコンテンツパッケージ中で定義された学習資源の起動場所によって定められる URL を使って，その場所に存在する学習資源に誘導するか，あるいは，その場所に存在する
学習資源と現在表示された学習資源を置換する．
LMS は，起動機能を望みの任意の方法で起動を実装してもよいし，必要に応じて LMS のクライアントまたはサーバ部分に実際の起動機能を任せてもよい．現実の起動は，HTTP プロトコルを用いて果たさなければならない．最終的に，内容パッケージの起動ロケーションによって指定された学習資源は，起動されクライアントブラウザに渡される．
3.2.1.1.

アセット

アセットに対応する学習資源の場合，SCORM 起動モデルが要求するのは，LMS
が HTTP プロトコルを使ってアセットを起動することだけである．アセットは，
API とデータモデルを使って LMS に通信する必要がないので，LMS によって供給された API アダプタを検索する必要性はない．
3.2.1.2.

Sharable Content Object(SCO)

SCO に対応する学習資源の場合，SCORM 起動モデルが要求するのは，LMS が一度に一つの SCO のみを起動し，一つの SCO だけが同度にアクティブになることである．ＳＣＯは他のＳＣＯを起動してはならない．
LMS は，SCO を，LMS ウィンドウの子ウィンドウまたは子フレームであるブラ
ウザ・ウィンドウで起動しなくてはならない．ここで，LMS ウィンドウは API
アダプタをドキュメント・オブジェクト・モデル(DOM)27 オブジェクトとして公開する．API アダプタは LMS により提供されなければならない．
SCO は API アダプタが見つかるまで，親およびオープンウィンドウの階層を再帰的に探索しなくてはならない．ひとたび API アダプタが見つかれば，SCO は
LMS とコミュニケーションを開始できる．

3-6

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3.3. アプリケーションプログラムインターフェース (API)3.3.1.

API の概要SCORM は，AICC の CMI001Guidelines for Interoperability4 ドキュメントの中で定義された，ランタイム環境機能に直接基づいている．ADL は，AICC メンバおよび参加者と協力して共通の起動，API 仕様を開発し，ウェブ・ベースのデータ要素を採用した．次のセクションでは，SCORM に関係するものとして，AICC API
仕様の重要な要素の概観を提示する．

3.3.2.

SCO／LMS 間通信の記述

共通 API を使用することにより，相互運用性と再利用に関する多くの SCORM
高水準要求を満たすことができる．共通 API は，SCO が LMS と通信するための標準化された方法を提供し，同時に，コンテンツ開発者に対して通信機能の個別の実装を隠蔽する．最も単純な言い方をすれば，API は単なる既定の機能セット
であり，SCO は利用可能なものとしてそれに依存することができる．API は
SCO から実装の詳細を隠蔽し，それにより再利用と相互運用性を促進する．API
アダプタは API の機能を実現・提示する機能ソフトウェア部品である．コンテ
ンツ開発者が同じ公開インターフェースを使用する限り，API アダプタの内部実
現方法はコンテンツ開発者が意識すべき事項であってはならない．LMS は単に，
API の機能を実現し，クライアント SCO にそのインターフェースを提示する
API アダプタを提供する必要がある．
API の重要な面は，SCO が LMS と通信することを可能にするコミュニケーショ
ン・メカニズムであるということである．ひとたび SCO が起動されたならば，
SCO は LMS と情報を get したり set したりする．API アダプタと SCO 間の全てのコミュニケーションは SCO によって開始される．現在，LMS から，
SCO が実現する機能を呼び出し開始するためのサポート機能はない．API アダプ
タ(API Adaptor)オブジェクトの機能は以下の 3 つである．
実行状態
API 機能 LMSInitialize(
う．

)および LMSFinish ()の 2 つは，実行状態を扱

状態管理
API は，エラーを扱うために使用される 3 つの機能を持つ．これらの 3 つのAPI 機能は次のとおりである:LMSGetLastError()，
LMSGetErrorString(errornumber)および LMSGetDiagnostic(parameter)．
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-7データ転送他の 3 つの API 機能は LMS との間でのデータのやりとりに使用される:LMSGetValue(data model element)，LMSSetValue(data model element，value)
および LMSCommit()．ここで，API は，外部データモデルとして別個に定義されたデータ値の取得，設定を行うよう設計されていることに注意されたい．AICC 仕様は，このようなデータ・モデルのひとつで cmi と呼ばれるものを定義している．他のデータ・モデルも，同様に開発され，この APIとともに使用することができる．
3.3.2.1.

SCO／LMS 間通信 API の詳細

次のテーブルは SCO から LMS への交信 API を詳細に定義する．

LMSInitialize

状態実行
記述: この機能は，API アダプタに対して，SCO がこれから LMS と通信することを示す．これにより，LMS は，LMS 固有の初期化項目を取り扱うことができる．SCO は，他のどの API 機能を呼ぶよりも前にこの機能を呼ばなくてはならない．
構文:

LMSInitialize(パラメータ)

パラメータ: “” この標準に適合するためには，空文字列(“”)を渡されなければならない．空文字列(“”)以外の値は将来の拡張のために予約されている．
返り値: 文字列は真理値を表わす．
∙∙「True」結果は，LMSInitialize("")が成功したことを示す．
∙∙「False」結果は，LMSInitialize("")が失敗だったことを示す．
「False」の返り値が返された場合，LMS が未知の状態であり，以降のいかなる API 呼び出しも LMS によって処理されないことを SCO に示す．
例:
var result = LMSInitialize("")
if (result == "false"){// Do some error handling}else{// continue with the execution of the SCO}

LMSFinish

3-8

SCO は，コンテントが LMS とのコミュニケーションを確立したいと
API アダプタに伝える．典型的な返り値は「True」．
記述: SCO は，この時点より前に LMSInitialize の呼び出しに成功した
後，LMS との交信が不要と判断すれば，この関数を呼びださなければな
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

らない．この呼び出しは 2 つのことを意味する:
1. LMSSetValue()呼び出しを使用したいかなる設定データも LMS によって保持されることが SCO に対して保証される．
2. SCO は LMS との通信を終了した．
構文:

LMSFinish(parameter)

パラメータ："" この標準に適合するためには，空文字列("")を渡されなけ
らばならない．空文字列("")以外の値は将来の拡張のために予約されている．
返り値: 真理値を表わす文字列･･「True」結果は，LMSFinish("")が成功したことを示す．
･･「False」結果は，LMSFinish("")が失敗だったことを示す．
「True」の返り値が返された場合，SCO は他の API 関数をそれ以上呼んではならない．
「False」の返り値が返された場合，これは LMS が未知の状態であり，以降のいかなる API 呼び出しも，LMS によって処理されるか処理されないか不明であることを SCO に示す．
例:
var result = LMSFinish("");

LMSGetValue

データの移行
記述: この機能により，SCO は LMS から情報を取得できる．この機能は以下を決定するために使用される:･･データモデルの様々なカテゴリー(グループ)および要素の値･･サポートされているデータモデルのバージョン･･特定のカテゴリーや要素がサポートされているかどうか．
･･配列や要素リスト中の現在のアイテム数
完全なデータ要素名かキーワードがパラメータとして提供される．要求
されたデータモデルパラメーターの現在値が返される．1 つの値だけ(常に文字列)が呼び出しごとに返される．
構文:

LMSGetValue(パラメータ)

パラメータ:
datamodel.group.element指定された要素の値を返す．
datamodel._version_version キーワードは LMS によってサポートされるデータモデ
ルのバージョンを決定するために使用される．
datamodel.element._count_count キーワードは現配列中の要素の数を決定するために使用される．数は配列中の最終位置の表示ではなく配列中の要素の総数である．
datamodel.element._children_children キーワードは LMS によってサポートされるグループも
しくはカテゴリ中すべての要素を決定するために使用される．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-9返り値: 返り値はすべて文字列である．
LMSGetValue(datamodel.group.element)
返り値は要求された要素あるいはグループの現在値を表わす列である．
LMSGetValue(datamodel._version)
返り値は LMS によってサポートされたデータモデルのバージョンを表わす列である．
LMSGetValue(datamodel.group._children)
戻り値は，LMS によってサポートされる，指定のグループまたは
カテゴリ中のすべての要素リスト名をコンマで区切ったものである．要素に子はないが，要素がサポートされる場合，空文字列("")
が返される．要素がサポートされない場合も，空文字列("")が返される．要素がサポートされない場合，引き続いて最後のエラーを要求する[LMSGetLastError()]ことで，要求がサポートされているかどうかを決定できる．
エラー「401 Not implemented error」は要素がサポートされないことを示す．
LMSGetValue(datamodel.group._count)
返り値は現在の要素リストあるいは配列中のアイテム数を示す整数である．
例:
var value = LMSGetValue("cmi.core.student_name")
典型的な返り値は Hyde,Jackson といったものである．
var value = LMSGetValue("cmi.core.lesson_status")
典型的な返り値は incomplete”(非完了)である．
var value = LMSGetValue("mi._version")
CMI データモデルを定義する IEEE のドキュメントの現在の規格
案は，Computer Managed Instruction 規格案というタイトル
で，ID が P1484.11.2，バージョンが 3.4 である．この呼び出し
は，IEEE のドキュメントのバージョン番号 3.4 を返す．
var value = LMSGetValue("cmi.student_preferences._children")
これはカテゴリサポート情報の要求である．典型的な 1 つの返り値はaudio,speed,text で あ る ． 空 文 字 列 ()が返される場合，
student_preferences はサポートされていない．最後のエラーを決定する
追加の API 呼び出しでこれを確認できる．
LMSSetValue

記述: この機能により，SCO は LMS に情報を送ることができる．API
アダプタは，LMS へ直ちに情報を転送するか，あるいは他のアプローチに基づいて情報を転送するように設計される．
この機能はデータ・モデル中の様々なカテゴリー(グループ)や要素に現在値を設定するために使用される．
データ要素名およびそのグループがパラメータとして提供される．呼び出しの第 2 のパラメータとして，データ要素の新しく設定したい値が含まれる．各呼び出しでは 1 つの値だけが送られる．
構文:

3-10

LMSSetValue(パラメータ,値)Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

パラメータ: これはデータモデルに定義された完全適格要素名である．
引数は大文字と小文字が区別される．引数は引用符で囲まれた文字列である．
下記はこのパラメータがとり得るいくつかの形式を表わす．
datamodel.element
これはデータモデル(Data Model)の中で定義されたカテゴリある
いはグループの名前である．一つの例は cmi.comments である．
datamodel.group.element
これはデータモデル(Data Model)の中で定義された要素の名前である．一つの例は cmi.core.lesson_status である．
datamodel.group.n.element
要素配列(ゼロベース方式のインデックス付けが使用される)の n 1 番目のメンバのサブ要素の値．
値: 第 1 パラメータで指定されるデータモデル要素に対して，この標準規格で定義されたデータ型に変換可能でなくてはならない文字列である．
返り値:文字列は真理値を表わす．
･･ True 結果は，LMSSetValue()が成功したことを示す．
･･ False 結果は，LMSSetValue()が失敗だったことを示す．
例:
var result = LMSSetValue("cmi.core.score.raw","95");
cmi.core.score.raw に値 95 を設定
LMSGetValue("mi.core.score.raw")に続く呼び出しは，95 を返さなければならない．
LMSCommit

記述: SCO から LMSSetValue()で受け取った値を API アダプタがキャッシングしている場合，この呼び出しは，LMS がまだ保持していないこれ
らすべての値を保持するように要求する．
いくつかの実装では，API アダプタは設定値を受け取ると直ちに保持し，それらをクライアントにキャッシュしない．そのような実装では，
この API 呼び出しは冗長で，API アダプタからは何の追加アクションも起きない．この呼び出しは，LMSSetValue()呼び出しによる送信データ
が LMSCommit()の完了時に LMS によって保持されることを SCO に保
証する．
構文:

LMSCommit(パラメータ)

パラメータ: "" この標準に適合するためには，空文字列("")を渡されなけらばならない．空文字列("")以外の値は将来の拡張のために予約されている．
返り値: 真理値を表わす文字列･･ True 結果は，LMSCommit("")が成功したことを示す．
･･ False 結果は，LMSCommit("")が失敗だったことを示す．
「False」の返り値が返された場合，これは LMS が未知の状態であり，以降のいかなる API 呼び出しも，LMS によって処理されるか
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-11処理されないか不明であることを SCO に示す．
例:
var result = LMSCommit("");
キャシュされた任意の値は，SCO の LMSSetValue()呼び出しを経由して以前に設定されたもので，LMS によって持続されていない
値が持続されるよう要求する．

LMSGetLastError

状態管理
記述: SCO は，すべての API 呼び出しが成功したか否か，またもし不成功の場合，何が悪かったかを評価する方法を持たねばならない．この関数は，前の API 呼び出しに起因するエラー・ステータス・コードを返す．(この関数，LMSGetErrorString および LMSGetDiagnostic― すなわちエラー関数― を除いて)API 関数が呼ばれるごとにエラーコード
がリセットされる．SCO はエラーコードを検索するためにエラー関数
を何回も呼び出すことができ，次の API 呼び出しが行われるまで，そのコードは変わらない．
構文: LMSGetLastError()
パラメータ: 無し
返り値:
返り値は文字列で，以下のカテゴリに属するエラーを識別する整数番号に変換可能なものである．
100 番台 一般的エラー
200 番台 構文エラー
300 番台 LMS エラー
400 番台 データモデルエラー
次のコードがエラー・メッセージに利用可能である．
0
エラーなし
101
一般的な例外201
不正引数エラー202
要素は子要素を持たない
203
要素は配列でない ‐ count を持たない
301
未初期化
401
非実装エラー
402
無効な値設定呼出し，要素はキーワード403
要素は読み出し専用
404
要素は書き込み専用
405
不正データ・タイプ
追加コードは未定義
例:
var errorCode = LMSGetLastError();

LMSGetErrorString
3-12

記述: この関数により，コンテンツは，エラーコード番号によって表わされるエラーの記述を得ることができる．
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

構文: LMSGetErrorString(errornumber)
パラメータ: エラーコードを表わす整数番号．
返り値: エラー記述を表現する文字列．
例:
var errorString = LMSGetErrorString("403");errorString には”Element is read only”(要素は読み出し専用)という文
字列設定されなければならない．
LMSGetDiagnostic

記述: この機能はベンダー特有のエラー記述の開発及びコンテントによるアクセスを可能にする．これらは，通常，エラーに関する補足詳細を提供する．
構文: LMSGetDiagnostic(parameter)
パラメータ: パラメータは，2 つの形式のうちの 1 つをとる．
･･エラーコードを表わす整数番号．これは，リストされたエラーコ
ードについての補足情報を要求するものである．
･･""空文字列．これは，発生した最後のエラーについての補足情報を要求するものである．
返り値: 返り値は，要求されたエラーあるいは最後のエラーのいずれかに関係する任意のベンダーに要望する追加の情報を表わす文字列である．
例:
var moreInfo = LMSGetDiagnostic("403");moreinfo は，”Element is read only”(要素は読み出し専用)というエラーに関する，ベンダー特有の追加情報を含んでよい．

3.3.2.2.

SCO ／ LMS 間通信の API アダプタ状態遷移

SCO／LMS 間の通信 API アダプタは，実行時に，SCO のインスタンス毎に，いくつかの状態(図 3.3.2.2a )を遷移する．API アダプタの状態により，特定の入力
イベントに対する API アダプタの応答が決まる．これらの各状態間において，SCO は 異 な る ア ク テ ィ ビ テ ィ を 受 け と る ． API の 遷 移 す る 状 態 は ， Not
Initialize”， Initialized”， Finished”の３つである．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-13

LMSInitialize(“”)
LMSがSCOを起動

Not Initialized
SCO の責任範囲:
API を見つけLMSInitialize
を呼び出す

Initialized

LMSFinish(“”)

FinisheSCO は以下を呼び d
出せる:•LMSGetValue•LMSSetValue•LMSGetLastError•LMSGetErrorString•LMSGetDiagnositc•LMSCommit•LMSFinish

LMSFinish が false (のみ) を 返し
た場合，SCO は以下を呼び出せる:•LMSGetLastError•LMSGetErrorString•LMSGetDiagnositc

Figure 3.3.2.2a: API アダプタの状態遷移

Not Initialize(未初期化): これは，SCO が実際に起動されてから，LMSInitialize() API 関数を呼び出すまでの状態に相当する．この状態において，SCO は，
LMS によって提供されてる API アダプタを発見しなくてはならない．いったん，
API アダプタが見つかれば，SCO は，以下の API 関数を呼び出すことができる．
LMSInitialize(“”)
LMSGetLastError()
LMSGetErrorString()
LMSGetDiagnostic()
Initialized(初期化済み): 初期化済み: これは，SCO が，LMSInitialize（） API
関数を呼び出してから，LMSFinish() API 関数を呼び出すまでの状態である．
SCO が初期化済み状態にあるならば，LMSInitialize()を除く全ての API 関数
呼び出しが許される．
Finished(完了): これは，SCO が，LMSFinish() API 関数を呼び出した状態である．もし，API アダプタが LMSFinish()を呼び出した SCO に false を返した場合，SCO は以下の API 関数を呼び出すことができる．
LMSGetLastError()
LMSGetErrorString()
LMSGetDiagnostic()
もし LMS API アダプタ が false を返せば， LMS API アダプタがいかなる API
関数呼び出しにも適切に応答する保証はない．

3-14

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3.3.3.

API エラー・コードの使用法

SCO は，すべての API 呼び出しが成功したか否か，またもし不成功の場合，何が悪かったかを評価する方法を持たねばならない．LMSGetLastError()関数は，前の API 関数呼び出しによってもたらされたれたエラーのタイプを決定するために使用することができるエラーコードを返す．
構文: LMSGetLastError()
パラメータ: なし
返り値型: 文字列‐ 値は次のテーブル中で識別される整数番号に変換すること
ができる．
コード

記述

使用法

“0”

No Error(エラーなし)

エラーなし．API 呼び出し成功．

“101”

General Exception(一般的な例外)

常に一般的な例外を示すために使用す
る．

“201”

Invalid argument error(無効な引き数エラー)

存在しない SCORM 実行環境データモデ
ル要素への呼び出しが行なわれたとき使用される．
不正な引数が API 経由で引き渡されたとき使用される．

例えば，LMSGetValue("cmi.core.zip_code")"cmi.core.zip_code"は有効な CMI データモデル要素ではない．
例えば，LMSInitialize(“init”)
LMSInitialize(“”)は、空文字列である．
“202”

Element cannot have children(要素は子を持つことができない)

LMSGetValue()が，_children をサポートしていない，いずれかのデータモデルカテ
ゴリあるいは要素に対して呼ばれたときに使用される．

例. LMSGetValue("cmi.student_id _children")“203”

Element not an array(配列でない要素である)
Cannot have count(数値を持たない)

LMSGetValue()が，_count をサポートして
いない，いずれかののデータモデルカテ
ゴリあるいは要素に対して呼ばれたときに使用される．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-15

例. LMSGetValue( cmi.core_count")“301”

Not Initialized(未初期化)

LMSInitialize()が呼ばれる前に，いず
れかの API 関数が呼び出された場合に使
用される．

“401”

Not implemented error(非実装エラー)

LMS がサポートしていないデータモデル
要素を呼び出したとき，もしくは，
SCORM 実行環境データモデル以外のデー
タモデルが使われた場合に使用される．

例. LMSGetValue( cmi.objectives.0.id)

cmi.objectives.0.id 要素はオプション要素である．LMS がこの要素をサポートしない場合，LMS は空文字列()を返し，エラーコードを 401 に設定しなくてはな
らない．
例. LMSGetValue( xyz.score.result )xyz.score.result は，有効な SCORM 実行環境データモデル要素ではない．それが，有効なデータモデル要素( cmi”に対して“xyz”)ではないので，LMS はエラーコ
ード 401 を設定し，空文字列を返さなくてはならない．
“402”

Invalid set value,element is a keyword(無効なセット値であり，要素がキーワード)

LMSSetValue()呼び出しがキーワードに対して行われた場合に使用される．

“403”

例. LMSSetValue( cmi.core. _children , student_id.student_name”)
cmi.core._children はキーワード．
Element is read only(要素は読み出し専 LMSSetValue()呼び出しが，読み出し専用
用)
要素に対して行われた場合に使用され
る．

“404”

例. LMSSetValue( cmi.core.student_id
JoeStudent )cmi.core.student_id は読み出し専用の CMI 要素．
Element is write only(要素は書き込み専 LMSGetValue()呼び出しが，書き込み専用
用)要素に対して行われた場合に使用され
る．

“405”

3-16

例. LMSGetValue( cmi.core.exit )cmi.core.exit は書き込み専用の CMI 要素．
Incorrect Data Tyoe(不正データタイプ)
要素に不正なデータタイプを設定しようとした場合に使用される．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

例. LMSSetValue("cmi.core.score.raw","eighty five")" eighty five "は”cmi.core.score.raw”の正しいデータ型ではない．
正しいデータ型は，CMIDecimal("85")または CMIBlank("")である必要がある．
例. LMSSetValue("cmi.core.lesson_status","Not Attempted")"Not Attempted"は，cmi.core.lesson_status 要素の有効なボキャブラリメンバではない．
ボキャブラリは，大文字と小文字の区別ができて，さらに完全に合致しなければならない．

3.3.4.

API の一般規則

次のリストは，API の一般的な使用法規則の要約である．
関数名はすべて大文字と小文字の区別ができて，正確に表わされなければならない．
関数パラメータまたは引数は，大文字と小文字の区別ができ，全てのパラメ
ータは，小文字である．
API 関数への各呼び出しは，エラーハンドリング関数を除いて，エラーコー
ドをリセットする．

3.3.5.

LMS の責任範囲

3.3.5.1.

API アダプタLMS は，前の節に記述された API 要求機能を実装する API アダプタを提供しなくてはならない．SCO が下位の通信インフラストラクチャーについて知る必要がなく，代わりに，標準化された LMS API の存在のみに完全に依存すればよい
ように，このアダプタは特別のアダプタ実装の詳細を SCO に隠蔽する必要がある．API アダプタを使用するための必要条件は以下のとおりである．
LMS は，API アダプタを含んでいる子ウィンドウあるいは LMS ウィンドウの子フレームであるブラウザ・ウィンドウで SCO を起動しなければならな
い．
LMS は API アダプタを提供しなければならない．
SCO から API インタラクションのためにサポートされる唯一のメカニズムは，
ECMAScript(Java スクリプト)呼び出しを経由する．
API アダプタは API と命名されるオブジェクトとして DOM を経由してアクセス可能でなければならない．
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-17例として，API アダプタは，以下のような署名を持つ Java アプレットとして実装されるであろう．
public class API extends Applet{
public String LMSInitialize( String parameter ){ . . .}
public String LMSGetValue( String element ){ . . }
public String LMSSetValue( String element, String value ){. . .}
public String LMSCommit( String parameter ){. . .}
public String LMSFinish( String parameter ){. . .}
public String LMSGetLastError(){. . .}
public String LMSGetErrorString( String errorCode ){. . .}
public String LMSGetDiagnostic( String errorCode ){. . .}}

例えば，C++のような他のプログラミング言語で API アダプタを実装することができ，例えばブラウザプラグインとして読み込むことができることに注意されたい．API アダプタの実装は LMS 固有であってよく，上記のコードは単なるアプローチ例に過ぎない．LMS API アダプタを実装するには多くの方法がある．

3.3.6.

SCO の責任範囲

3.3.6.1.

Find APISCO は，少なくとも，LMSInitialize()および LMSFinish()API を呼び出さなくてはならない．そのためには，コンテンツはは LMS によって提供される
API アダプタを見つけなければならない．LMS は，API アダプタを DOM ウイン
ドウ階層に置いて，SCO が API を見つけるために再帰的に親およびオープナウ
ィンドウ階層を捜すことができるようにしなくてはならない．コンテンツは，
LMS API アダプタを見つけてコミュニケーションを確立しなくてはならない．
SCO がこれを実行するためにどのような方法を選択をするかは，SCORM によって決められていない．
次のコード例は，LMS API アダプタを見つけるために SCO が使用することができるアルゴリズムを示す．これらの関数の使用は SCORM によって課された要求

3-18

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

ではなく，また，SCO は LMS API アダプタを見つけるために他のアプローチを使用することができる．
<SCRIPT LANGUAGE=JAVASCRIPT >var findAPITries = 0;function findAPI(win){// Check to see if the window (win) contains the API// if the window (win) does not contain the API and// the window (win) has a parent window and the parent window// is not the same as the window (win)while ( (win.API == null) &&(win.parent != null) &&(win.parent != win) ){// increment the number of findAPITries
findAPITries++;// Note: 7 is an arbitrary number, but should be more than sufficientif (findAPITries > 7){
alert("Error finding API -- too deeply nested.");return null;}// set the variable that represents the window being// being searched to be the parent of the current window// then search for the API again
win = win.parent;}
return win.API;}
function getAPI(){// start by looking for the API in the current window
var theAPI = findAPI(window);// if the API is null (could not be found in the current window)// and the current window has an opener window
if ( (theAPI == null) &&(window.opener != null) &&(typeof(window.opener) != "undefined") ){// try to find the API in the current window’s opener
theAPI = findAPI(window.opener);}// if the API has not been foundif (theAPI == null){// Alert the user that the API Adapter could not be foundalert("Unable to find an API adapter");}
return theAPI;}

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-19

3.4. データモデル

3.4.1.

データモデルの概要

共通のデータモデルを確立する目的は，異なる LMS 環境によっても，SCO に関する定義された情報セットを確実に追跡することができるようにすることである．
例えば，学習者の得点（スコア）追跡が一般的な要求であることとした場合，コンテントは LMS 環境に得点を報告するための共通の方法を確立することが必要である．もし SCO が彼ら自身の特有な得点表現を使用するならば，学習管理シ
ステム(LMS)はその情報をどのように受取り，格納し，処理するかが分からない．
様々なコミュニティーおよび標準組織の中で多くのデータモデルが開発中である．
これらのデータモデル仕様書案は，SCO と LMS 環境の間で交換される情報セッ
トを機能的にグループ分けしようとしている．例えば，以下のようなものである．
学習者プロフィール情報，質問およびテストのインタラクション(相互作用)，状
態情報，評価など．SCORM のこのバージョンの公表時点では，これらのデータ
モデル仕様書案は，まだ開発中であり，広く実装されていないし，テストもされていない．
3.4.1.1.

SCORM ランタイム環境データモデル

このセクションのデータモデルは，SCORM ランタイム環境データモデルとして定義され，AICC CMI Guidelines for Interoperability に記述された AICC CMI デー
タモデルから直接導かれたものである．AICC CMI データモデルは，よく定義されており，過去に実装が行われているので，SCORM に取り入れるよう選択された．将来，新しいデータモデルセットが採用され SCORM に組み込まれることが期待される．新しいデータモデルセットが定義され採用された場合，SCORM の
このバージョンの中で定義されたデータモデル要素は，そこにマッピングされることになろう．現在のデータモデルから新しい要素へのマッピングは，将来のデータモデルへの比較的スムーズな移行パスを提供しなければならない．
使用するデータモデルを識別するため，このセクションで記述される要素の名前
は全て"cmi"から始まっている．これは実装者に対して，これらの要素が AICCCMI データモデルの一部であることを示す．他のデータモデルが開発されれば，異なる指定(例えば cmi.elementName の代わりに adl.elementName)で始められるであろう．
SCORM のテストおよび評価過程中に，AICC および IEEE のメンバは，AICC
CMI データモデル中の要素の数を本質的に縮小することを決定した．これは開発中の新しいデータモデルへの移行を容易にすることと，削除された多くの要素
3-20

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

は実際には多くの実装者が実装していなかったからという二つの理由から行われた．SCORM 1.0 版に現われた AICC CMI データモデルから取り除かれた要素のリストは付録 C の中に要約されている．ここに含まれている SCORM ランタイ
ム環境データモデルは，縮小された AICC CMI データモデルセットと一致している．
3.4.1.2.

SCORM ランタイム環境データモデルの一般規則

次のリストは，データモデルのための一般的な使用規則を要約したものである．
データ要素名中の第 1 シンボルはデータモデルを示す．例えば，”cmi”は AICC CMI データモデルを示す．これは，同じ API が他のデータモデルと共に使用することができることで API の機能性を拡張する．
3 つの予約キーワードがある．これらはすべて小文字で，下線(アンダースコア)から始まる．
・ _version:キーワードは，LMS によってサポートされるデータモデルのバー
ジョンを決めるために使用される．

・ _children:キーワードは，どのデータモデル要素が LMS によってサポートされるかを決めるために使用される．

・ _count:キーワードは，現リスト中の要素の数を決めるために使用される．
全ての配列は 0 が基底の配列である．アイテムは連続した形式で配列中に置かれなければならない．
データモデル名は，大文字と小文字が区別される．
データモデルは，一つの SCO の上に SCO の基準で実装される．一つの SCO は，もう一つの SCO のデータ・エレメントにアクセスすることができない．

3.4.2.

データモデル要素

デ ー タ モ デ ル 要 素 は ， 必 須 と 任 意 の ２ つ の カ テ ゴ リ へ 分 割 さ れ る ． AICC
CMI001 ガイドラインの相互運用性ドキュメントは，どの要素が LMS による必須な実装を要求するか，そしてどれが任意かを規定している．
LMS は必須データモデル要素をすべてサポートしなければならない．LMS 環境
は，オプションデータモデル要素のすべてあるいは一部のサポートを実装することができる．
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-21

すべてのデータ要素の SCO からの利用は任意である．SCO は API 関数の
LMSInitialize() お よ び LMSFinish()を使用しなくてはならないが，
LMSSetValue()や LMSGetValue()は使用しなくてもよい．SCO は非常に小さく，詳細を追跡しないようには設計されていてもよい．しかし，追跡される場合は，複数の LMS 環境にまたがって再利用されるよう，共通データモデルに適合していなければならない．

3.4.3.

リストの扱いリストないし配列に現われるいくつかのデータ要素がある．この一例はObjective（学習目標） である．コンテンツの中には複数の”学習目標”があるかもしれない，そして，学習者は 学習目標 を何回も経験してよい．
リストの値を取得・設定するために，インデックス値が使用される．インデック
ス値が省略できるのはリスト中にメンバが 1 つだけの場合のみである．インデッ
クス番号付けは０からスタートする．値がリストに追加される場合，SCO は使用されている最後のインデックス値を知らなければならない．
新しい配列要素はすべて連続して加えられるものとする．SCO は配列番号をス
キップしてはならず，配列値のリストを作成するとき，空の配列要素を残してはならない．_count キーワードは，リスト中のレコード数を決定するために使われる．たとえば，現在格納されている対象レコードの数を決定するために，以下のAPI 呼び出しが使われる．
var numOfObjectives = LMSGetValue("cmi.objective._count");

学習目的レコードの数が分からない場合，SCO が現在の数を０から開始してよい．これは，第 1 のインデックス位置に現在格納された学習目標に関して任意の情報に上書きできるということである．上書きするか，追加するかは，SCO 作
成者によって開発時に決定される．
リストの中の要素は，点-番号表記法（.n によって表される）で参照される．たとえば，SCO の最初の学習目標の状態要素の値は，"cmi.objective.0.status"で参照される．第 4 番目の学習目標の状態要素は，"cmi.objective.3.status"で参照される．

3-22

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3.4.4.

SCORM ランタイム環境データモデル

cmi.core
すべての LMS システムによって提供されることが必要な情報．すべての SCO が起動時に必要とする可能性があるもの．
cmi.core children:
student_id, student_name, lesson_location, credit, lesson_status, entry, score, total_time, lesson_mode,
exit, session_time

cmi.core._children

Supported API calls:
LMSGetValue()LMS Mandatory: Yes
データ・タイプ:
CMIString255
SCO のアクセス可能性: 読み出し専用

定義： _children キーワードは，LMS でサポートされる core カテゴ
リの要素を全て決定するために使用される．要素が，サポートはされているが，子を持たなければ，空文字列が返される．要素がサポートされていないならば，空文字列が返される．次に最後のエラーを要求すれば，要素がサポートされないことを確認できる．
使用法：
定する．

どの cmi.core データ要素が LMS でサポートされるかを決

形式： 返り値は，LMS でサポートされる core カテゴリの要素名全てをコンマで区切ったリストである．
LMS の動作:・ 初期化: このグループでサポートされた子要素の組．
LMSGetValue()に対して，LMS でサポートされた子要素の適切なリストが返るようにする．
・ LMSGetValue()：LMS は，サポートされた要素のリストをコ
ンマで区切って返す
・API 呼び出しの例：
LMSGetValue("cmi.core._children")・返り値の例："student_id,student_name,lesson_location,credit,lesson_status,entry,
score, total_time,exit,session_time"・エラーコード：
401 − 非実装エラー
cmi.core._children 要素がサポートされていないならば，空文字列が返され，そして要素がサポートされないことを示すエラーコードが設定される．
注意：この要素は必須なので，cmi.core._children 要素は
LMS によってサポートされなければならない．
・ LMSSetValue()：LMS は，以下に従ってエラーコードを設定しなければならない．
・エラーコード：
402 − 無効なセット値，要素はキーワードである．
もし，この要素がサポートされ（この要素は必須なので，LMS でサポートされなければならない），そしSharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-23

て，要求側がこの要素で LMSSetValue()を呼び出そうとするならば，LMS はエラーコードを 402 に設定しなけ
ればならない．
401 − 非実装エラー
この要素がサポートされない場合，サポートされないことを示すために LMS によってエラーコード 401 が設定される．
注意：この要素は（サポート）必須でなので，LMS は

これをサポートしなければならない．
SCO の使用例:
SCOs は，特定の要素が LMS によって実装されているかどうか決定するために cmi.core._children 要求を使うことができる:
var coreChildren = LMSGetValue(“cmi.core._children”);
if (coreChildren.indexOf(“student_name”) != -1){
studentName=LMSGetValue(“cmi.core.student_name”);}

cmi.core.student_id

Supported API calls:
LMSGetValue()

定義: LMS システムのひとりのユーザを参照するユニークな英数字
または識別子．

LMS Mandatory:Yes

使用法：

データ・タイプ:
CMIIdentifier

形式： スペースなしで最大 255 文字の英数字．ダッシュ(またはハイフン)とアンダーラインは，含んでよい．ピリオドは，許されない．大文字，小文字は区別しない．

SCO のアクセス可能性: 読み取りのみ

学習者をユニークに識別するために使用．

LMS の動作：・ 初期化: 学習者登録に基づいて，LMS が実行しなくてはならな
い．
・ LMSGetValue()：学習者に対し，LMS によって保存される現在の値を返す．
・返り値の例：“Joe_Student1”“JS-2000”“joe2000-3”
・エラーコード:
401 − 非実装エラー．この要素がサポートされない
場合，空文字列は返され，この要素がサポートされな
いことを示すエラー・コードが設定される．
注意：この要素は（サポート）必須でなので，LMS はこ

れをサポートしなければならない．
・ LMSSetValue(): LMS は下記に従ってエラーコードを設定しなくてはならない．
3-24

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

・エラーコード：403 − 要素は読み出し専用．この要素がサポートされ(この要素は必須であるので，LMS はこの要素をサポートしなければならない)，この要素に対してLMSSetValue()の呼び出しが行われる場合，LMS はエラーコードを 403 に設定しなくてはならない．
401 – 非実装エラー．
この要素がサポートされない場合，LMS はこの要素がサポートされないことを示すために，エラーコードは401 に設定される．
注意：この要素は（サポート）必須でなので，LMS は

これをサポートしなければならない．
SCO の使用例:
起動された場合，SCO は学習者 ID を表示しようとする．
var coreStudentID = LMSGetValue(“cmi.core.student_id”);

cmi.core.student_nameSupported API calls:
LMSGetValue()

定義: 通常，コース名簿上の学習者の公式名．ファーストネームではなくフルネーム．

LMS Mandatory:Yes

使用法:

データ・タイプ:
CMIString255

形式: 姓，名およびミドルネームのイニシャル．姓と名はコンマで区切られる．名の中の空白はまもられなくてはならない．

SCO のアクセス可能性: 読み取りのみ

LMS の動作:

学習者の公式な氏名を表すために使用される．

・ 初期化:
ない．

学習者登録に基づいて，LMS が実行しなくてはなら

・ LMSGetValue(): LMS によって格納された現在値を返す．
・返り値の例:"Student, Joseph A.""Student, Mike A. Jr."・エラーコード:
401 − 非実装エラー．この要素がサポートされない
場合，空文字列を返し，この要素がサポートされていないことを示すためにエラーコードが設定される．
注意：この要素は（サポート）必須でなので，LMS は
これをサポートしなければならない．
・ LMSSetValue() : LMS は下記に従ってエラーコードを設定しなくてはならない．:
・エラーコード:
403 − 要素は読み出し専用．この要素がサポートされ(この要素は必須であるので，LMS はこの要素をサポ
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-25

ートしなければならない)，この要素に対してLMSSetValue()を起動しようとする場合，LMS はエラー
コードを 403 に設定しなくてはならない．
401 − 非実装エラー．この要素がサポートされない
場合，LMS はこの要素がサポートされないことを示す
ために，エラーコードを 401 に設定する．
注意：この要素は（サポート）必須でなので，LMS は

これをサポートしなければならない．
SCO の使用例:
SCO は，SCO の起動で学習者名を表示しようとする．
var coreStudentName = LMSGetValue(“cmi.core.student_name”);

cmi.core.lesson_location

Supported API calls:
LMSGetValue()
LMSSetValue()LMS Mandatory :Yes
データ・タイプ:
CMIString255
SCO のアクセス可能性: 読み取り/書き込み

定義: これは，学習者が SCO を体験した最後に，LMS システムに渡される SCO の出口ポイントに相当する．これは，学習者に以前に出た SCO の同じ位置に戻らせるためのメカニズムを提供するものである．言いかえれば，この要素は学習者の出口ポイントを特定することができ，また，次に学習者が SCO を実行する時，SCO はその出口ポイントを入り口ポイントとして使用することができる．
使用法: この要素は，学習者が最後に SCO 内にいた場所を定義する．この要素は，セッション中に「ブックマーク」（しおり）を記
憶しておくために SCO によって使用される．SCO が中断され，その後に再入する場合，学習者が退出した所に，学習者を送り返すために SCO は lesson_location を使用することができる．
形式: 実装に依存．LMS システムは単にこのデータを保持し，SCOが求めれば，学習者が再び入る場合，SCO にそれを返す．SCO がLMS システムに渡すものすべてが返される．フォーマットは，SCOが期待するものすべてと一致する--フォーマットは SCO によって作成される．学習者が最初に SCO に入る場合，あるいは，好ましい開始点がない場合，lesson_location は空文字列()となる．
LMS の動作:・ 初期化: LMS は空文字列にこれを設定しなければならない．
SCO は，任意にこの値を設定し，SCO への再入する際，そのデータ取り出す．
・ LMSGetValue(): LMS によって格納された現在値を返す．
・エラーコード：
401 − 非実装エラー． この要素がサポートされな
いならば，LMS はこの要素がサポートされないことを示すために，エラーコードを(401 に)設定する．
注意：この要素は（サポート）必須でなので，LMS は

これをサポートしなければならない．
・ LMSSetValue():
3-26

与えられた値をデータモデル要素に設定すSharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

る．値は，この要素のデータ・タイプと一致しなければならない．
・エラーコード：
405 − 不正データ・タイプ．この要素がサポートされ(この要素は必須であるので，LMS はこの要素をサポートしなければならない)，正しくないデータ・タイプでLMSSetValue()を起動しようとした場合．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされないことを示す
ために，エラーコードを(401 に)設定する．
注意：この要素は（サポート）必須でなので，LMS は

これをサポートしなければならない．
・ 返り値/設定値の例：

SCO の実装に依存．

SCO の使用例:
SCO は「しおり」として lesson_location（前回実行位置）を使用することができる．
・ SCO の起動時には，学習者が以前の試みで SCO から退出した
位置に，SCO は位置決めする．
・ SCO からの退出時には，学習者が SCO に再入する時に，その位置が検索できるように，位置決めする．
// Example SCO that is written using JavaScript and // HTML with anchors// This function could exist in a function call onLoad() that gets invoked// when the HTML page is loaded
Var coreSCOLocation = LMSGetValue(“cmi.core.lesson_location”);
if (LMSGetLastError() == “0”){// coreSCOLocation contains an anchor name// defined in the HTML page// Start the SCO off where the student left off
window.location.hash = coreSCOLocation;}else{// Error processing}

cmi.core.credit

Supported API calls:
LMSGetValue()

定義: この SCO の実行（合格/不合格，得点）に基づき，学習者の履修記録が LMS システムによって更新されるかどうかを示す．

LMS Mandatory: Yes

使用法: LMS システムによって，学習者が履修記録のために SCOを実行しているかどうかを示すために使用される．

データタイプ:
CMIV b l (C dit)
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-27

CMIVocabulary(Credit)“credit”“no-credit”

cmi.core.credit は，lesson_mode と組み合わせて使用される．詳細は，
cmi.core.lesson_mode を参照．cmi.core.credit は，また lesson_status の決定にも使用される．詳細は，cmi.core.lesson_status を参照．

SCO のアクセス可能性:
読み取りのみ形式：

ボキャブラリの集合．2 つの可能なボキャブラリ値:

・

credit”： 学習者が SCO を履修記録のために実行していることを意味する．LMS システムは，SCO が LMS システムにデータを送信する場合，LMS システムがそれを学習者に対する履修記録とすることを SCO に示す．

・

no credit”： 学習者が SCO 履修記録のためでなく実行していることを意味する．彼の現在の履修記録は，どのようなものであれ（たとえば 80 点で合格状態），この SCO における彼の成績によっては変更されない．LMS システムは，SCO がLMS システムにデータを送ったとしても，それが学習者の単位認定を変更しないことを，SCO に伝える．

LMS の動作:・ 初期化: LMS は，学習者が履修記録のために SCO を実行しているかどうかを決定しなくてはならない．注意：現在，SCORM には，学習コンテンツがクレジットかノークレジット
かを意味付けるための決められた方法がない．したがって，実装は LMS 特有(依存)である．
・ LMSGetValue(): LMS によって格納された現在値を返す．
・返り値の例:"no credit""credit"・エラーコード:
401 − 非実装エラー．この要素がサポートされない
ならば，LMS はこの要素がサポートされないことを示すために，エラーコードを(401 に)設定する．注意：この要素は（サポート）必須でなので，LMS はこれをサポートしなければならない．
・ LMSSetValue(): LMS は下記に従って，エラーコードを設定しなければならない
・エラーコード:
403 − 要素は読み出し専用．この要素がサポートされ(この要素は必須であるので，LMS はこの要素をサポートしなければならない)，この要素に対してLMSSetValue()を起動しようとする場合，LMS はエラー
コードを 403 に設定しなくてはならない．
401 − 非実装エラー． この要素がサポートされな
いならば，LMS はこの要素がサポートされないことを示すために，エラーコードを(401 に)設定する．注意：
この要素は（サポート）必須でなので，LMS はこれをサポートしなければならない．
SCO の使用例:
SCO は，ブラウザに何を表示するか決めるために LMS から返された値を使用する．Credit か no-credit かによって，SCO の中に異なる表
3-28

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

示コンテンツがあってもよい．
var creditFlag = LMSGetValue("cmi.core.credit")if (creditFlag == "credit"){// Student is taking course for credit handle appropriately}
else{// Student is taking course for no credit, handle appropriately}

cmi.core.lesson_status

Supported API calls:
LMSGetValue()
LMSSetValue()LMS Mandatory: Yes
データ・タイプ:
CMIVocabulary(Status)
passedcompletedfailedincompletebrowsednot attempted
SCO のアクセス可能性: 読み取り/書き込み

定義: これは LMS システムによって決定される現在の学習者ステー
タスである．6 つのステータス値をとれる．
使用法: 通常，SCO はそれ自身のステータスを決定し，それを LMS
へ渡す．
1.

もし cmi.core.credit が「クレジット」に設定され，マニフェスト(教材定義)の中に合格点(adlcp:masteryscore)がある場合，
LMS は，合格点と比較して，学習者のスコア次第で，合格か不合格かへステータスを変更することができる．

2.

マニフェストの中に合格点(adlcp:masteryscore)がない場合，
LMS は SCO が決定したステータスを上書き（優先）することはできない．

3.

学習者が SCO に対し「ノークレジット」とするならば，1 つの例外を除き，lesson_status に変化はない．Lesson_mode が「閲覧」(browse)である場合は，たとえ cmi.core.credit が「ノークレジット」に設定されても，lesson_status は「閲覧された」に変更されるであろう．

SCO への再入では，LMS はステータスを，「パス（合格）」か，「失敗した(不合格)」か，「閲覧済み」に変更する．SCO の（マニフェストに定義された）合格基準に従い，パス(合格)か失敗（不合格）となる．SCO が「閲覧」の lesson_mode で最初の起動が行われたとき，「閲覧済み」となる．
形式：

ボキャブラリの集合．6 つの可能なボキャブラリ値．

・ 合格(passed): SCO での必要な数の学習酷評が習得された，ある
いは，必要な得点が達成された．学習者は，SCO を完了して，合格したと見なされる．
・ 完了(complete)： SCO は合格か，不合格かわからないが，SCOの全ての要素は学習者によって経験された．学習者は，SCO を完了したとみなされる．たとえば，「合格」は LMS システムに知られている特定の得点(スコア)に依存する．SCO は素点をSharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-29知っているが，その素点が「合格」に充分な高いスコアかどうかは知らない．
・ 不合格(failed)：SCO は合格しなかった．全ての SCO 要素は学習者によって完了したか，完了しなかったかである．学習者はSCO を完了したが，不合格とみなされる．
・ 非完了(incomplete):SCO は開始されたが，終了されなかった．
・ 閲覧済み（browsed）: 学習者は，最初の試みで，閲覧の LMS
モードで SCO を起動した．
・ 未試行(not attempted): 非完了(incomplete)は，学習者が SCO を実行する試みをするが，何かの理由でそれを終えることができなかったことを意味する．未試行(not attempted)は，学習者がSCO を開始さえしなかったことを意味する．多分，学習者はちょっと目次または SCO 要約を読んで，準備ができていないと判断したのだろう．SCO 内のいくつかのアルゴリズムは，SCO
が未試行(not attempted)から非完了(incomplete)へ SCO がいつ移るかを決定するために使われる．
LMS の動作:・ 初期化: 学習者が SCO への最初の試行の場合，lesson_status
は，未試行(not attempted)に設定される．LMS は，初期値を未試行(not attempted)に設定しなくてはならない．
・LMS 動作への追加要求： SCO が cmi.core.lesson_status を設定すれば，何の問題もない．しかしながら，SCORM は，
SCO に cmi.core.lesson_status を設定するようには強制していない．以下のケースを正しく処理するために，守らなくてはならない幾つかの追加要求がある．
・ 最 初 の LMS 起 動では ， lesson_status は， 未試 行 (notattempted)に設定すべきである．
・LMSFinish（）呼び出しを受け取った，または利用者がSCO か ら 離 れ た 場 合 ， LMS は SCO の
cmi.core.lesson_status を完了(complete)に設定すべきである．
・ cmi.core.lesson_status を 完 了 (completed) に 設 定 し た 後は，LMS は合格点が cmi.student_data.mastery_score に指定されているかをチェックすべきである．もし，合格点が提供されており，SCO が cmi.core.score.raw を設定済みなら ， LMS は cmi.core.score.raw を 合 格 点 と 比 較 し ，
cmi.core.lesson_status を「合格」または「不合格」に設定する．もし，合格点が提供されていないなら，LMS は，
cmi.core.lesson_status を「完了」のままにしておく．
・ LMSGetValue():データモデルに格納された値を返す．リター
ンは，ステータスのボキャブラリセット中の 1 つでなければならない．
・エラーコード:
401 − 非実装エラー．この要素がサポートされない
3-30

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

ならば，空文字列を返しそしてエラーコードはこの要
素がサポートされていないことを示すために設定されなければならない． 注意：この要素は（サポート）必須でなので，LMS はこれをサポートしなければならな

い．
・ LMSSetValue(): 与えられたれた値をデータモデル要素に設定する．値は，この要素のデータ・タイプと一致しなけらばならない．
・エラーコード：
405 – 不正データ・タイプ
この要素がサポートされ(この要素は（サポート）必須
でなので，LMS はこれをサポートしなければならない)，不正データ・タイプの値で LMSSetValue()を呼び出そうとした．
401 − 非実装エラー．
この要素がサポートされないならば，LMS はこの要素がサポートされていないことを示すためにエラーコー
ドを 401 に設定しなければならない．注意：この要素
は（サポート）必須でなので，LMS はこれをサポートしなければならない．
・ 返り値/設定値の例:"completed""failed""browsed"

SCO 使用法:
・ passed − SCO が履修記録のために実行されている場合に使用される．
・ failed– SCO が履修記録のために実行されている場合に使用される．
・ completed – SCO が履修記録のためでなく実行されている場
合に使用される．
・ incomplete – SCO が履修記録のために，あるいは履修記録のためでなく実行されている場合に使用される．SCO が (合格，不合格，完了のステータスが決定される前に)，早期に終了してしまった時に使用される．
・ browsed – lesson_mode が閲覧であるとき使用される．
・ not attempted – SCO は lesson_status を決して not attempted に設定してはならない．(学習者が最初に SCO を試行するとき LMS
によって初期化される)
SCO の使用例:
var lessonStatus = LMSGetValue(“cmi.core.lesson_status”);
if (lessonStatus == “failed”){// Student failed the SCO, handle appropriately
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-31

}
else
{
// Student did not fail the SCO, handle appropriately}

cmi.core.entry

Supported API calls:
LMSGetValue()LMS Mandatory: Yes
データ・タイプ:
CMIVocabulary(Entry)"ab-initio""resume""" - empty string
SCO のアクセス可能性: 読み出し専用

定義:

学習者が SCO に以前入ったことがあるかどうかの表示．

使用法: 学習者が初めて SCO に入るとき，cmi.core.entry 要素は
LMS によって ab-initio に設定されければなければならない．学習者が中断していた SCO に再入する場合，エントリフラグは LMS によって resume に設定されなければならない．
形式：

ボキャブラリの集合．3 つの可能なボキャブラリ値:

・ ｢ab-intio｣(初回試行):これは，学習者が初めて SCO に入ることを示す．学習者がプリテストを完了して SCO 中の学習目標の全てを合格しているかもしれないので，lesson_status が未試行(notattempted)であることは，信頼できる指標ではない．すなわち，
SCO は，学習者が見なくても合格となるかもしれない．
・ ｢resume｣（中断再開）:これは，学習者が以前に SCO に入ったことを示す．学習者は，中断していた SCO を再開している．
・ ｢｣: 空文字列は，初回実行(ab-initio)でも，停止した状態(resume)からの継続でもなく，SCO に入ったことを表わすために使われる．これが使われるのは，SCO がすでに完了した後で，それが復習のためにロードされた場合である．この場合は，最初の起動(ab-initio)でも中断状態からの再開(resume)でもない．
LMS の動作:・ 初期化: SCO 最初の起動に際して，LMS は，データモデル値
を「ab-inito」に初期化しなくてはならない．
・追加動作：LMS が LMSFinish()を受け取るか，または利用者
が SCO から離れた場合，LMS は cmi.core.entry に（空文字列）または resume を設定しなければならない．
LMS は，SCO が cmi.core.exit に設定した値を調べることによ っ て こ れ を 決 定 す る ． SCO が cmi.core.exit の 値 に
suspend を設定すれば，LMS は，次の SCO 起動に備えて，cmi.core.entry に resume を設定する．もし，SCO がcmi.core.exit の値に resume 以外を設定するかまったく値を設定しない場合，LMS は cmi.core.entry に（空文字列）を設定する．
・ LMSGetValue(): データモデルに格納された値を返す．返り値は cmi.core.entry データ要素用にとって，以下のボキャブラ

3-32

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

リセット中の 1 つでなければならない．
・返り値の例："ab-initio""resume"・エラーコード:
401 – 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される． 注意：この要素は（サポート）必須でなので， LMS はこれをサポートしなければならな

い．
・ LMSSetValue(): LMS は下記に従って，エラーコードを設定しなければならない．
・エラーコード:
403 − 要素は読み出し専用．この要素に対して，
LMSSetValue()を起動す る要求があった場合，LMS はエラーコードを 403 に設定すべきである．
401 – 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定しなければならない． 注意：この要素は（サポート）必須でなので，LMS はこれをサポートしなければならない．
SCO の使用例:
var entryStatus = LMSGetValue("cmi.core.entry")
if (LMSGetLastError() == "0"){if (entryStatus == "resume"){// Student is resuming SCO}
else{// This is the first time the student has entered the SCO
}
}
else
{
// Error condition, handle appropriately}

cmi.core.score
学習者の得点表示
Children of cmi.core.score:raw, min, max

cmi.core.score._children

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-33

Supported API calls:
LMSGetValue()LMS Mandatory: Yes
データ・タイプ:
CMIString255
SCO のアクセス可能性: 読み出し専用

定義: _children キーワードは LMS によってサポートされるスコア・
カテゴリのすべての要素を決定するために使用される．要素に子(nochildren)がないが，要素はサポートされる場合，空文字列が返される．この要素がサポートされない場合，戻り値はない．次に，最後のエラーを要求すれば，要素がサポートされないことを確認できる．
使用法: LMS が cmi.core.score のどの子要素をサポートしているかを決定するために使用される．Raw はサポートされなければならな
い唯一の必須要素である．
形式: 返り値は LMS によってサポートされるスコア・カテゴリすべての要素名がコンマで区切られたリストである．
LMS の動作:・ 初期化: このグループのためにサポートされた子のセット．
その結果，LMSGetValue()リクエストでは，サポートされた子の適切なリストが返される．
・ LMSGetValue(): サポートされた要素がコンマで区切られたリストを返す．
・API 呼び出しの例:
LMSGetValue(“cmi.core.score._children.”)・返り値の例: "raw" - conformant LMS は少なくとも次の要
素をサポートしなければならない． “raw,min,max"，"raw,min"・エラーコード:
401 – 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される． 注意：この要素は（サポート）必須でなので，LMS はこれをサポートしなければならない．
・ LMSSetValue(): LMS は下記に従って，エラーコードを設定しなければならない．
・エラーコード:
402 − 無効のセット値，要素はキーワード．この要素に対して LMSSetValue()起動が試みられる場合，LMS
はエラーコードを 402 に設定すべきである．
401 – 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定しなければならない． 注意：この要素は（サポート）必須でなので，LMS はこれをサポートしなければならない．
SCO の使用例:
var scoreChildren = LMSGetValue(“cmi.core.score._children”);
if (coreChildren.indexOf(“min”) != -1){
LMSSetValue(“cmi.core.score.min”,"10");}

3-34

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

cmi.core.score.raw

Supported API calls:
LMSGetValue()
LMSSetValue()LMS Mandatory: Yes
データ・タイプ:
CMIDecimal またはCMIBlank
SCO のアクセス可能性: 読み取り/書き込み

定義: SCO に対しての最終試行における学習者の得点表示．この得点は，SCO 設計者へ意味のある方法で決定され，計算される．例えば，それは，完了した学習目標の割合を反映できるし，多項目選択のテスト中における未加工の点数でありえるし，あるいは，SCO の中に埋め込まれた質問に対する最初の正確なレスポンスの数を示すことができる．
cmi.core.score.raw は，０から 100 の間の正規化された値でなければならない．
使 用 法 : 学 習 者 が SCO に 対 し て の 最 初 の 試 行 で あ る 場 合 ，
cmi.core.score.raw は""(空文字列)に設定されなければならない．追加の試行については，cmi.core.score.raw が，学習者の直前に行われた最後の試行で記録されたものを反映する．もし cmi.core.score.raw が
SCO の中に設定されず，cmi.core.score.raw の要請が SCO によってなされたならば，空文字列が返されなければならない("")．
形式:

10 進数あるいはブランク.

LMS の動作:・ 初期化:LMS は，SCO の最初の起動で，これを空文字列（""）に初期化しなければならない．SCO は，この値を設定す
る 責 任 範 囲 が あ る ． SCO が こ の 値 を 設 定 す る 前 に
LMSGetValue（）が要請された場合，LMS は空文字列を返されなければならない("")
・ LMSGetValue(): データモデルに格納された値を返す．返された値は，CMIDecimal あるいは CMIBlank の型でなければな
らない．
・API 呼び出しの例: LMSGetValue(“mi.core.score.raw”)
・エラーコード:
401 − 非実装エラー．この要素がサポートされな
いならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される． 注意：この要素は（サポート）必須
でなので，LMS はこれをサポートしなければならな

い．
・ LMSSetValue(): データモデル要素に与えられた値を設定す
る．値は，この要素のデータ・タイプと合致しなけらばならない．
・API 呼び出しの例:
LMSSetValue( cmi.core.score.raw ， 85.7 )・エラーコード:
405 − 不正データ・タイプ．この要素がサポートされ（この要素は（サポート）必須でなので，LMS はこ
れをサポートしなければならない），リクエストが，Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-35正しいデータ型ではない値で LMSSetValue()を起動しようとする場合．
401 – 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定しなければならない． 注意：この要素は（サポート）必須でなので，LMS はこれをサポートしなければならない．
・ 返り値／設定値の例：“90""85.7"""SCO の使用例:
SCO は学習者の SCO の中での素点（得点）を追跡するためにこれを使用できる．
LMSSetValue("cmi.core.score.raw","85")cmi.core.score.max

Supported API calls:
LMSGetValue()
LMSSetValue()LMS Mandatory: No
データ・タイプ:
CMIDecimal またはCMIBlank
SCO のアクセス可能性: 読み取り/書き込み

定義:

学習者が達成する可能性があった最高点あるいは総数．

cmi.core.score.max は，０から 100 の間の正規化された値でなければ
ならない．
使用法:

学習者が達成する可能性があった最高得点の表示．

フォーマット:

10 進数あるいは空白．

LMS の動作:・ 初期化: LMS は SCO の最初の起動でこれを空文字列()に初期化しなくてはならない．SCO はこの値を設定する責任範囲がある．SCO がこの値を設定する前に，LMSGetValue()が要求される（呼ばれる）場合，LMS は空文字列()を返すべきである．
・ LMSGetValue(): データモデルに格納された値を返す．返された値は，CMIDecimal あるいは CMIBlank の型でなければな
らない．
・API 呼び出しの例: MSGetValue(“cmi.core.score.max”)
・エラーコード:
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
・ LMSSetValue(): データモデル要素に与えられた値を設定す
る．値は，この要素のデータ・タイプと合致しなければなら

3-36

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

ない．
・API 呼び出しの例:
LMSSetValue(“cmi.core.score.max”,”100”)
・エラーコード(Error Code):405 −不正データ・タイプ．この要素がサポートされ，正しいデータ型ではない値で LMSSetValue()を起動
しようとする場合．
401 – 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定しなければならない．
・ 返り値/設定値の例:
“100"
"5"
""
SCO の使用例:
var scoreChildren = LMSGetValue(“cmi.core.score._children”);
if (coreChildren.indexOf(“max”) != -1){
LMSSetValue(“cmi.core.score.max”,"100");}

cmi.core.score.min

Supported API calls:
LMSGetValue()
LMSSetValue()LMS Mandatory: No
データ・タイプ:
CMIDecimal またはCMIBlank
SCO のアクセス可能性: 読み取り/書き込み

定義:

学習者が取得する可能性があった最低点

cmi.core.score.min は，０から 100 の間の正規化された値でなければな
らない．
使用法:

学習者が取得する可能性があった最低得点の表示

形式：

10 進数あるいは空白．

LMS の動作:・ 初期化: LMS は SCO を最初に起動するとき，これを空文字列(“”)に初期化しなくてはならない．SCO はこの値を設定する
責 任 範 囲 が あ る ． SCO が こ の 値 を 設 定 す る 前 に ，LMSGetValue()が要求される場合，LMS は空文字列(“”)を返す
べきである．
・ LMSGetValue(): データモデルに格納された値を返す．返された値は，CMIDecimal あるいは CMIBlank の型でなければな
らない．
・API 呼び出しの例: LMSGetValue(“cmi.core.score.min”)
・エラーコード:
401 − 非実装エラー．この要素がサポートされない

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-37ならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
・ LMSSetValue(): データモデル要素に与えられた値を設定す
る．値は，この要素のデータ・タイプと合致しなければならない．
・API 呼び出しの例: LMSSetValue(“cmi.core.score.min”,”5”)
・エラーコード:
405– 不正データ・タイプ．この要素がサポートされ，正しいデータ型で はない値で LMSSetValue()を起動しようとする場合．
401 – 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定しなければならない．
・ 返り値/設定値の例:“10""45.5"""SCO の使用例:
var scoreChildren = LMSGetValue(“cmi.core.score._children”);
if (coreChildren.indexOf(“min”) != -1){
LMSSetValue(“cmi.core.score.min”,"10");}cmi.core.total_time

Supported API calls:
LMSGetValue()LMS Mandatory: Yes
データ・タイプ:
CMITimespanSCO のアクセス可能性: 読み出し専用

定義:

SCO での学習者のすべてのセッションの蓄積時間．

使用法: ある学生のある SCO における全てのセッションで費やされる総計時間を追跡するために使用する．
LMS は，SCO が最初に起動される時，cmi.core.total_time をデフォル
ト値に初期化し，その後，SCO の報告値（session_time）を使用して総計時間を算出する．
形式： 時間，分と秒は，コロンによって区分される．
HHHH:MM:SS.SS 時間は，最低 2 桁で最高 4 桁を持つ．分はちょうど2 桁から成る．秒は 2 桁の数字と，オプションで小数点と 1 桁あるいは 2 桁の追加の数字(つまり 34.45 のような)を含む．
LMS の動作:・ 初期化:

3-38

LMS は SCO の 最 初 の 起 動 で 初 期 値 をSharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

「0000:00:00.00」にすべきである．
追 加 動 作 ： SCO は 一 回 の 実 行 中 に ， 複 数 回
cmi.core.session_time を実行できる．SCO が LMSFinish()を発行するか，利用者が SCO から離れた場合，LMS は，SCO が設定した(一組あるとして)最終の CMI.core.session_time を取得して，その時間を CMI.core.total_time に積算しなければな
らない．SCO が引き続いて起動され，CMI.core.total_time について LMSGetValue が呼び出された場合，LMS は積算した
時 間 を 返 さ な け れ ば な ら な い ． LMS は ，
CMI.core.session_time についての LMSGetValue の呼び出し
で，LMS に送られてくる複数の時間を積算してはならな
い．CMI.core.session_time について LMSGetValue の複数回呼び出しがあった場合，LMS は cmi.core.session_time として保持している値を上書きしなければならない．
・ LMSGetValue(): データモデルに格納された値を返す．返された値は，CMITimespan の型でなければならない．
・API 呼び出しの例: LMSGetValue( cmi.core.total_time )・返り値の例:“00:29:00""01:27:45.5"
・エラーコード：
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される． 注意：この要素は（サポート）必須でなので，LMS はこれをサポートしなければならない．
・ LMSSetValue(): LMS は以下のようにエラーコードを設定しなくてはならない．
・エラーコード：
403 − 要 素 は 読 み 出 し 専 用 ． こ の 要 素 に 対 し て ，LMSSetValue()を起動する要求があった場合，LMS はエラーコードを 403 に設定すべきである．
401 − 非実装エラー．この要素がサポートされない
ならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定しなければならない． 注意：この要素は（サポート）必須でなので，LMS はこれをサポートしなければならない．

SCO の使用例:
var totalTime = LMSGetValue(“cmi.core.total_time”);
if (LMSGetLastError() == 0 ){// Use cmi.core.total_time}

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-39

cmi.core.lesson_mode

Supported API calls:
LMSGetValue()LMS Mandatory:

No

データ・タイプ:
CMIVocabulary(Mode)"browse""normal""review"
SCO のアクセス可能性: 読み取りのみ

定義: 起動後の SCO の望ましい動作を決定する．多くの SCO は単一の「動作」を有する．しかし，いくつかの SCO は異なる量の情報を表示したり，異なる順序で情報を表示したり，指導者や設計者の決定に基づいた異なるトレーニング哲学を反映する情報を表示することができる．設計者は，事実上無制限の多くの方法で SCO を動作させることができる．この標準は，異なる SCO の動作を生じさせう
る 3 つのパラメータの通信をサポートする．
使用法: SCO が起動される異なるモードを表すために使用される．
lesson_status と共に使用される．
形式: ボキャブラリの集合．3 つの可能なボキャブラリの値は以下．
・ “browse”: 学習者は，題材をプレビューしたいが，必ずしも評価のために SCO に挑戦しない．
・ “normal”: これは，学習の単位認定を望む学習者のために設計された動作をすることを示す．
・ “review":
れた．

学習者は，すでに少なくとも一回教材を見て評価さ認識不能かあるいは予期しない lesson_mode を受け取った場合，SCO
は normal を受け取ったと仮定する．
LMS の動作:・ 初期化: LMS は，SCO が起動されるモードを決定しなくてはならない．
注意：現在，SCORM は学習コンテンツが異なるモードに入ることを通知する方法を定義していない．したがって，実装(方法)は LMS に依存する．
・ LMSGetValue(): データモデルに格納された値を返す．返り(値)はエントリー用セットボキャブラリのうちの 1 つでなければならない．
・API 呼び出しの例:
LMSGetValue( cmi.core.lesson_mode )・返り値の例:“browse""normal""review"
・エラーコード:
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためのエラーコードが設定される．
・ LMSSetValue(): LMS は下記に従ってエラーコードを設定すべきである．
・エラーコード:
3-40

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

403 − 要素は読み出し専用．この要素に対して，
LMSSetValue()を起動する要求があった場合，LMS はエラーコードを 403 に設定すべきである．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
SCO の使用例:
var mode = LMSGetValue(“cmi.core.lesson_mode”);
if (LMSGetLastError() == 0 ){if (mode == "browse"){// Student is browsing the SCO}
else if (mode == "review"){// Student has already seen an been graded// Must be reviewing material}
else{// Student is launching the SCO in the normal mode}}

cmi.core.exit

Supported API calls:
LMSSetValue()

定義:

学習者が SCO をどのようにそしてなぜ退出したかの表示．

使用法:

SCO から最後に退出した理由を示すために使用される．

LMS Mandatory: Yes
データ・タイプ:
CMIVocabulary(Exit)

形式:

ボキャブラリの集合．可能なボキャブラリ値は以下の 3 つ．

"time-out""suspend""logout""" - empty string

・ “Time-Out”: これは，経過時間が長すぎると SCO が断定したか，もしくは max_time_allowed(許容試行時間)を超過した
ために，SCO が終了したことを示す．max_time_allowed は，
マ ニ フ ェ ス ト の 中 に あ る ( こ の ア イ テ ム の
adlcp:maxtimeallowed)．

SCO のアクセス可能性: 書き込み専用

・ “Suspend”: これは，学習者が退出したたポイントに，後で戻る意思があって SCO を退出することを示す．
・ “logout”: これは，学習者が LMS へ戻ってログアウトするのではなく，学習者が内部からログアウトしたことを示す．
これは，SCO がコントロールを LMS システムへ渡し，さらに，LMS システムは−適切なデータモデル要素を更新した
後−自動的にコースから学習者をログアウトさせることを意味する．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-41

・ “”:

空文字列は正常な退出状態を表わすために使用する．

LMS の動作:・ 初期化: 要素は初期化される必要はない．LMSGetValue()(のAPI 呼び出し)はこの要素上で行われてはいない．要素は SCO
によってコントロールされる．
・追加動作： SCO は，cmi.core.exit に４つのうちの１つを設定する選択肢を持つ．その値に依存して，LMS 動作は以下のようでなければならない．
・SCO が cmi.core.exit に time-out を設定した場合には，LMS は次の SCO 起動時に，cmi.core.entry に（空文字列）を設定しなければならない．
・SCO が cmi.core.exit に suspend を設定した場合には ， LMS は 次 の SCO 起 動 時 に ， cmi.core.entry に
resume を設定しなければならない．
・SCO が cmi.core.exit に logout を設定した場合には，LMS は次の SCO 起動時に，cmi.core.entry に（空文字列）を設定しなければならない．さらに，
cmi.core.exit に logout を設定した SCO が LMSFinish()を呼び出すかユーザが抜け出す場合，LMS は学習者をコースから退出させなければならない．
・SCO が cmi.core.exit に（空文字列）を設定した
場合には，LMS は次の SCO 起動時に，cmi.core.entry に（空文字列）を設定しなければならない．
・SCO が cmi.core.exit に何の値も設定しない場合には，
LMS は次の SCO 起動時に，cmi.core.entry に（空文字列）を設定しなければならない．
・ LMSGetValue(): LMS は下記に従ってエラーコードを設定
し，空文字列()を返すべきである．
・エラーコード:・401 − 非実装エラー．この要素がサポートされな
いならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される． 注意：この要素は（サポート）必須でなので，LMS はこれをサポートしなければならない．
・404 − 要素は書き込み専用． SCO がこの要素に対して LMSGetValue()を呼ぼうとする場合，LMS はエラーコードを 404 に設定し，空文字列()を返さなけらばならない．
・ LMSSetValue(): データモデル要素に指定された値を設定す
る．値は，この要素のデータ・タイプと合致しなければならな
い．
・API 呼び出しの例:
LMSSetValue( cmi.core.exit ， logout )・設定値の例："time-out"
3-42

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

"suspend""logout"
・エラーコード:
405 − 不正データ・タイプ．この要素がサポートされ（この要素は（サポート）必須でなので，LMS はこ
れをサポートしなければならない），リクエストが，正しいデータ型ではない値で LMSSetValue()を起動しようとする場合．
401 − 非実装エラー．この要素がサポートされない
ならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する． 注意：
この要素は（サポート）必須でなので，LMS はこれをサポートしなければならない．
SCO の使用例:
LMSSetValue("cmi.core.exit","time-out")

cmi.core.session_time

Supported API calls:
LMSSetValue()LMS Mandatory: Yes

定義: これは，学習者が SCO を退出するまでに費やした合計時間を
時，分，秒で表したものである．すなわち，これはセッションの初めから終わりまでの，SCO の一回の使用時間を表す．

データ・タイプ:
CMITimespan

使用法: SCO の１セッションで費やした時間を記録するために使用される．LMS は cmi.core.total_time を決定する際にこれを使用する．

SCO のアクセス可能性: 書き込み専用

形 式 ： 次の 数 値 形 式 で 示 さ れ る 時 ， 分 お よ び 秒 で の 時 間 の 長
さ:HHHH:MM::SS.SS
時間は最低 2 桁の数字および最高 4 桁の数字を持つ．分はちょうど 2
桁の数字から成る．秒は，2 桁の数字とオプションの小数点として 1桁または 2 桁の追加の数字を含む．(すなわち，34.45)．
LMS の動作:・ 初期化: 要素は LMS によって初期化される必要はない．この要素に対しては，LMSGetValue()呼び出しはない．SCO がこの要素をコントロールする．
・ 追 加 動 作 ： SCO は 一 回 の 実 行 中 に ， 複 数 回
cmi.core.session_time を実行できる．SCO が LMSFinish()を発行するか，利用者が SCO から離れた場合，LMS は，SCO が設定した（1 組あるとして）最後の cmi.core.total_time を取得して，その時間を cmi.core.session_time に積算しなけらばならない．SCO が引き続いて起動され，cmi.core.total_time
について LMSGetValue()呼び出された場合，LMS は積算され た 時 間 を 返 さ な け れ ば な ら な い ． LMS は ，cmi.core.total_time について LMSSetValue()呼び出しがあった

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-43

場合，LMS に送られた複数時間を積算してはならない．
cmi.core.total_time について LMSSetValue の複数回呼び出しがあった場合，LMS は cmi.core.session_time として保持している値を上書きしなければならない．
・ LMSGetValue():LMS は下記に従ってエラーコードを設定し，空文字列("")を返すべきである．
・エラーコード:
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される． 注意：この要素は（サポート）必須でなので，LMS はこれをサポートしなければならない．
404 − 要素は書き込み専用．SCO がこの要素に対して LMSGetValue()を呼ぼうとする場合，LMS はエラー
コードを 404 に設定し，空文字列()を返すべきである．
・ LMSSetValue(): データモデル要素に与えられた値を設定す
る．値は，この要素のデータ・タイプと合致しなければならな
い．
・API 呼び出しの例:
LMSSetValue( cmi.core.session_time , 0010:34:34.56 )・設定値の例:"0010:34:34.56""05:15:00"
・エラーコード:
205 − 不正データ・タイプ．LMSSetValue()が起動され，要素に設定されようとする値が正しいデータ・タイプ(Data Type)でない場合．
401 − 非実装エラー．この要素がサポートされない
ならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．注意：
この要素は（サポート）必須でなので，LMS はこれをサポートしなければならない．
SCO の使用例:
LMSSetValue("cmi.core.session_time","0000:12:30")

cmi.suspend_data

Supported API calls:
LMSGetValue()
LMSSetValue()

3-44

定義: SCO によって前利用時に生成され，現利用時に必要となる
独自情報．この独自情報は，SCO 起動時に適用される．この要素
は，通常，再開情報として SCO に使用される．この独自情報はSCO によって作成され，次に SCO が実行される時に，SCO に戻さ
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

れるように，LMS によって格納される．
LMS Mandatory: Yes
データ・タイプ:
CMIString4096
SCO のアクセス可能性: 読み取り/書き込み

LMS は，各学習者の SCO ごとに，このグループのためのスペースをとっておかなければならない．LMS はこのデータを格納し，SCO
が再び実行される場合，SCO にこのデータを返す．学習者がコースにいる限り，LMS はこのデータを保持する．
使用法: SCO の再開時にのみ有効．学習者が SCO を完了する前に退出すれば，SCO はこの値を設定することができる．その後，SCO
は，再開時にこの情報を使用する．
形式： SCO 独自．このデータに対するただ唯一の制限は以下のとおりである．
1. データは ASCII フォーマットで転送されなけらばならない．その後，SCO は要求された形式に変換する．
2. LMS の過度の負荷を避けるために，この要素は 4096 バイトのデータ（量）に制限されるべきである．
LMS の動作:
初期化: LMS は，この要素を空白(空文字列)へ初期化しな
くてはならない．SCO はこの要素を設定する責任範囲がある．SCO がこの値を設定する前に，LMSGetValue()が要求される場合，LMS は空文字列()を返すべきである．
LMSGetValue(): データモデルに格納された値を返す．返
り値は正しいデータ・タイプでなければならない．
・エラーコード:
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．注意：この要素は（サポート）必須でなので，LMS はこれをサポートしなければならない．
LMSSetValue(): データモデル要素に指定された値を設定す
る．値は，この要素のデータ・タイプに合致しなけらばならない．
・エラーコード:
405 − 不正データ・タイプ．LMSSetValue()が起動され，要素に設定されようとする値が正しいデータ・タイプ(Data Type)でない場合．
401 − 非実装エラー．この要素がサポートされない
ならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する． 注意：

この要素は（サポート）必須でなので，LMS はこれをサポートしなければならない．
返り値／設定値の例:

SCO の実装に依存．

SCO の使用例:

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-45

// Upon re-launch of a SCO by a student// Get the Suspend Datavar suspendData = LMSGetValue("cmi.suspend_data")
if (LMSGetLastError() == 0){// Use suspend data}

cmi.launch_data

Supported API calls:
LMSGetValue()

定義: SCO 生成時に生成された独自情報で，毎回の使用のために必要．この情報なしでは走行しえない．

LMS Mandatory: Yes

使用法: cmi.launch_data は，SCO の起動を支援するために利用される．この値は，指定された SCO に対して常に同じである．

データ・タイプ:
CMIString4096
SCO のアクセス可能性: 読み取りのみ

形式: テキスト・フィールド．これは，SCO が正しく機能するのに必要ないかなるシステム独自情報をも含む．このフィールドは 4096
文字までに制限する．
LMS の動作:
初期化: この値は， マニフェストを使用して，LMS によって初期化されるべきである．LMS は(adlcp:datafrimlms) マ
ニフェスト要素を使用すべきである．マニフェスト中に起動データが見つからない場合，起動データは空文字列()に設定されるべきである．
LMSGetValue(): データモデルに格納された値を返す．返り値は正しいデータ・タイプでなければならない．
・エラーコード:
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．

注意：この要素は（サポート）必須でなので，LMS は
これをサポートしなければならない．
LMSSetValue(): LMS は下記に従ってエラーコードを設定すべきである．
・エラーコード:
403 − 要素は読み出し専用．この要素に対して，
LMSSetValue()を起動する要求があった場合，LMS はエラーコードを 403 に設定すべきである．
401− 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．

3-46

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

SCO の使用例:
var launchData = LMSGetValue("cmi.launch_data")
if (LMSGetLastError() == 0){// use launch_data}

cmi.comments
SCO のためのコメントを集めて配布するためのメカニズム．
cmi.comments - SCO がコメントを獲得／設定することができることを表す．
cmi.comments_from_lms - SCO(SCO の観点からは読み出し専用)にコメントを提供することができることを表す．

cmi.comments

Supported API calls:
LMSGetValue()
LMSSetValue()LMS Mandatory: No
データ・タイプ:
CMIString4096
SCO のアクセス可能性:
読み取り/書き込み

定義: SCO からの自由なフィードバック．例えば，学習者
は，SCO の中のいかなる時点でもコメントを残すことができる．あるいは，彼らは SCO の終わりにコメントを求められるかもしれない．コメントは，さらに SCO 内のどこで，いつそれが作成されたかの指標を有する．位置は，コメントの中にタグ付けされて埋め込まれる．
使用法: SCO が SCO に関するコメントを LMS に送るようにするために使用される．学習者が入力したコメントを収集するために使用することができる．
形式: 英数字テキストおよび特殊文字からなる自由形式．
LMS の動作:
初期化: なし．空文字列()に初期化しなくてはならない．SCO はこの値を設定する責務がある．
SCO がこの値を設定する前に，LMSGetValue()が呼ばれる場合，LMS は空文字列()を返す．
LMSGetValue():データモデルに格納された値を返す．返り値は正しいデータ・タイプでなければならない．もし何のコメントも提供されなければ，LMS
は空文字列()を返すべきである．
・エラーコード:
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
・ LMSSetValue():データモデル要素に与えられた値を設定する．LMSSetValue()の要求はコメントを設定すること．(複数)コメントは連結されるべきである．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-47

・エラーコード:401 − 非実装エラー．この要素がサポートされないならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを401 に設定する．
405 − 不正データ・タイプ．この要素がサポートされ，リクエストが正しいデータ・タイ
プ値をもたない値で LMSSetValue()の起動要
求をする場合．
・ 返り値／設定値の例:
SCO の実装に依存．
SCO の使用例:
var comments = LMSGetValue("cmi.comments")
if (LMSGetLastError() == 0){// use launch_data}

cmi.comments_from_lms

Supported API calls:
LMSGetValue()LMS Mandatory: No
データ・タイプ:
CMIString4096
SCO のアクセス可能性: 読み出し専用

定義: この要素は，LMS からのコメントを表す．これが使用される例は，インストラクター・コメントの形式である．
これらのタイプのコメントは，適切な場合に SCO が学習者に向けて提示する．
使用法: LMS からのＳＣＯと関連するいかなるコメントもＳＣＯが参照できるように使用される．
形式:

特定の形式はない．

LMS の動作:・ 初期化: 提供される場合は，これらのコメントは
LMS によって初期化される．
・ LMSGetValue(): データモデルに格納された値を返す．返り値は正しいデータ・タイプでなけらばならな
い．もし何のインストラクター・コメントもなけれ
ば，LMS は空文字列()を返すべきである．
・ API 呼び出しの例：
LMSGetValue( cmi.comments_from_lms )・返り値の例:
実装に依存．
・エラーコード:
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すため
3-48

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

にエラーコードが設定される．
LMSSetValue(): LMS は以下に従ってエラーコードを設定しなくてはならない．
・エラーコード:
403 − 要素は読み出し専用．この要素に対して，LMSSetValue()を起動する要求があった
場合，LMS はエラーコードを 403 に設定すべきである．
401 − 非実装エラー．この要素がサポートされないならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを401 に設定する．
SCO の使用例:// The SCO may want to see if there are any comments from the
LMS for the
student.
var commentsFromLMS =LMSGetValue("cmi.comments_from_lms");
if (LMSGetLastError() == "0"){// use the comments from the LMS}

cmi.objectives
SCO でカバーされた個々の学習目標を学習者がどう実行したかを識別する．
cmi.objectives の子:
id, score, status

cmi.objectives._children

Supported API
calls:
LMSGetValue()LMS Mandatory:
No
データ・タイプ:
CMIString255
SCO のアクセス可
能性: 読み取りのみ

定義: _children キーワードは LMS によってサポートされる
cmi.objectives カテゴリの要素をすべて決定するために使用される．サ
ポートされていても，要素に子要素がない場合，空文字列が返される．この要素がサポートされない場合，返り値はない．次に最後のエラーを要求すれば，要素がサポートされないことを確認できる．
使用法: どの要素が LMS によってサポートされているかを決定するために使用される．
形式: 返り値は LMS によってサポートされる cmi.objectives カテゴ
リ中のすべての要素名をコンマで区切ったリストである．学習者が複
雑なシナリオ（例えばシミュレーション）で学習する場合，どのような詳細情報が集められるかを識別する．
LMS の動作:
初期化:

このグループでサポートされる子のセット．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-49

LMSGetValue()リクエストの結果，サポートされる子の適切なリストが返される．
LMSGetValue(): サポートされる要素をコンマで区切ったリストを返す．
・API 呼び出しの例:
LMSGetValue( cmi.objectives._children. )・返り値の例:“id,score”"id,status"
・エラーコード:
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
LMSSetValue(): LMS は以下に従ってエラーコードを設定すべきである．
・エラーコード:
402 − 無効な設定値，要素はキーワードである．要素が LMS によってサポートされ，この要素に対してLMSSetValue()を起動しようとする場合，LMS はエラー
コードを 402 に設定すべきである．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
SCO の使用例:
SCO はどの要素が LMS によってサポートされているかを決定するためにこの要素を使用することができる．
var objChildren = LMSGetValue("cmi.objectives._children")if (objChildren.indexOf(“status”) != -1){// Set the Objectives Status}

cmi.objectives._countSupported API
calls:
LMSGetValue()LMS Mandatory:
No
データ・タイプ:
CMIInteger

3-50

定義: _count キーワードは cmi.objectives リスト中の現在のレコード数を決定するために使用される．エントリーの総数が返される．SCO
が cmi.objectives レコードの数を知らないならば，現在の学習者カウ
ント数を０で開始することができる．これにより，第 1 のインデック
ス位置に現在格納されている学習目標に関する情報が上書きされる．
上書きするか追加するかは，作成者が SCO を作成するときに決定される．
使用法: LMS によって格納された学習目標の数を決定するために使用される．SCO はどの対象レコードを検索するかを決めるためにこの数
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

SCO のアクセス可
能性:読み出し専用を使用することができる．「3」（という数字）が返される場合，SCO
は，レコードの 0 から 2 までを参照できることが分かる．
形式: 現在の要素リストか配列中のアイテムの数を示す整数として値を返す．
LMS の動作:
初期化: LMS は SCO の最初の起動時に，この値を０で初期化しなくてはならない．SCO は学習目標を一つも挿入しない．
LMSGetValue(): LMS によって格納された学習目標エントリ
ーの総数を返す．
・API 呼び出しの例:
LMSGetValue( cmi.objectives._count )・返り値の例:“0”"4"
・エラーコード:
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
LMSSetValue(): LMS は以下に従ってエラーコードを設定すべきである．
・エラーコード:
402 − 無効な設定値，要素はキーワードである．要素が LMS によってサポートされ，この要素に対してLMSSetValue()を起動しようとする場合，LMS はエラー
コードを 402 に設定すべきである．
401 − 非実装エラー．この要素がサポートされない
ならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
SCO の使用例:
SCO は，後にプロセスの中でどの配列インデックスを使用するかを決めるために_count 要素を使用する．
// get the count of objectives recorded by the LMS
var totalObj = LMSGetValue("cmi.objectives._count")// The value return from the LMS is the total number record// subtract one from the total (to compensate for the zero based array)var request = "cmi.objectives." + totalObj - 1 + ".id"// Call set on the new Objective ID
LMSSetValue(request, "Obj1_110")

cmi.objectives.n.id
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-51

Supported API
calls:
LMSGetValue()
LMSSetValue()

定義: 学習目的に対して，開発者が定義する内部的な SCO 固有の識
別子．
使用法:
形式:

LMS Mandatory:
No

データ・タイプ:
CMIIdentifier

SCO のアクセス可
能性:
読み取り/書き込み

学習目的を識別するための方法．
英数字文字列．空白は含まず．

LMS の動作:
初期化: 空文字列()に初期化．SCO はこの値を設定しなくてはならない．SCO がこの値を設定する前に，
LMSGetValue()が呼ばれる場合，LMS は空文字列()を返さなければならない．
LMSGetValue(): LMS に格納された学習目標 ID を返す．
返された値は関連するデータ・タイプと合致しなければならない．
・API 呼び出しの例:
LMSGetValue(「cmi.objectives.0.id」)
・エラーコード:
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
LMSSetValue(): データモデル要素に指定された値を設定す
る．値は，この要素のデータ・タイプと合致しなければならない．
・エラーコード:
405 − 不正データ・タイプ(Incorrect Data Type)．この要素がサポートされ，リクエストが正しいデータ・タ
イプ値をもたない値で LMSSetValue()の起動要求をする
場合．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
・返り値/設定値の例:"A1317""Obj123"
SCO の使用例:
SCO は，学習目的に関するサマリー情報を表示したいとする．
var objID = LMSGetValue("cmi.objectives.0.id")// Display the objective ID for the SCO
SCO は理由を報告するために学習目的 ID を設定しようとする．
LMSSetValue("cmi.objectives.0.id","Obj1")

3-52

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

cmi.objectives.n.score
各学習目的は関連する点数（スコア）を含むことができる．
cmi.objectives.n.score の子:
raw, min, max

cmi.objecitves.n.score._children

Supported API
calls:
LMSGetValue()LMS Mandatory:
No

データ・タイプ:
CMIString255

SCO のアクセス可
能性: 読み出し専用

定義: _children キーワードは LMS によってサポートされる
cmi.objectives.n.score カテゴリの要素すべてを決定するために使用される．サポートされていても要素に子要素がない場合，空文字列が返される．この要素がサポートされない場合，返り値はない．次に最後のエラーを要求すれば，要素がサポートされないことを確認できる．
使用法: どの要素が LMS によってサポートされるかを決定するために使用される．
形式: 返り値は LMS によってサポートされる cmi.objectives.n.score
カテゴリのすべての要素名をコンマで区切ったリストである．
LMS の動作:・ 初期化: このグループでサポートされる子要素のセット．
その結果，LMSGetValue()リクエストでは，サポートされた子要素の適切なリストが返される．
・ LMSGetValue(): サポートされた要素のコンマで区切られたリストを返す．
・API 呼び出しの例:
LMSGetValue(「cmi.objectives.0.score．_children．」)
・返り値の例:“raw,min,max”"raw"""
・エラーコード:
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
・ LMSSetValue(): LMS は以下に従ってエラーコードを設定すべきである．
・エラーコード:
402 − 無効な設定値，要素はキーワードである．要素が LMS によってサポートされ，この要素に対してLMSSetValue()を起動しようとする場合，LMS はエラー
コードを 402 に設定すべきである．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-53

すためにエラーコードを 401 に設定する．
SCO の使用例:
SCO は，どの要素が LMS によってサポートされているかを決定するためにこの要素を使用することができる．
var objScoreChildren = LMSGetValue("cmi.objectives.0.score")if (objScoreChildren.indexOf(“raw”) != -1){// Set the Objectives score}

cmi.objectives.n.score.raw

Supported API
calls:
LMSGetValue()
LMSSetValue()LMS Mandatory:
No
データ・タイプ:
CMIDecimal またはCMIBlank
SCO のアクセス可
能性: 読み取り/書
き込み

定義: 学習目標に対する学習者の各試行後の学習(結果)の数的表現．
加工されていない素点（そのもの）．Cmi.objectives.n.score.raw は，
０から 100 の間の正規化された値でなければならない．
使用法:
形式:

学習目標に対する各試行後の素点．
10 進数あるいは空白．

LMS の動作:・ 初期化: 要素は空文字列()に初期化されなくてはならな
い．SCO はこの値を設定しなくてはならない．SCO がこの値を設定する前に，LMSGetValue()の呼び出しがある場合，LMS は
空文字列()を返すべきである．
・ LMSGetValue(): LMS は，リクエストによって識別される学
習目標の素点を返すべきである．返り値は，関連するデータ・
タイプと合致しなければならない．
・API 呼び出しの例:
LMSGetValue( cmi.objectives.0.score.raw )・エラーコード:
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
・ LMSSetValue(): データモデル要素に指定された値を設定す
る．値は，この要素のデータ・タイプと合致しなければならない．
・API 呼び出しの例:
LMSSetValue( cmi.objectives.0.score.raw ， 5 )・エラーコード:
405 − 不正データ・タイプ．この要素がサポートされ，リクエストが正しいデータ・タイプ値をもたない値
で LMSSetValue()の起動要求をする場合．
401 − 非実装エラー．この要素がサポートされないな

3-54

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
・ 返り値/設定値の例:"96.7""5"""
SCO の使用例:
SCO は学習目標に関連した素点を設定するためにこれを使用することができる．
var objScoreChildren = LMSGetValue("cmi.objectives.0.score")if (objScoreChildren.indexOf(“raw”) != -1){
LMSSetValue("cmi.objectives.0.score.raw","85")}

cmi.objectives.n.score.max

Supported API
calls:
LMSGetValue()
LMSSetValue()LMS Mandatory:
No
データ・タイプ:
CMIDecimal またはCMIBlank
SCO のアクセス可
能性: 読み取り/書
き込み

定義: 学習者が学習目標に対して取得する可能性があった最高得点または総数.
cmi.objective.n.score.max は，０から 100 の間の正規化された値でなければならない．
使用法:
形式:

学習目標に対する各試行の後の最高得点．

10 進数あるいは空白．

LMS の動作:・ 初期化: 要素は空文字列()に初期化されなくてはならな
い．SCO はこの値を設定しなくてはならない．SCO がこの値を設定する前に，LMSGetValue()が呼ばれる場合，LMS は空
文字列()を返さなくてはならない．
・ LMSGetValue(): LMS は，リクエストによって識別される
学習目標の最高得点を返すべきである．返り値は関連するデータ・タイプと合致しなければならない．
・API 呼び出しの例:
LMSGetValue( cmi.objectives.0.score.max )・エラーコード:
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
・ LMSSetValue(): データモデル要素に指定された値を設定す
る．値は，この要素のデータ・タイプと合致しなければならない．
・API 呼び出しの例:

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-55

LMSSetValue( cmi.objectives.0.score.max ， 10 )・エラーコード:
405 − 不正データ・タイプ．この要素がサポートされ，リクエストが正しいデータ・タイプ値をもたない値
で LMSSetValue()の起動要求をする場合．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
・ 返り値／設定値の例:
"100"
"10"
""
SCO の使用例:
SCO は，学習目標に関連した最高得点を設定するためにこれを使用することができる．
var objScoreChildren = LMSGetValue("cmi.objectives.0.score")if (objScoreChildren.indexOf(“max”) != -1){
LMSSetValue("cmi.objectives.0.score.max","5")}

cmi.objectives.n.score.min

Supported API
calls:
LMSGetValue()
LMSSetValue()

定義:

LMS Mandatory:No

使用法: 学習目標に対する各試行の後の最低点．

データ・タイプ:
CMIDecimal またはCMIBlank
SCO のアクセス可
能性:リード/書き込
み

学習者が学習目標に対して取得する可能性があった最低得点．

cmi.objective.n.score.min は，０から 100 の間の正規化された値でなければならない．

形式:

10 進数あるいは空白．

LMS の動作:・ 初期化: 要素は空文字列()に初期化されなくてはならな
い．SCO はこの値を設定しなくてはならない．SCO がこの値を設定する前に，LMSGetValue()が呼ばれる場合，LMS は空
文字列()を返さなくてはならない．
・ LMSGetValue(): LMS は，リクエストによって識別される
学習目標の最低得点を返すべきである．返り値は関連するデータ・タイプと合致しなければならない．
・API 呼び出しの例:
LMSGetValue( cmi.objectives.0.score.min , ５・エラーコード：
405 − 不正データ・タイプ．この要素がサポートされ，リクエストが正しいデータ・タイプ値をもたない値
で LMSSetValue()の起動要求をする場合．

3-56

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
返り値／設定値の例:"0""45.5"""SCO の使用例:
SCO は，学習目標に関連した最低得点を設定するためにこれを使用することができる．
var objScoreChildren = LMSGetValue("cmi.objectives.0.score")if (objScoreChildren.indexOf(“min”) != -1){
LMSSetValue("cmi.objectives.0.score.min","2")}
cmi.objectives.n.status

Supported API calls
LMSGetValue()
LMSSetValue()LMS Mandatory：
No
データ・タイプ:
CMIVocabulary(status)"passed""completed""failed""incomplete""browsed""not attempted"
SCO のアクセス可
能性: 読み取り/書
き込み

定義: SCO の学習目標を達成しようとする各試行後に，学習者が獲得した SCO の学習目標の(習得)状況．
可能なボキャブラリ値は次の６つ：合格，完了，不合格，非完了，未実施，閲覧済み．
使用法: 与えられた学習目標に対しての学習者の(習得)状況を追跡するために使用される．
形式:

ボキャブラリセット．6 つの取りうるボキャブラリ値:

・ “passed”(合格): SCO 中の学習目標の必要数が達成された，あるいは，必要点数が達成された．学習者は SCO を完了したとみなされ，合格した．
・ “completed”(完了): 学習目標は合格か不合格のいずれかだが(分からない)，学習者は学習目標を体験した．学習者は学習目標を完了したとみなされる．例えば，合格は，LMS システムに既知の特定の得点に依存する．SCO は素点を知っているが，その素点が学習目標の合格に十分な高得点かは分からない．
・ “failed”(不合格): 学習目標は合格とならなかった．学習目標は学習者によって完了したかどうかはわからない．学習者は学習目標に関連した(教材)資料を体験したとはみなされるが，不合格だった．
・ “incomplete”(非完了): 学習者は学習目標に関連した(教材)資料に着手したが，完了しなかった．
・ “browsed”(閲覧済み): 学習者は，最初の試行で LMS モードの「閲覧」で学習目標と関連する教材を持つ SCO を起動した．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-57

・ “not attempted(未実施): 学習者が SCO を試行しようとしたが，何かの理由でそれを終えることができなかったこと(非完了)を意味する．「未実施」は学習者が学習目標を含む SCO を開始することすらしなかったことを意味する．多分，学習者はただ目次を読んだか，SCO の概要を読んだだけで，自分の学習準備ができていないと判断した．SCO 内のいくつかのアルゴリズム
は，いつ学習目標が「未実施」から「非完了」へ移行するかを
SCO が決定するために使用される．
LMS の動作:・ 初期化:SCO によって処理される．

・ LMSGetValue(): LMS は，リクエスト(処理要求)によって識別される学習目標の状況を返すべきである．返り値は関連するデータの型と合致しなけれがならない．
・API 呼び出しの例:
LMSGetValue( cmi.objectives.0.status )・エラーコード:
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
・ LMSSetValue(): 値は，この要素のデータ・タイプと合致しなければならない．
・API 呼び出しの例：
LMSSetValue( cmi.objectives.0.status ， failed )・エラーコード:
405 − 不正データ・タイプ．この要素がサポートされ，リクエストが正しいデータ・タイプ値をもたない値
で LMSSetValue()の起動要求をする場合．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
・ 返り値／設定値の例:“not attempted""passed""browsed"
SCO の使用例:
SCO は学習目標に関連したステータス（学習状況）を設定するためにこれを使用する．
var objScoreChildren = LMSGetValue("cmi.objectives._children")if (objScoreChildren.indexOf(“status”) != -1){
LMSSetValue("cmi.objectives.0.status","failed")}

3-58

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

cmi.student_data
学習者の学習実行に基づいた SCO のカスタマイズをサポートする情報．
cmi.student_data の子:
mastery_score, max_time_allowed, time_limit_action

cmi.student_data._children

Supported API calls:
LMSGetValue()

データ・タイプ:
CMIString255

定義: _children キーワードは LMS によってサポートされる
student_data カテゴリの要素をすべて決定するために使用される．
サポートはされていても要素に子要素がない場合，空文字列が返される．この要素がサポートされない場合，空文字列が返される．返り値はない．次に最終のエラーを要求すれば，要素がサポートされないことを確認できる．

SCO のアクセス可能性: 読み出し専用

使用法: どの cmi.student_data データ要素が LMS によってサポートされているかを決定する．

LMS Mandatory:No

形式: 返り値は LMS によってサポートされる student_data カテゴ
リ要素名のすべてをコンマで区切ったリストである．
LMS の動作:・ 初期化: このグループでサポートされる子要素のセット．
その結果，LMSGetValue()呼び出し要求では，サポートされた子要素の適切なリストが返される．
・ LMSGetValue(): LMS は，サポートされた要素をコンマで区切ったリストを返す．
・返り値の例:“mastery_score,time_limit_action,max_time_allowed”"max_time_allowed"
・エラーコード:
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
・ LMSSetValue(): LMS は以下に従ってエラーコードを設定しなくてはならない．
・エラーコード:
402 − 無効な設定値，要素はキーワードである．要素が LMS によってサポートされ，この要素に対してLMSSetValue()を起動しようとする場合，LMS はエラ
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-59

ーコードを 402 に設定すべきである．
401 − 非実装エラー．この要素がサポートされない
ならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
SCO の使用例:
var studentDataChildren =LMSGetValue(“cmi.student_data._children”);
if (studentDataChildren.indexOf(“attempt_number”) != -1){
var maxTimeAllowed =LMSGetValue(“cmi.student_data.max_time_allowed”);}

cmi.student_data.mastery_score

Supported API calls:
LMSGetValue()LMS Mandatory: No
データ・タイプ:
CMIDecimal

SCO のアクセス可能性: 読み出し専用

定義: SCO の外部で決定される合格に必要な得点．SCO スコアが合格点以上である場合，学習者は合格したとみなされるか，あるいは内容を習得したとみなす．合格点が LMS システムによって決定されるため，合格に必要な得点がいくつであるか SCO が知らない場合もある．
使用法: mastery_score を LMS システムがサポートするためには，
SCO から渡された得点に基づいて lesson_status を変更することができなければならない．単に mastery_score を SCO へ渡すだけでは，この機能を全面的にサポートしたことにはならない．
形式：

10 進数

LMS の動作:・ 初期化: LMS はマニフェスト(adlcp:|masteryScore)の項
目要素から得られた値に設定しなくてはならない．
・ LMSGetValue(): LMS によって格納された現在値を返す．
・返り値の例:
“75”
“100”
“5”
・エラーコード:
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
・ LMSSetValue(): LMS は以下に従ってエラーコードを設定すべきである．
・エラーコード:
3-60

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

403 − 要素は読み出し専用．この要素を LMS がサポートしており，この要素に対して，LMSSetValue()を起動する要求があった場合，LMS はエラーコードを403 に設定すべきである．
401 − 非実装エラー．この要素がサポートされない
ならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
SCO の使用例:
var masteryScoreValue =LMSGetValue(“cmi.student_data.mastery_score”);

cmi.student_data.max_time_allowed

Supported API calls:
LMSGetValue()LMS Mandatory: No
データ・タイプ:
CMITimespanSCO のアクセス可能性: 読み出し専用

定義: 現在の SCO における試行で学習者が利用できる総時間．時
間が超過した場合の SCO の応答に関しては，time_limit_action を参照されたい．
使用法: 学習者が SCO の中にいることを認められた最大時間を
SCO に提示するために使用される．
形式: コロンによって区切られた時，分および秒．
HHHH:MM:SS.SS「時」は最低 2 桁，最高 4 桁の数字を持つ．「分」はちょうど 2 桁の数字から成なる．「秒」は 2 桁の数字と，オプションで小数点と 1桁あるいは 2 桁の追加の数字(つまり 34.45 のような)を含む．
LMS の動作:
初期化: LMS はマニフェスト(adlcp:|masteryScore)の項目要素から得られた値に設定しなくてはならない．
LMSGetValue(): LMS によって格納された現在値を返す．
・返り値の例:“00:14:30”“02:03:00”“01:09:00”
・エラーコード:
401− 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
LMSSetValue(): LMS は以下に従ってエラーコードを設定すべきである．
・エラーコード:
403− 要素は読み出し専用．この要素を LMS がサポ
ートしており，この要素に対して，LMSSetValue()をSharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-61起動する要求があった場合，LMS はエラーコードを403 に設定すべきである．
401− 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
SCO の使用例:
var maxTimeAllowedValue =LMSGetValue(“cmi.student_data.max_time_allowed”);

cmi.student_data.time_limit_action

Supported API calls:
LMSGetValue()LMS Mandatory: No
データ・タイプ:
CMIVocabulary(タイム・リミット・アクシ
ョン)“exit,message”“exit,no message”“continue,message”“continue,nomessage”
SCO のアクセス可能性: 読み出し専用です

定義: 最大許容時間(max_time_allowed)を超過する場合，どうすべ
きかを SCO に伝える．この要素に対しては次の 2 つの引数がある．
SCO がすべきこと − 退出あるいは継続学習者が見るべきもの − メッセージありあるいはメッセージなし使用法: 最大許容時間を超過した場合，SCO がすべきアクションを指示するために利用される．
形式:

ボキャブラリセット．4 つの可能なボキャブラリ値は以下．
“exit,message”“exit,no message”“continue,message”“continue,no message”

LMS の動作:
初期化: LMS は マニフェスト(adlcp:timelimitaction)項目要
素から得られた値に設定しなくてはならない．
LMSGetValue(): LMS によって格納された現在値を返す．
・返り値の例:"exit,message""continue,no message"
・エラーコード:
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
LMSSetValue(): LMS は以下に従ってエラーコードを設定すべきである．
・エラーコード:
403 − 要素は読み出し専用．この要素を LMS がサポートしており，この要素に対して，LMSSetValue()を起動する要求があった場合，LMS はエラーコードを3-62

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

403 に設定すべきである．
401 − 非実装エラー．この要素がサポートされない
ならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
SCO の使用例:
var timeLimitActionValue =LMSGetValue(“cmi.student_data.time_limit_action”);

cmi.student_preference
後続の SCO への適切な選択オプション
cmi.student_preference の子:
audio,language,speed,text

cmi.student_preference._children

Supported API calls:
LMSGetValue()LMS Mandatory: No
データ・タイプ:
CMIString255
SCO のアクセス可能性: 読み出し専用

定義: _children キーワードは LMS によってサポートされる
student_preference カテゴリの要素をすべて決定するために使用される．サポートはされていても，要素に子要素がない場合，空文字列が返される．この要素がサポートされない場合，返り値はない．
次に最終のエラー後を要求すれば，要素がサポートされないことを確認できる．
使用法: どの cmi.student_preference データ要素が LMS によってサポートされるかを決定する．
形式： 返り値は LMS によって支援されるすべてのstudent_preference カテゴリ要素名をコンマで区切ったリストである．
LMS の動作:
初期化: このグループでサポートされる子要素のセット．その結果，LMSGetValue()要求では，サポートされた子要素の適切なリストが返される．
LMSGetValue(): LMS は，サポートされる要素をコンマで区切ったリストで返す．
・返り値の例:“audio, language, speed”"language"・エラーコード:
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
LMSSetValue():

LMS は以下に従ってエラーコードを設定

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-63すべきである．
・エラーコード:
402 − 無効な設定値，要素はキーワードである．要素が LMS によってサポートされ，この要素に対してLMSSetValue()を起動しようとする場合，LMS はエラーコードを 402 に設定すべきである．
401 − 非実装エラー．この要素がサポートされない
ならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
SCO の使用例:
var studentPreferenceChildren =LMSGetValue(“cmi.student_preference._children”);
if (studentPreferenceChildren.indexOf(“audio”) != -1){
LMSSetValue(“cmi.student_preference.audio”, “10”);}cmi.student_preference.audio

Supported API calls:
LMSGetValue()
LMSSetValue()LMS Mandatory: No
データ・タイプ:
CMIInteger
SCO のアクセス可能
性:
読み出し
書き込み

定義: 学習者は，音声機能の電源を切断したり音量を制御したりする．この要素は音声機能の電源の状態を示す．
使用法: SCO が学習者の音声機能の好みの状態を設定し，かつLMS から獲得するために使用される．
形式: -1 から 100 までの数字-1: オフ (いかなる負の数字でもオフとなる)．
0: 無変更ステータス(SCO はそのデフォルトを使用するか，または最後(直前)の SCO でのオーディオのステータスと同じまま)．
1 - 100: ボリューム・レベル(1 は弱い，100 は可能な最大ボリューム)．
LMS の動作:
初期化: (この要素が)サポートされる場合，LMS はこの値を0 に初期化すべきである．この値を設定するのは SCO の責任範囲である．SCO がこの値を設定する前に，
LMSGetValue()呼び出しが要求される場合，LMS は空文字列(“”)を返すべきである．
LMSGetValue(): LMS によって格納された現在値を返す．
・エラーコード:
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
LMSSetValue():

3-64

LMS データ・アイテムにパラメータとしSharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

て渡された値を設定する．
・エラーコード:
405 − 不正データ・タイプ．この要素がサポートされ，リクエストが正しいデータ・タイプ値をもたない
値で LMSSetValue()の起動要求をする場合．
401 − 非実装エラー．この要素がサポートされない
ならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
・返り値／設定値の例:
“-1"
"0"
"50"
SCO の使用例:
LMSSetValue(“cmi.student_preference.audio”, “10”);
var audioValue = LMSGetValue(“cmi.student_preference.audio”);

cmi.student_preference.language

Supported API calls:
LMSGetValue()
LMSSetValue()LMS Mandatory:No
データ・タイプ:
CMIString255
SCO のアクセス可能
性:
読出し
書き込み

定義: 多言語機能を備えた SCO では，どの言語で情報を伝えるかを指定するためにこの要素を使用すべきである．
使用法: SCO が学習者の言語選択を設定し，かつ LMS から獲得するために使用される．
形式:

英字列，空白を含んでよい．

LMS の動作:
初期化: (この要素が)サポートされる場合，LMS は，この値
を空文字列()に初期化すべきである．この値を設定するのは SCO の責任範囲である．SCO がこの値を設定する前に，LMSGetValue()呼び出しが要求される場合，LMS は空文字列()を返すべきである．
LMSGetValue(): LMS によって格納された現在値を返す．
・エラーコード:
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
LMSSetValue(): パラメータとして渡された値を LMS デー
タ項目に設定する．
・エラーコード:
405 − 不正データ・タイプ．この要素がサポートされ，リクエストが正しいデータ・タイプ値をもたない
値で LMSSetValue()の起動要求をする場合．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-65

401 − 非実装エラー．この要素がサポートされない
ならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する
・返り値／設定値の例:"English""French"SCO の使用例:
LMSSetValue(“cmi.student_preference.language”, “English”);
var languageValue =LMSGetValue(“cmi.student_preference.language”);

cmi.student_preference.speed

Supported API calls:
LMSGetValue()
LMSSetValue()LMS Mandatory: No
データ・タイプ:
CMISInteger
SCO のアクセス可能
性:
読出し
書き込み

定義: SCO は，そのペースによっては，理解するのが難しい場合がある．この要素は，内容伝達のペースを制御する．
使用法: ＳＣＯが学習者の速度選択を設定し，かつ LMS から獲得するために使用される．
形式: -100 から 100 までの数字-100 はシステムで可能な最も遅いペース．
0 は無変更状態(SCO はデフォルトを使用．SCO 普通の速度で動作)．
100 はシステムで可能な最も早いペース．
LMS の動作:
初期化: LMS によってサポートされる場合，この要素は0 に初期化されるべきである．この値を設定するは SCOの責任範囲である．SCO がこの値を設定する前に，
LMSGetValue()呼び出しが要請される場合，LMS は空文字列()を返すべきである．
LMSGetValue(): LMS によって格納された現在値を返す．
・エラーコード:
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
LMSSetValue(): パラメータとして渡された値を LMS デー
タ項目に設定する．
・エラーコード:
405 − 不正データ・タイプ．この要素がサポートされ，リクエストが正しいデータ・タイプ値をもたない
値で LMSSetValue()の起動要求をする場合．
401 − 非実装エラー．この要素がサポートされない

3-66

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

ならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
返り値／設定値の例:“-100”“0”“3”
SCO の使用例:
LMSSetValue(“cmi.student_preference.speed”, “-100”);
var speedValue = LMSGetValue(“cmi.student_preference.speed”);

cmi.student_preference.text

Supported API calls:
LMSGetValue()
LMSSetValue()LMS Mandatory: No
データ・タイプ:
CMISInteger
SCO のアクセス可能
性:
読出し
書き込み

定義: オーディオ用にデザインされた SCO では，オーディオのス
イッチを切って，テキスト・ウインドウでオーディオの内容を見ることは可能である．または，オーディオ(のスイッチ)を入れたまま，テキストがオーディオと同時に提示されるようにすることも可能である．または，オーディオとスクリーン・グラフィックスだけが利用できるように，テキスト(表示)を消すことも可能である．この要素
は，オーディオテキストが SCO に現れるかどうか確認するものである．
使用法: 学習者の LMS テキスト選択を設定し，かつ獲得するために SCO によって使用される．
形式: 3 つの数字のうちの 1 つ．
-1 : テキストはオフ，表示なし．
0: 状態の変化なし．デフォルト使用．
1: テキストはスクリーン上，学習者に示される．
LMS の動作:
初期化: LMS によってサポートされる場合，この要素は0 に初期化されるべきである．この値を設定するのはSCO の責任範囲である．SCO がこの値を設定する前に，
LMSGetValue()呼び出しが要請される場合，LMS は空文字列()を返すべきである．
LMSGetValue(): LMS によって格納された現在値を返す．
・エラーコード:
401 − 非実装エラー．この要素がサポートされないならば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
LMSSetValue(): パラメータとして渡された値を LMS デー
タ項目に設定する．
・エラーコード:

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-67405 − 不正データ・タイプ．この要素がサポートされ，リクエストが正しいデータ・タイプ値をもたない
値で LMSSetValue()の起動要求をする場合．
401 − 非実装エラー．この要素がサポートされない
ならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する
返り値／設定値の例:
"0"
"-1"
"1"
SCO の使用例:
LMSSetValue(“cmi.student_preference.text”, “-1”);
var textValue = LMSGetValue(“cmi.student_preference.text”);

cmi.interactions
この文脈では，相互作用は，認識され記録可能な，学習者からコンピュータへの入力あるいは入力の組である．このグループ中の項目は，すべて認識され，記録可能な学習者からの入力と関連している．このカテゴリは，学習者が SCO を習得するときに測定された，各相互作用についての詳細な情報を収集する．
cmi.interactions の子:
id, objectives, time, type, correct_response, weighting, student_response, result, latency

cmi.interactions._children

Supported API
calls:
LMSGetValue()LMS Mandatory:
No

定義: _children キーワードは LMS によってサポートされる
cmi.interactions カテゴリの要素をすべて決定するために使用される．
サポートはされていても，要素に子要素がない場合，空文字列が返される．この要素がサポートされない場合，返り値はない．次に最後のエラーを要求すれば，要素がサポートされないことを確認できる．
使用法:

データ・タイプ:
CMIString255
SCO のアクセス可
能性: 読み出し専用

どの要素が LMS によってサポートされるかを決定する．

形式: 返り値は LMS によって支援される cmi.interactions カテゴリ
内すべての要素名をコンマで区切ったリストである．学習者が SCO を習得するときに測定される各相互作用に関して，いかなる詳細な情報を集めることができるかを識別する．
LMS の動作:
初期化: このグループでサポートされる子要素のセット．その結果，LMSGetValue()要求では，サポートされた子要素の適切なリストが返される．
LMSGetValue():
ストを返す．

3-68

サポートされた要素をコンマで区切ったリ

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

・API 呼び出しの例:
LMSGetValue( cmi.interactions._children )・返り値の例:“id,time,type”"id,time,type,correct_responses,student_response"
・エラーコード:
401− 非実装エラー．この要素がサポートされないなら
ば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
LMSSetValue(): LMS は以下に従ってエラーコードを設定すべきである．
・エラーコード:
402 − 無効な設定値，要素はキーワードである．要素が LMS によってサポートされ，この要素に対してLMSSetValue()を起動しようとする場合，LMS はエラー
コードを 402 に設定すべきである．
401 − 非実装エラー．この要素がサポートされない
ならば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
SCO の使用例:
SCO はどの要素が LMS によってサポートされるかを決定するためにこの要素を使用する．
var intChildren = LMSGetValue("cmi.interactions._children")if (intChildren.indexOf(“id”) != -1){// Set the Interaction id}

cmi.interactions._countSupported API
calls:
LMSGetValue()LMS Mandatory:No
データ・タイプ:
CMIInteger
SCO のアクセス可
能性:
読み出し専用です

定義: _count キーワードは cmi.interactions リスト中のレコードの現在数を決定するために使用される．エントリーの総数が返される．
SCO が cmi.interactions レコードの数を知らない場合，現在の学習者
数を 0 から開始する．これは，最初のインデックス位置に現在格納されたインタラクション(送信)に関する任意の情報を上書きすることである．上書きか追加かは SCO を作成するときに，SCO 作成者によって決定される．
使用法: LMS によって格納されたインタラクションの数を決定するために使用される．SCO はどのインタラクション記録を設定すべきかを決定するためにこの数を使用する．「3」がそのとき返された場合，
SCO は，レコード 0 から 2 が既に使われており，次の利用可能なインデックスは「3」だと分かる．
形式：

現在の要素リストないし配列中のアイテム数を示す値を整数

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-69

として返す．
LMS の動作:
初期化: LMS は，SCO の初期起動時にこれを 0 に初期化しな
くてはならない．インタラクションデータは SCO によって挿入されていない．
LMSGetValue(): LMS によって格納された interaction エントリーの総数を返す．
・API 呼び出しの例:
LMSGetValue( cmi.interactions._count )・返り値の例:“0”"4"
・エラーコード:
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
LMSSetValue():
べきである．

LMS は以下に従ってエラーコードを設定す・エラーコード:
402 − 無効な設定値，要素はキーワードである．要素が LMS によってサポートされ，この要素に対してLMSSetValue()を起動しようとする場合，LMS はエラー
コードを 402 に設定すべきである．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
SCO の使用例:
SCO はプロセスの中でどの配列インデックスをその後使用すべきかを決定するために_count 要素を使用する．
// get the count of interactions recorded by the LMS
var totalInteractions = LMSGetValue("cmi.interactions._count")// The value return from the LMS is the total number records
var request = "cmi.interactions." + totalInteractions + ".id"// Set the Interaction ID
LMSSetValue(request, "Int_110")

3-70

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

cmi.interactions.n.id

Supported API
calls:
LMSSetValue()

定義:

使用法: 一意なインタラクション id を設定するために使用する．
SCO 固有である．
形式:

LMS Mandatory:No

データ・タイプ:CMIIdentifier

SCO のアクセス可
能性:書き込み専用

インタラクションの一意な識別子．

英数字文字列．内部スペースは含まず．

LMS の動作:
初期化: 値は SCO によってコントロールされる．
LMSGetValue(): LMS は以下に従ってエラーコードを設定すべきであり，空文字列を返さなければならない．
・エラーコード:
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
404 − 要素は書き込み専用．SCO がこの要素に対して
LMSGetValue()を呼び出そうとする場合，LMS はエラー
コードに 404 を設定し，空文字列()を返すべきである．
LMSSetValue(): データモデル要素に指定された値を設定す
る．値は，この要素のデータ・タイプと合致しなければならな
い．
・API 呼び出しの例:
LMSSetValue( cmi.interactions.0.id ， I_001 )・設定値の例："I_001""i1"
・エラーコード:
205 − 不正データ・タイプ： LMSSetValue()が起動され，要素に対して設定される値が，不正データ・タイ
プである．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを(401 に)設定する．
SCO の使用例:// Set the first interactions id
LMSSetValue("cmi.interactions.0.id","I_001");

cmi.interactions.n.objectives

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-71

cmi.interactions.n.objectives._countSupported API
calls:
LMSGetValue()LMS Mandatory:No
データ・タイプ:
CMIInteger
SCO のアクセス可
能性:
読み出し専用です

定義: _count キーワードは cmi.interactions 学習目標 id リスト中の
現在のレコード数を決定するために使用される．エントリーの総数が返される．SCO が cmi.interactions.n.objectives レコードの数を知らない場合，現在の学習者数を 0 から始める．これは，最初のインデックス位置に現在格納されている学習目標 id に関する情報を上書きすることになる．上書きか追加かは SCO を作成する時に，SCO 作成者によって決定される．
使用法: LMS があるにインタラクションに対して格納した学習目標
id の数を決定するために使用される．SCO はこの数を，どの学習目標
id レコードを設定するかの決定に使用する．「3」が返される場合，
SCO は，すでに 0 から 2 は占有されているので，次の利用可能なインデックスは 3 だと分かる．
形式: 現在の要素リストないし配列中のアイテム数を示す値を整数として返す．
LMS の動作:
初期化: LMS は，SCO の初期起動時にこの数を 0 に初期化しなくてはならない，学習目標 id データは SCO によって挿入されていない．
LMSGetValue(): LMS が，あるインタラクションに対して格納した，学習目標 id の総数を返す．
・API 呼び出しの例:
LMSGetValue( cmi.interactions.3.objectives._count )・返り値の例:“0”"4"
・エラーコード:
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
LMSSetValue():
である．

LMS は以下に従ってエラーコードを設定すべき・エラーコード:
402 − 無効な設定値，要素はキーワードである．要素が LMS によってサポートされ，この要素に対してLMSSetValue()を起動しようとする場合，LMS はエラー
コードを 402 に設定すべきである．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．

3-72

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

SCO の使用例:
SCO はプロセスの中でどの配列インデックスをその後使用するかを決定するために_count 要素を使用する．
// get the count of objective ids recorded by the LMS for a given
interaction
var totalIDs = LMSGetValue("cmi.interactions.0.objectives_count")// The value return from the LMS is the total number records
var request = "cmi.interactions.0.objectives." + totalID + ".id"// Set the Interactions Objective ID
LMSSetValue(request, “ObjID-110")
cmi.interactions.n.objectives.n.id

Supported API
calls:
LMSSetValue()LMS Mandatory:
No
データ・タイプ:
CMIIdentifier
SCO のアクセス可
能性:
書き込み専用定義:

開発者が作成した学習目標の識別子．

使用法: インタラクションが目的とする学習目標を識別するために使
用される．
形式:

英数字文字列．内部スペースは含まず．

LMS の動作:
初期化:

値は SCO によってコントロールされる．

LMSGetValue(): LMS は以下に従ってエラーコードを設定
し，空文字列()を返す．
・エラーコード:
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
404 − 要素は書き込み専用．SCO がこの要素に対して LMSGetValue()を呼び出そうとする場合，LMS はエラーコードに 404 を設定し，空文字列()を返すべきである．
LMSSetValue(): データモデル要素に指定された値を設定す
る．値は，この要素のデータ・タイプと合致しなければならな
い．
・API 呼び出しの例:
LMSSetValue(“cmi.interactions.0.objectives.0.id","A1333")・返り値の例:"A1333""Obj123"
・エラーコード:

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-73

205 − 不正データ・タイプ： LMSSetValue()が起動され，要素に対して設定される値が，不正データ・タイ
プである．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを(401 に)設定する．
SCO の使用例:// set the objective ID for the given interaction
LMSSetValue("cmi.interactions.0.objectives.0.id","A1333")

cmi.interactions.n.time
Supported API
calls:
LMSSetValue()LMS Mandatory:
No
データ・タイプ:
CMITimeSCO のアクセス可
能性:書き込み専用

定義:

学習者のインタラクションがいつ完了したかの表示．

使用法:

インタラクションのタイムスタンプとして使用．

形式: 24 時間表示での時間表示．HH:MM:SS.SS の形式で，時間，分および秒で識別．
時間と分はちょうど 2 桁の数字で，秒は 2 桁の数字と，オプションで小数点と 1 桁あるいは 2 桁の追加の数字(つまり 34.45 のような)を含
む．
LMS の動作:
初期化:

値は SCO によってコントロールされる．

LMSGetValue()： LMS は以下に従ってエラーコードを設定
し，空文字列()を返すべきである．
・エラーコード:
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
404 − 要素は書き込み専用．SCO がこの要素に対して
LMSGetValue()を呼び出そうとする場合，LMS はエラー
コードに 404 を設定し，空文字列()を返すべきである．
LMSSetValue(): データモデル要素に指定された値を設定す
る．値は，この要素のデータ・タイプと合致しなければならな
い．
・ API 呼び出しの例:
LMSSetValue(“cmi.interactions.0.time","12:33:35.5")
・返り値の例:"12:33:35.5""22:30:40"
・エラーコード:
3-74

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

205 − 不正データ・タイプ： LMSSetValue()が起動され，要素に対して設定される値が，不正データ・タイ
プである．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを(401 に)設定する．
SCO の使用例:// Set the Interactions time
LMSSetValue("cmi.interactions.0.time","12:33:35.5")

cmi.interactions.n.type

Supported API
calls:
LMSSetValue()LMS Mandatory:No
Data Type:
CMIVocabulary(Interaction)"true-false""choice""fill-in""matching""performance""sequencing""likert""numeric"
SCO アクセス可能性:
書き込み専用定義: インタラクションのどのカテゴリが記録されるかの表示．イン
タラクションのタイプは，インタラクションレスポンスがどう解釈されるかを決定する．7 つの可能な問題タイプが以下に定義されている．タイプはこれらだけに制限されてはいない．他のタイプの問題もある．しかしながら，これら 7 つのタイプのうち 1 つが使用される場
合には，これらのタイプと一致する識別子である．
使用法:

現在起きているインタラクションのタイプを示す．

形式: セットボキャブラリ．8 つの可能なボキャブラリ値．
・ "true-false"(○，×): 2 つの可能な回答による問題．
・ "choice"(多肢選択): 学習者が選択可能な事前定義済み回答の数が限られた問題．各回答は，数字か文字である．1 つまたはそれ以上の回答が正しい可能性がある．
・ "fill-in"(穴埋め): 単純に１語または数語からなる答えをもつ問
題．答え/応答はあらかじめ定められておらず，学習者が（選択式と異なり）作成しなければならない．
・ "matching"(組合せ): 1 組あるいは 2 組の項目の組を有する問題．これらの組の 2 つ以上の項目が関連を持つ．問題に回答す
るには，関連する項目を見つけて対応付けしなくてはならな
い．
・ "performance"(実行): パフォーマンス問題は，ある意味で多項式選択の問題に似ている．しかし，記載された答えを選択する
代わりに，学習者はタスクかアクションを実行しなければならない．
・ "sequencing"(並べ替え): 並べ替え式の問題では，学習者は項目の論理的な順序付けをしなけらばならない．
・ "likert"(アンケート): アンケート式の問題は，学習者に連続値の選択肢を提示する．回答は，一般に学習者の見解もしくは姿勢に基づく．
・ "numeric"(数値): 小数点あり，または，なしの単純な数値が回答として要求される．正解は，ある範囲内の単一な数値である．
LMS の動作:Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-75

初期化:

値は SCO によってコントロールされる．

LMSGetValue(): LMS は以下に従ってエラーコードを設定し，空文字列()を返さねばならない．
・エラーコード
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
404 − 要素は書き込み専用．SCO がこの要素に対して
LMSGetValue()を呼び出そうとする場合，LMS はエラー
コードに 404 を設定し，空文字列()を返すべきである．
LMSSetValue(): データモデル要素に指定された値を設定する．
値は，この要素のデータ・タイプと合致しなければならない．
・API 呼び出しの例:
LMSSetValue(“cmi.interactions.0.type","likert")
・設定値の例:"likert""true-false""performance"
・エラーコード:
205 − 不正データ・タイプ： LMSSetValue()が起動され，要素に対して設定される値が，不正データ・タイ
プである．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを(401 に)設定する．
SCO の使用例:// set the interactions type
LMSSetValue("cmi.interactions.0.type","choice");cmi.interactions.n.correct_responses
cmi.interactions.n.correct_responses._countSupported API
calls:
LMSGetValue()

データ・タイプ:
CMIInteger

定義: _count キーワードは，cmi.interactions.n.correct_responses リ
スト中の現在のレコード数を決定するために使用される．エントリの総数が返される．SCO が cmi.interactions.n.correct_responses レコー
ドの数を知らないならば，現在の学習者数を０から開始することができる．これにより，最初のインデックス位置に現在格納されている情報は上書きされる．上書きするか追加するかは，作成者が SCO を作成するときに決定する．

SCO のアクセス可能性:

使用法: あるインタラクションに関して LMS が格納した
correct_responses の数を決定するために使用される．SCO はどの

LMS Mandatory:No

3-76

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

読み出し専用

correct_responses パターンレコードを設定するかを決定するために，この数を使用する． 3 が返される場合，SCO は，0 から 2 までのレ
コードが既に占められているので，次の利用可能なインデックスは3 であると分かる．
形式:
す．

現在の要素リストか配列中のアイテムの数を示す整数値を返LMS の動作:
初期化: LMS は，SCO の初期起動時にこの数を 0 で初期化しな
くてはならない．correct_responses パターン・データは SCO によって挿入されていない．
LMSGetValue(): あるインタラクションに関して LMS によって格納された，correct_responses パターンエントリーの総数を返す．
・API 呼び出しの例:
LMSGetValue("cmi.interactions.0.correct_responses._count")・返り値の例:“0”"4"
・エラーコード:
401 − 非実装エラー．この要素がサポートされないなら
ば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
LMSSetValue(): LMS は以下に従ってエラーコードを設定すべきである．
・エラーコード:
402 − 無効な設定値，要素はキーワードである．要素が LMS によってサポートされ，この要素に対してLMSSetValue()を起動しようとする場合，LMS はエラー
コードを 402 に設定すべきである．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを 401 に設定する．
SCO の使用例:
SCO はプロセスの中でどの配列インデックスを後に使用するべきかを決定するために_count 要素を使用する．
// get the count of objective ids recorded by the LMS for a given interaction
var totalPattern =LMSGetValue("cmi.interactions.0.correct_responses._count")// The value return from the LMS is the total number records
var request = "cmi.interactions.0.correct_responses." + totalPattern + ".pattern"

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-77

// Set the Interactions correct_responses pattern
LMSSetValue(request, “t")cmi.interactions.n.correct_responses.n.pattern

Supported API
calls:
LMSSetValue()

定義: インタラクションに対して学習者が行えるレスポンスの記述．
正しい回答は 1 つ以上かもしれないし，いくつかの回答は他のものよりもっと正確かもしれない．

LMS Mandatory:No

使用法: これは SCO によって提供されるインタラクションに対する正しい回答である．

データ・タイプ:
CMIFeedback

形式:

SCO のアクセス可
能性:
書き込み専用True-False(○，×)： この場合，パターンは 1 文字か数字である．
正しい文字は 0，1，t および f である．0 は偽に対応する．レスポンス
が完全な単語(つまり， true )である場合，先頭の文字(t)だけ意味がある．

cmi.interactions.n.type が以下の場合，

Choise(選択): この場合，パターンはコンマで区切られた 1 つ以上の文字である．整数(0-9)，文字(a-z-)あるいは両方を使用してよい．個々の可能なレスポンスは単一の文字に限られる．26 を越える可能性がある場合，パフォーマンス型のレスポンスが使用されなければならな
い．
fill-in（穴埋め）：この場合，パターンは英数字文字列である．先頭の印刷可能な文字の後の空白は意味を持つ．
Numeric(数値): この場合，パターンは単一の数である．数は小数点を持つ場合と持たない場合がある．
Likert(アンケート): likert 問題に対しては正しくない解答というのはない．フィールドはブランクだけの場合もある．
Matching(組合せ): この場合，パターンはピリオドで区切られた識別子のペアである．それぞれの組合せの候補は，ソースとターゲットから成る．
Performance(実行): この場合，パターンは 255 文字までが(長さ)制限の英数字のフィールドである．
Sequencing(並べ替え): この場合，パターンは任意の並びの要素である．要素の最終位置は正しさを決定するために使用され，どのような順序でそれらを並べたかは関係無い．
LMS の動作:
初期化:

値は SCO によってコントロールされる．

LMSGetValue():
3-78

LMS は以下に従ってエラーコードを設定し，Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

空文字列()を返さねばならない．
・エラーコード：
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
404 − 要素は書き込み専用．SCO がこの要素に対して
LMSGetValue()を呼び出そうとする場合，LMS はエラー
コードに 404 を設定し，空文字列()を返すべきである．
LMSSetValue(): データモデル要素に指定された値を設定す
る．値は，この要素のデータ・タイプと合致しなければならな
い．
・API 呼び出しの例:
cmi.interactions.n.type が一致している場合，
LMSSetValue(“cmi.interactions.0.correct_responses.0.p
attern","1.c,2.b,3.a,4.d")（のように呼び出す．）
設定値の例:"1.c,2.b,3.a,4.d""t"
エラーコード:205 − 不正データ・タイプ： LMSSetValue()が起動され，要素に対して設定される値が，不正データ・タイプである．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを(401 に)設定する．
SCO の使用例:// set the response pattern// Question type is a true-false question
LMSSetValue("cmi.interactions.0.correct_responses.0.pattern","t");cmi.interactions.n.weighting

Supported API
calls:
LMSSetValue()LMS Mandatory:No
データ・タイプ:
CMIDecimal
SCO のアクセス可
能性:書き込み専用

定義: インタラクションの重要度は異なる．重み付けは，あるインタラ
クションを他と比較した相対的な重要度を指定するために使用される要素である．例えば，第 1 のインタラクションが 15 の重みを持っており，第 2 のインタラクションが 25 の重みを持っている場合，第 2 のイ
ンタラクションは，重みを反映したいかなる組み合わせの得点にも，より大きな影響を与える．
インタラクションの重要度が等しい場合，各インタラクションは同じ重みを持つ．
重み０は，当該のインタラクションを，重み付けされた最終スコアの中で数えてはならないことを示す．

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-79

中で数えてはならないことを示す．
使用法: インタラクションは重みを持ってよいし，また，同様に，複雑なインタラクション内部の個々のアクション，あるいはレスポンスも重みを持ってよい．
形式: 単一の浮動小数点数．小数点はオプションで，あらゆる重み付
けに現われる必要はない．
LMS の動作:
初期化:

値は SCO によってコントロールされる．

LMSGetValue(): LMS は以下に従ってエラーコードを設定
し，空文字列()を返すべきである．
・エラーコード：
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
404 − 要素は書き込み専用．SCO がこの要素に対して LMSGetValue()を呼び出そうとする場合，LMS はエラーコードに 404 を設定し，空文字列()を返すべきである．
LMSSetValue(): データモデル要素に指定された値を設定す
る．値は，この要素のデータ・タイプと合致しなければならな
い．
・API 呼び出しの例:
LMSSetValue(“cmi.interactions.0.weighting","0.66")
・設定値の例:"0.66""0"・エラーコード:
205 − 不正データ・タイプ： LMSSetValue()が起動され，要素に対して設定される値が，不正データ・タ
イプである．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを(401 に)設定する．
SCO の使用例:// Set the weighting for the interaction
LMSSetValue("cmi.interactions.0.weighting","0");cmi.interactions.n.student_response

Supported API calls
LMSSetValue()3-80

定義: インタラクションに対して行える解答（レスポンス）の記述である．１つ以上の正しいレスポンスがあるかもしれないし，また，いSharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

くつかのレスポンスは他のものより正しいかもしれない．
LMS Mandatory:No
データ・タイプ:
CMIFeedback
SCO のアクセス可
能性:
書き込み専用

使用法: これはインタラクションに対する実際の学習者レスポンスである．この値は次に，cmi.interactions.n.correct_responses.n.pattern.
と比較される．
形式:

cmi.interactions.n.type が以下の場合，

True-False(○，×)： この場合，1 文字か数字である．正しい文字は
0，1，t および f である．0 は偽に対応する．レスポンスが完全な単語(つまり， true )である場合，先頭の文字(t)だけ意味がある．
Choise(選択): この場合，コンマで区切られた 1 つ以上の文字である．整数(0-9)，文字(a-z-)あるいは両方を使用してよい．個々の可能なレスポンスは単一の文字に限られる．26 を越える可能性がある場合，パフォーマンス型のレスポンスが使用されなければならない．
fill-in（穴埋め）：この場合，英数字文字列である．先頭の印刷可能な文字の後の空白は意味を持つ．
Numeric(数値): この場合，単一の数である．数は小数点を持つ場合と持たない場合がある．
Likert(アンケート): likert 問題に対しては正しくない解答というのはない．フィールドはブランクだけの場合もある．
Matching(組合せ): この場合，パターンはピリオドで区切られた識別子のペアである．それぞれの組合せの候補は，ソースとターゲットから成る．
Performance(実行): この場合，255 文字までが(長さ)制限の英数字のフィールドである．
Sequencing(並べ替え): この場合，パターンは任意の並びの要素である．要素の最終位置は正しさを決定するために使用され，どのような順序でそれらを並べたかは関係無い．
LMS の動作:
初期化:

値は SCO によってコントロールされる．

LMSGetValue(): LMS は以下に従ってエラーコードを設定
し，空文字列()を返さねばならない．
・エラーコード：
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
404 − 要素は書き込み専用．SCO がこの要素に対して LMSGetValue()を呼び出そうとする場合，LMS はエラーコードに 404 を設定し，空文字列()を返すべきSharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-81

である．
LMSSetValue(): データモデル要素に指定された値を設定す
る．値は，この要素のデータ・タイプと合致しなければならな
い．
・API 呼び出しの例: cmi.interactions.n.type が一致している
場合，
LMSSetValue(“cmi.interactions.0.correct_responses.0.pattern","1.c,2.b,3.a,4.d")（のように呼び出す．）
・設定値の例:"t""1.c,2.b,3.a,4.d"
・エラーコード:
205 − 不正データ・タイプ： LMSSetValue()が起動され，要素に対して設定される値が，不正データ・タ
イプである．
ｃｃｃｃｃｃ401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを(401 に)設定する．
SCO の使用例:// set the students response// Student response was to a true-false
LMSSetValue("cmi.interactions.0.student_response","f");cmi.interactions.n.result

Supported API
calls:
LMSSetValue()

定義:

LMS Mandatory:No

形式: ボキャブラリセット．5 つのとり得るボキャブラリ値．
・ correct(正しい)・ wrong(間違い)・ unanticipated(予期しない（解答）)・ neutral(どちつかず)
・ x.x (CMIDecimal)

データ・タイプ:CMIVocabulary(Result)"correct""wrong""unanticipated""neutral""x.x" (CMIDecimal)
SCO のアクセス可
能性:
書き込み専用3-82

記述された解答に対してシステムがどう判断するか．

使用法:

これは student_response からの実際の評価結果である．

LMS の動作:
初期化:

値は SCO によってコントロールされる．

LMSGetValue(): LMS は以下に従ってエラーコードを設定
し，空文字列()を返すべきである．
・エラーコード：
401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートさSharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

れていないことを示すためにエラーコードが設定される．
404 − 要素は書き込み専用．SCO がこの要素に対して
LMSGetValue()を呼び出そうとする場合，LMS はエラー
コードに 404 を設定し，空文字列()を返すべきである．
LMSSetValue(): データモデル要素に指定された値を設定す
る．値は，この要素のデータ・タイプと合致しなければならな
い．
・API 呼び出しの例:
LMSSetValue("cmi.interactions.0.result","correct")
・設定値の例:"correct""95.5""ananticipated"
・エラーコード:
205 − 不正データ・タイプ： LMSSetValue()が起動され，要素に対して設定される値が，不正データ・タイ
プである．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを(401 に)設定する．
SCO の使用例:// set the result for the question
LMSSetValue("cmi.interactions.0.result","correct");

cmi.interactions.n.latency

Supported API
calls:
LMSSetValue()LMS Mandatory:No
データ・タイプ:
CMITimespanSCO のアクセス可
能性:
書き込み専用定義:

問題の提示から測定できる反応の完了までの時間．

使用法: 反応時間が記録される場合，各レスポンスに対する反応時間値が存在する．
形式: コロンによって区切られた時，分および秒．
HHHH:MM:SS.SS
時間は最低 2 つの数字および最高 4 つの数字を持つ．分はちょうど 2
つの数字から成る．秒は，2 つの数字とオプションとして小数点と 1
つあるいは 2 つの追加数字を持つ．(つまり 34.45 のように)．
LMS の動作:
初期化:

値は SCO によってコントロールされる．

LMSGetValue(): LMS は以下に従ってエラーコードを設定
し，空文字列()を返すべきである．
・エラーコード：
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-83401 − 非実装エラー．この要素がサポートされないな
らば，空文字列が返され，そしてこの要素がサポートされていないことを示すためにエラーコードが設定される．
404 − 要素は書き込み専用．SCO がこの要素に対して LMSGetValue()を呼び出そうとする場合，LMS はエラーコードに 404 を設定し，空文字列()を返すべきである．
LMSSetValue(): データモデル要素に指定された値を設定す
る．値は，この要素のデータ・タイプと合致しなければならな
い．
・API 呼び出しの例:
LMSSetValue("cmi.interactions.0.latency","00:29:00")
・設定値の例:"00:29:00""1234:44:30"
・エラーコード:
205 − 不正データ・タイプ： LMSSetValue()が起動され，要素に対して設定される値が，不正データ・タイ
プである．
401 − 非実装エラー．この要素がサポートされないな
らば，LMS はこの要素がサポートされていないことを示すためにエラーコードを(401 に)設定する．
SCO の使用例:// set the latency for the interaction
LMSSetValue("cmi.interactions.0.latency","00:20:00");

3-84

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3.4.5.

データタイプおよび制御ボキャブラリ

AICC CMI データモデル 4 の各要素に対するデータ型定義が存在する．以下のセクションでは，データモデル要素に対して指定される各データタイプの仕様を定義する．これらの定義は，さらに API およびデータモデルがどのように実装されるべきかを定義する．
以下の定義は，各データ要素のフォーマットを記述するために使用されるデータタイプである．すべてのデータ・タイプは，それらが AICC CMI データモデル 4に固有なデータタイプであることを明確に示すために最初に CMI の 3 文字を有する．
CMIBlank

空文字列(

CMIBoolean

2 つのボキャブラリ．(

CMIDecimal

数値で，小数点を有する場合もある．マイナス記号が前に付かない場
合，数は正数とみなされる．例は「2」，「2.2」および「-2.2」であ
る．

)．
true

または

false

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

)．

3-85

CMIFeedback

インタラクション中の学習者応答の構造化した記述．フィードバックの構造および内容はインタラクションのタイプに依存する．現在定義されているインタラクションは次のとおりである．
True-false(○×):
フィードバックは次の単一文字のうちのいずれかである．
“0”,”1”,”t”, または “f”.
choice(多肢選択):
フィードバックはコンマで区切られた 1 つ以上の単一文字である．正
しい文字は 0 〜 9 と a 〜 z である．正しいフィードバッ
クとなるために，すべての文字を選ばなければならない場合，コンマで区切られたリストを{ }括弧で囲まなければならない．
fill-in(穴埋め):
長さ 255 文字までの任意の英数字文字列．最初の文字以降に表れる空
白は意味を持つ．
Numeric(数値):
CMIDecimal
Likert(アンケート):
単一文字．正しいな文字は 0 から 9 と a から z である．
Matching(組合せ):
1 つ以上の識別子のペア．各識別子は単一の文字か，数(0 から 9，a から z)である．ペア中の識別子はピリオドによって区切られる．コンマ
でペアを区切る．正しいインタラクションとなるために，すべてのペアが正しく組み合わせられなければならない場合，コンマで区切られたペアのリストを{ }括弧で囲まなければならない．
Performance(パフォーマンス):
これは非常に柔軟性のあるフォーマットである．本質的に 255 文字以
下の英数字文字列である．
Sequencing(順序付け):
コンマで区切られた一連の単一文字．正しい文字は 0〜9 と a〜z である．文字の順序は，フィードバックの正しさを決定する．

CMIIdentifier

中に余白あるいは印刷不可能な文字のない英数字のグループ．最大
255 文字．

CMIInteger

0 から 65536 までの整数．

CMISInteger-32768 から+32768 までの符号付き整数．

CMIString255

最大長が 255 文字の ASCII 文字セット．

CMIString4096

最大長が 4096 文字の ASCII 文字セット．

3-86

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

CMITime

２４時間表示での時間表示，時，分，秒で HH：MM：SS.SS の形式
で，指定される．
時間と分は，ちょうど 2 桁である．秒は 2 桁の数とオプションとしての小数点及び 1 桁または 2 桁の追加の数である(すなわち 34.45 のように)．

CMITimespan

時間の長さを時，分，秒で以下の数値形式で示したもの：
HHHH:MM:SS.SS．
時間は最低 2 桁および最高 4 桁である．分はちょうど 2 桁である．秒
は 2 桁の数とオプションとしての小数点及び 1 桁または 2 桁の追加の数である(すなわち 34.45 のように)．

CMIVocabulary

スキーマの文脈内に特別なボキャブラリを付加するために使用される．ボキャブラリは，以下の表に示すボキャブラリと完全に合致しなければならない．単一文字と略語は，API コミュニケーションでは使用してはならない．有効なボキャブラリのリストに関しては下記の表を参照されたい．

データ・タイプに加えて，いくつかのデータモデル要素は，結び付けられた可能な値のボキャブラリで定義される．下記のテーブルは，これらの要素のためのボ
キ ャ ブ ラ リ タ イ プ と 値 を 要 約 し た も の で あ る (AICC CMI001 Guidelines forInteroperability4 による)．
ボキャブラリタイプ

ボキャブラリ一覧

Mode/モード“normal”“review”“browse”“passed”“completed”“failed”"incomplete""browsed"“not attempted”“time-out”“suspend”“logout”"" - (empty string)“credit”“no-credit”“ab-initio”“resume”"" - (empty string)cmi.core.lesson_mode

Status/状態
cmi.core.lesson_status
cmi.objectives.n.status

Exit/終了
cmi.core.exit

Credit/単位取得
cmi.core.credit

Entry/開始
cmi.core.entry

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-87Interaction/インタラクション
cmi.interactions.n.type

Result/（解答）結果
cmi.interactions.n.result

Time Limit Action/タイム・リミ
ット・アクション
cmi.student_data.time_limit_acti
on

3-88

"true-false""choice""fill-in""matching""performance""likert""sequencing""unique""numeric""correct""wrong""unanticipated""neutral"X.X (CMIDecimal)“exit,message”“exit,no message”“continue,message”“continue,no message”

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3.5. ランタイム環境の動作
次の図は，LMS と SCO(Sharable Content Object)間での可能な実行時の通信シナリ
オの一例を示すものである．以下の図表は LMS と SCO が描く一般的な実行時動作を示している．ただし，これは単に一例であり，実装要求ではないことに注意されたい．
Learning Management System

Sharable Content Object(SCO)

1. 起動するSCOを決定する
1. APIｱﾀﾞﾌﾟﾀｵﾌﾞｼﾞｪｸﾄを見つける
・ ユーザ選択・ 自動的に適応機能（前提条件）利用
・ 順次
2. LMSIniitialize("")を呼び出す

コンテンツパッケージで定義されたコンテンツ構造の情報を利用する
起動するSCOがなくなれば終了または退出する
2. SCOのcmi.core.lesson̲modeを決定し初期化する
a. ＬＭＳはユーザ選択可能なモードをサポートしているか？
b. cmi.core.lesson̲mode が"normal"でかつ cmi.core.credit
が"no-credit "ｃｍｉの場合、core.lesson̲mode を"browse"に変更する

SCO固有の実装動作（すべてｵﾌﾟｼｮﾝ）
3a. LMSGetValue("cmi.launch̲data")
を呼び出す（SCOがｻﾎﾟｰﾄしている場合に使用）

3. SCOのcmi.core.entryを決定し初期化する
cmi.core.lesson̲statusが"browsed"または"not attempted"の場合、cmi.core.entryを"ab-initio"に、それ以外の場合は"resume"に設定する

4. SCOを起動する

起動

5. SCOによる以下のAPI呼出しに応答する
LMSInitialize("")
LMSGetValue(element)
LMSSetValue(element,value)
LMSGetLastError()
LMSGetErrorString(errorCode)LMSGetDiagnostic(errorCode)LMSCommit("")
LMSFinish("")

API及びデータモデル
デル

学
習
者
/
S
C
O
間
交
信

3b. LMSGetValue("cmi.core.entry"）を呼び出す
入りが"resume"の場合はlesson̲location及びsuspend̲dataを取得し、適切なSCOの場所から再開する
3c. LMSGetValue("cmi.core.lesson̲mode")を呼び出す（ﾓｰﾄﾞに基づいた条件動作）

3e. LMSSetValueを呼び出し、必要とされる
ｵﾌﾟｼｮﾅﾙな情報を記録する（例. Scores, status, objectives, interactionsなど）

3f. LMSCommit("")を呼び出す
6. SCOのコンテンツ構造内に合格点がある場合、LMS
は、cmi.core.score.rawの値を合格点と比較し、
lesson̲statusを"passed"または"failed"に変更する
コンテンツ構造内にSCOに定義された合格点がない
場合、LMSはSCOが設定したlesson̲statusを上書きできない
cmi.core.creditが"no-credit"に設定されている場合
LMSは、SCOのlesson̲modeが"browse"(LMSは、
lesson̲statusを"browsed に設定してよい）でない
限り、lesson̲statusを変更しない

4. LMSFinish("")を呼び出す

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-89Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

3-1

APPENDIX A
略語リスト

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

A-1略語リストA-2

ADL

Advanced Distributed Learning

AICC

Aviation Industry CBT Committee

API

Application Program Interface

ARIADNE

Alliance of Remote Instructional Authoring &Distribution Networks for Europe

ASCII

American Standard Code for Information
Interchange

AU

Assignable Unit

AWT

Abstract Window Toolkit

CBI

Computer-Based Instruction

CBT

Computer-Based Training

CDATA

Character Data

CMI

Computer Managed Instructions

COTS

Commercial Off-The-Shelf

CSF

Content Structure Format

DC

Dublin CoreDoD

Department of Defense

DOL

Department of Labor

DTD

Document Type Definition

HTML

HyperText Markup Language

HTTP

Hypertext Transfer Protocol

IDA

Institute for Defense Analyses

IEEE

Institute of Electrical and Electronics Engineers

ISO

International Organization for Standardization

ITSIntelligent Tutoring Systems

LMS

Learning Management System

LOM

Learning Objects Metadata

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

LTSC

Learning Technology Standards Committee

MIME

Multipurpose Internet Mail Extensions

NGB

National Guard Bureau

OSTP

Office of Science and Technology Policy

PCDATA

Parsable Character Data

SCO

Sharable Content Object

SCORM

Sharable Content Object Reference Model

URI

Universal Resource Identifier

URL

Universal Resource Locator

W3C

World Wide Web Consortium

WWW

World Wide WebXML

eXtensible Markup Language

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

A-3

A-4

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

APPENDIX B
参考文献

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

B-1

参考文献
1.

Aviation Industry CBT (Computer-Based Training) Committee.
(http://www.aicc.org/)

2.

Institute of Electrical and Electronics Engineers (IEEE) Learning Technology
Standards Committee (LTSC). (http://ltsc.ieee.org/)

3.

IMS Global Learning Consortium, Inc. (http://www.imsglobal.org/)

4.

AICC/CMI CMI001 Guidelines for Interoperability Version 3.4. October 23, 2000.
Includes: AICC Course Structure Format, AICC CMI Data Model
Available at: http://www.aicc.org/.

5.

ADL Co-Laboratories. (http://www.adlnet.org/)

6.

Institute for Defense Analyses (IDA). (http://www.ida.org/)

7.

Executive Order 13111: Using Technology To Improve Training Opportunities forFederal Government Employees.

8.

Gettinger, M. (1984) Individual differences in time needed for learning: A review ofthe literature. Educational Psychologist, 19,15-29.

9.

Graesser, A. C., & Person, N. K. (1994). Question asking during tutoring.
American Educational Research Journal, 31, 104-137.

10. Bloom, B.S. (1984). The 2 sigma problem: The search for methods of group
instruction as effective as one-to-one tutoring. Educational Researcher, 13, 4-16.
11. Fletcher, J. D. (2001) Evidence for Learning from Technology-Assisted Instruction.
In H. F. O’Neil Jr. and R. Perez (Eds.) Technology Applications in Education: A
Learning View. Hillsdale, NJ: Lawrence Erlbaum Associates.
12. Alliance of Remote Instructional Authoring and Distribution Networks for Europe(ARIADNE). (http://www.ariadne-eu.org/)
13. Gibbons, A.S. & Fairweather, P.G. Computer-based Instruction. (2000) In, S.
Tobias and J.D. Fletcher (Eds.), Training and Retraining: A Handbook for Business,
Industry, Government, and the Military. New York: Macmillan Gale Group.
14. Suppes, P. (1964) Modern learning theory and the elementary-school curriculum.
American Educational Research Journal, 1, 79-93.
15. Carbonell, J. R., “AI in CAI: An Artificial Intelligence Approach to ComputerAssisted Instruction,” IEEE Transactions on Man-Machine Systems, Vol. 11, 1970,
pp. 190-202.

B-2

Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

16. Sleeman, D, & Brown, J. S. (Eds.) (1982) Intelligent Tutoring Systems. New York,
NY: Academic Press, 1982.
17. Woolf, B.P., & Regian, J.W. (2000). Knowledge-based training systems and theengineering of instruction. In S. Tobias and J. D. Fletcher (Eds.), Training andretraining: A handbook for business, industry, government, and the military (339356). New York: Macmillan Reference.
18. Gibbons, A.S. & Fairweather, P.G. (1998) Computer-based Instruction: Design andDevelopment. Englewood-Cliffs, NJ: Educational Technology Publications.
19. Gibbons, A.S. & Fairweather, P.G. (2000) op. cit.
20. IMS Content Packaging Specification Version 1.1.2.
Available at: http://www.imsglobal.org/.
21. IEEE Information Technology - Learning Technology - Learning Objects Metadata
LOM: Working Draft 6.1 (2001-04-18).
As referenced by the IMS Learning Resource Meta-data Specification Version 1.2.
Available at: http://ltsc.ieee.org/.
22. IMS Learning Resource Meta-data Specification Version 1.2.
Includes: IMS Learning Resource Meta-data Information Model, IMS Learning
Resource Meta-data XML Binding Specification, and IMS Learning Resource Metadata Best Practice and Implementation Guide
Available at: http://www.imsglobal.org/.
23. ISO 639: This is an international standard for the representation of languages.
Version 1 uses two-letter language codes, e.g. 'en' for English, 'fr' for French, 'nl' for
Dutch, etc. These language codes are a basis for the IETF registry of language tags,
as specified in RFC 1766: Tags for the identification of languages.
Available at: http://www.iso.ch/.
24. ISO 3166: This is an international standard for the representation of country names,
e.g. 'BE' for Belgium, 'CA' for Canada, 'FR' for France, 'GB' for United Kingdom,'US' for United States, etc.
Available at: http://www.iso.ch/.
25. vCard: This standard defines how contact details for people and organizations can be
represented.
Available at: http://www.imc.org/pdi/.
26. ISO 8601: This is an international standard that specifies numeric representations ofdate and time.
Available at: http://www.iso.ch/.
27. World Wide Web Consortium (W3C). http://www.w3c.org/
Includes: Universal Resource Locator, Universal Resource Identifier, Extensible
Markup Language Version 1.0, Document Object Model (DOM) Specification.
28. Dublin Core Metadata Initiative. http://www.dublincore.org/.
Sharable Content Object Reference Model (SCORM) Version 1.2
 2001 Advanced Distributed Learning.
All Rights Reserved.

B-3

APPENDIX C
改訂履歴

C-1

改訂履歴
SCORM
Version
1.1

Release Date
16-Jan-2001

Description of Change
ランタイム環境の章の各節をより詳細化
起動API
データモデル
ランタイム環境の起動の変更
SCO の起動をより詳細化
ランタイム環境 API の変更
LMSInitialize(“”), LMSFinish(“”) 及び LMSCommit(“”) のパ
ラメータは，現在はすべて空文字列でなければならな
い．
LMSInitialize(“”), LMSFinish(“”), LMSCommit(“”) 及 び
LMSSetValue() は，現在 CMIBoolean (“true” or “false”)に変換される文字列を返さねばならない．
各 API 呼び出しの記述をより詳細化
API エラーコードの使用法の節を追加
どのような場合に各エラーコードを使用するかのシナリ
オを定義
新しいエラーコードの追加
兄弟フレームを探すことのないように API() 検出アルゴ
リズムを変更ランタイム環境データモデルの変更
すべてのデータモデル要素を詳細に記述するための表を追加
ランタイムデータモデル要素の変更については e 表 C-1a
を参照
ランタイムデータモデルタイプの変更については表 C-1b
を参照
ランタイムデータモデルボキャブラリの変更については
表 C-1c を参照

1.2

C-2

01-Oct-2001

SCO とアセットが起動されることを示すように図 3.1ａを変更

起動の節に SCO 以外についての詳細記述を追加
SCO /LMS 間通信 API の状態遷移と説明を追加
エラーコードの使用場面を示す API エラーコード使用表の詳細を追加以下のデータモデル要素についてより明確化:
cmi.core.lesson_status
cmi.core.entry
cmi.core.exit
cmi.core.session_time

得点 (cmi.core.score.raw, cmi.core.score.min,
cmi.core.score.max, cmi.objectives.n.score.raw,
cmi.objectives.n.score.min, cmi.objectives.n.score.max)を表す
これらの要素のより詳細な定義を追加. 以下の文を追加 :「正規化された０から 100 までの値でなければならない」
全般に表の形式を整形
3.5 ランタイム環境の動作を追加

全般に文法を整形

Table C-1a: Run-Time Environment Data Model Element Changes
Data Model Element

Change from SCORM 1.0

cmi.core._children

データタイプ CMIString256 を
CMIString255 に変更
変更なし
データタイプ CMIString256 を
CMIString255 に変更
データタイプ CMIString256 を
CMIString255 に変更
変更なし
変更なし
変更なし
データタイプ CMIString256 を
CMIString255 に変更
変更なし
変更なし
変更なし
変更なし

cmi.core.student_id
cmi.core.student_namecmi.core.lesson_location
cmi.core.credit
cmi.core.lesson_status
cmi.core.entry
cmi.core.score._children
cmi.core.score.raw
cmi.core.score.min
cmi.core.score.max
cmi.core.total_time

C-3cmi.core.lesson_mode
cmi.core.exit
cmi.core.session_time

変更なし
変更なし
変更なし

cmi.suspend_data

変更なし

cmi.launch_data

変更なし

cmi.comments

この要素は現在は SCO/学習者からのコメントを保持するために使用される
SCO はこの要素について
LMSGetValue() 及び LMSSetValue() を呼び出せる
この新要素は LMS ないしインストラ
クターからのコメントを置いて SCO
によって使用されるように追加された

cmi.comments_from_lms

cmi.objectives.n.mastery_time

変更なし
データタイプ CMIString256 を
CMIString255 に変更
変更なし
scores を score に変更
データタイプ CMIString256 を
CMIString255 に変更.
学習目標の得点リストのサポートを削除
得点に対するリストのサポートを削除各学習目標は，現在は一つの得点のみを持つことができる
名前を scores から score に変更.
得点に対するリストのサポートを削除各学習目標は，現在は一つの得点のみを持つことができる
名前を scores から score に変更
得点に対するリストのサポートを削除各学習目標は，現在は一つの得点のみを持つことができる
名前を scores から score に変更.
得点に対するリストのサポートを削除各学習目標は，現在は一つの得点のみを持つことができる
名前を scores から score に変更.
削除

cmi.evaluation._children
cmi.evaluation.course_id
cmi.evaluation.comments

削除
削除
削除

cmi.objectives._countcmi.objectives._children
cmi.objectives.n.id
cmi.objectives.n.score._children

cmi.objectives.n.score._countcmi.objectives.n.score.raw

cmi.objectives.n.score.min

cmi.objectives.n.score.max

cmi.objectives.n.status

C-4

cmi.evaluation.comments.n.time
cmi.evaluation.comments.n.location
cmi.evaluation.comments.n.content
cmi.evaluation.interactions._children
cmi.evaluation.objectives_status._children
cmi.evaluation.paths._children
cmi.evaluation.performance._children
cmi.evaluation.lesson_id
cmi.evaluation.date

削除
削除
削除
削除
削除
削除
削除
削除
削除

cmi.interactions._children
cmi.interactions._countcmi.interactions.n.id

追加
追加
データタイプ CMIString256 を
CMIString255 に変更
追加
データタイプ CMIString256 を
CMIString255 に変更
変更なし
変更なし
追加
変更なし
変更なし
変更なし
変更なし
変更なし

cmi.interactions.n.objectives._countcmi.interactions.n.objectives.n.id
cmi.interactions.n.time
cmi.interactions.n.type
cmi.interactions.n.correct_responses._countcmi.interactions.n.correct_responses.n.pattern
cmi.interactions.n.weighting
cmi.interactions.n.student_response
cmi.interactions.n.result
cmi.interactions.n.latency

cmi.student_data.attempt_number
cmi.student_data.mastery_score
cmi.student_data.max_time_allowed
cmi.student_data.time_limit_action
cmi.student_data.attempt_records._countcmi.student_data.attempt_records._children
cmi.student_data.attempt_records.n.lesson_score._children
cmi.student_data.attempt_records.n.lesson_score.raw
cmi.student_data.attempt_records.n.lesson_score.min
cmi.student_data.attempt_records.n.lesson_score.max
cmi.student_data.attempt_records.n.lesson_status
cmi.student_data.tries_during_lesson
cmi.student_data.tries.n.score.raw
cmi.student_data.tries.n.score.max
cmi.student_data.tries.n.score.min
cmi.student_data.tries.n.status
cmi.student_data.tries.n.time

データタイプ CMIString256 を
CMIString255 に変更
削除
変更なし
変更なし
変更なし
削除
削除
削除
削除
削除
削除
削除
削除
削除
削除
削除
削除
削除

cmi.student_demographics._children
cmi.student_demographics.city
cmi.student_demographics.classcmi.student_demographics.company
cmi.student_demographics.country
cmi.student_demographics.experience

削除
削除
削除
削除
削除
削除

cmi.student_data._children

C-5cmi.student_demographics.familiar_namecmi.student_demographics.instructor_namecmi.student_demographics.title
cmi.student_demographics.native_language
cmi.student_demographics.state
cmi.student_demographics.street_address
cmi.student_demographics.telephone
cmi.student_demographics.years_experience

削除
削除
削除
削除
削除
削除
削除
削除

cmi.student_preference._children

cmi.student_preference.lesson_type
cmi.student_preference.speed
cmi.student_preference.text
cmi.student_preference.text_color
cmi.student_preference.text_location
cmi.student_preference.text_size
cmi.student_preference.video
cmi.student_preference.windows.n

データタイプ CMIString256 を
CMIString255 に変更
変更なし
データタイプの CMIString256 を
CMIString255 に変更
削除
変更なし
変更なし
削除
削除
削除
削除
削除

cmi.paths.n.location_id
cmi.paths.n.time
cmi.paths.n.status
cmi.paths.n.why_left
cmi.paths.n.time_in_element

削除
削除
削除
削除
削除

cmi.student_preference.audio
cmi.student_preference.language

Table C-1b: Run-Time Environment Data Type Changes
CMIDateCMIBoolean
CMIFeedback
CMILocale
CMISIdentifier
CMIString255
CMITime
CMITimespan削除
型をすべて小文字に変更 (“true”, “false”)
CMIFeedback データタイプの使用法を定義するため詳細情報を追加
削除
削除
CMIString255 の最大長を 255 文字に変更
オプションである小数点以下の数字を最大２桁までに (i.e. 34.43)
オプションである小数点以下の数字を最大２桁までに (i.e. 34.43)

Table C-1c: Run-Time Environment CMIVocabulary Changes
Exit
Why Left
Credit
Entry
Time Limit Action
Interaction

C-6

ボキャブラリ “” （空文字列）を追加
削除“no credit” を “no-credit”に変更
ボキャブラリ “” （空文字列）を追加
すべてのボキャブラリ選択を変更“multiple choice” を “choice”に変更“fill in the blank” を“fill-in”に変更“simple performance” を “performance”に変更

C-7