• 検索結果がありません。

5.6. ナビゲーションに対するユーザーインターフェース(UI)装置

5.6.6. 要求

SCO は終了時に,LMS が処理するナビゲーション要求を一つだけ提示ことができる.例えば,SCO は Previous, ExitおよびChooseといったナビゲーション要求を LMS に送信できる.SCO が終了したあと,

LMS は提示されたナビゲーション要求を処理し,特定された学習アクティビティを配信する. 

Terminate()の呼び出しに成功して LMS との通信が終了するまでは,adl.nav.request 要素を通じて LMS に送信されるナビゲーション要求は効力を持たない.SCORM ナビゲーションデータモデルは,SCO への 学習セッション中にのみ有効である.これは SCO が終了するまで LMS に管理されるが,終了した状態で は維持されない. 

以下のシナリオを考えてみよう. 

A. 学習行為中,ユーザーがアクティビティ A に遭遇し,アクティビティ A に対応する SCO A を提示される(SCO A への学習者セッション 1): 

SCO A は adl.nav.request 要素を continue に設定する 

学習者がナビゲーションイベントを発行する前に,SCO が Terminate()を呼び出す.

この結果,SCO と API インスタンスの間の通信が終了する   

シナリオ A の結果,Continueナビゲーション要求が LMS に処理される. 

 

B. 後に同一の学習行為中,ユーザーがアクティビティ A に再び遭遇し,SCO A が学習 者に再び提示される(SCO A への学習者セッション 2): 

SCO A が直ちに GetValue(adl.nav.request)を呼び出した場合,この学習セッション では SCO はナビゲーション要求を通信していないので  ̲none̲ が返される  この学習セッション中,SCO は adl.nav.request 要素を設定しない 

学習者がナビゲーションイベントを発行する前に SCO が Terminate()を呼び出す.

この結果,SCO と API インスタンスの間の通信が終了する   

シナリオ B では,adl.nav.request データモデル要素は学習者セッション 1 から持続されない.つまり前回 からの値 continue を含まない.このケースでは Terminate()ではナビゲーション要求は発行されない.

LMS は,ナビゲーション要求を処理する前に,学習者によるナビゲーションイベントを待つ. 

ADL ノート:   コンテンツ開発者は  exit All ,  abandon All ないし suspend All を発生する SCO は再 利用性が限定されることに注意しなくてはならない. 

 

表 5.6.6a:  要求データモデル要素に対する Dot-notation Binding  Dot-Notation Binding  詳細 

adl.nav.request  このデータモデル要素は,SCO が,Terminate()の呼び出しに成功した 直後に処理される望まれるナビゲーション要求を提示するために使用され る 

データ要素実装要件: 

データ型:  (制限された)キャラクタ文字列 (continue, previous,  choice, exit, exitAll,  abandon, abandonAll, and ̲none̲), および 文字列で表されるターゲットとなる区切り文字列(デリミタ) 

フォーマット:  キャラクタ文字列のフォーマットは以下の通り: 

o {target=<STRING>}<navigation request> 

デリミタ文字列{target=<STRING>} は,Choice ナビゲーション要 求のターゲットを示す.もしナビゲーション要求が choice なら,デリミ タ文字列は必須で,SetValue()呼び出しの parameter̲2 の始めの 部分の文字列でなくてはならない. (SCORM RTE Book [4]のセクショ ン 3.1.4.2 参照). <STRING>の値は,通常,アクティビティツリーが抽 出されるコンテンツパッケージの<item>要素の識別子属性を参照す る. 

他のすべてのナビゲーション要求は,このデリミタ文字列を含むとエラ ーになる. 

値空間:  SCORM では,キャラクタ文字列に許された値は,以下 の制約された語彙トークンにバインドされている: 

o continue :  SCO 終了直後にContinue ナビゲーショ ン要求を処理するように,コンテンツが LMS に指示した ことを示す. 

o previous :  SCO 終了直後にPrevious ナビゲーション 要求を処理するように,コンテンツが LMS に指示したこ とを示す. 

o choice :  SCO 終了直後にChoice ナビゲーション要 求を処理するように,コンテンツが LMS に指示したこと を示す. 

o exit :  SCO 終了直後にExit ナビゲーション要求を処 理するように,コンテンツが LMS に指示したことを示 す. 

o exitAll :  SCO 終了直後にExit All ナビゲーション要 求を処理するように,コンテンツが LMS に指示したこと を示す. 

o abandon :  SCO 終了直後にAbandon ナビゲーション 要求を処理するように,コンテンツが LMS に指示したこ とを示す. 

o abandonAll :  SCO 終了直後にAbandon All ナビゲ

LMS 動作要件: 

このデータモデル要素は必須で,LMS は読み書き可能 (read/write)に実装しなくてはならない. 

通常,学習者は LMS が提供するナビゲーションユーザーインタ ーフェースコントロールによりナビゲーションの要求を示す.しか し,場合によっては,ユーザーインターフェースコントロールは SCO に組み込まれているか,もしくは,SCO が学習者に代わっ てナビゲーション要求を提供しようとする.学習者が LMS の提供 する UI コントロールを用いてナビゲーション要求を発行しないと き,LMS は SCO がこの要素で指定したナビゲーション要求を処 理する. 

SCO によって設定されていない場合,デフォルトのナビゲーショ ン要求は  ̲none̲ である 

SCO が正常に終了(SCO がcmi.exit を   もしくは  normal へ 設定する)し,学習者が LMS の提供する UI コントロールを用いて ナビゲーション要求を発行しないとき,LMS はこの要素で指定さ れたナビゲーション要求を,学習者のために管理されているアク ティビティツリー上で処理する. 

SCO が中断状態で終了する場合(SCO がcmi.exit を suspend   もしくは  logout へ設定する),LMS はこの要素で指定されたナ ビゲーション要求を処理せず,代わりにSuspend もしくは SuspendAll 要求を適宜処理する (セクション 4.2.8 Exit [4]参 照). 

SCO 動作要件: 

この要素は LMS によって読み書き可能なものとして実装される.

SCO は,adl.nav.request データモデル要素の値を読み出し,書 き込むことができる. 

API 実装要件: 

GetValue(): 

o LMS は SCO に対してその時点で LMS に保存されて いる対応するナビゲーション要求を返し,エラーコード は 0  – No error を示す.返された文字列は,データ 要素実装要件で特定された要件に従う. 

o SCO が値を設定するまで,adl.nav.request の既定値は 

̲none̲ である. 

o SCO に対して LMS がその時点で保存するナビゲーシ ョン要求が  choice の場合,返される文字列のフォー マットは: 

{target=<STRING>}choice

ここで<STRING>は保留中の choice ナビゲーション要 求のターゲットを表す. 

ADL ノート:  一般的なデリミタ文字列の文法は SCORM RTE ブック (セクション 4.1.1.6: 予約されたデ リミタ文字列(Reserved Delimiters) [4]参照)で定義され ている. 

SetValue(): 

o SCO がナビゲーション要求を設定するための要求を発 行し,値が上記に示された語彙トークンの一つでない と,LMS は  false を返し,API インスタンスのエラーコ ードは  406 – データモデル要素タイプミスマッチ– に なる.LMS はこの要求によって要素の状態を変えては ならない. 

o choice  ナビゲーション要求の際,デリミタ文字列

{target=<STRING>}が指定されていない,もしくは 不正確なフォーマットで記述されていると,LMS は 

false を返し,エラーコード  406  – データモデル 要素タイプミスマッチ–を示す.要素の現在の状態は変 えない. 

o choice 以外のナビゲーション要求で,デリミタ文字列 {target=<STRING>}が指定されると,LMS は 

false を返し,エラーコード  406  – データモデル 要素タイプミスマッチ–を示す.要素の現在の状態は変 えない. 

例:   

GetValue( adl.nav.request ) 

SetValue( adl.nav.request ,  {target=intro}choice ); 

SetValue( adl.nav.request , continue )