設定しようとするとエラーが発生します:
setValue( "cmi.objectives.0.completion_status", "completed" );
SCORM インタラクション ログ:
[19:28:55.830] Initialize('')
[19:28:55.833] GetValue('cmi.objectives._count')
[19:28:55.833] GetValue('cmi.objectives.0.success_status')
[19:28:55.835] SetValue('cmi.exit', 'suspend')
[19:29:06.726] GetValue('cmi.learner_name')
[19:29:21.49] SetValue('cmi.objectives.0.completion_status', 'completed')
標準には、私には理解できないあいまいな定式化があります。「通信セッションが初期化され、関連する依存関係が存在しない場所で SetValue() API メソッドが呼び出された場合、LMS はエラー コードを Data Model Dependency Not に設定する必要があります。確立 (408) し、false を返します。」
1 つの SCORM プレーヤー (サイト scorm.com) はエラー メッセージを表示せず、問題ありません。別の SCORM プレーヤーでエラーが発生します。マニフェスト/呼び出しが正しいかどうかわかりません。
imsmanifest.xml :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Solo on the Keyboard Trainer, SCORM version, http://www.ergosolo.ru-->
<manifest identifier="ergosolo.solotrainer" version="1.0" xmlns="http://www.imsglobal.org/xsd/imscp_v1p1" xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_v1p3" xmlns:adlseq="http://www.adlnet.org/xsd/adlseq_v1p3" xmlns:adlnav="http://www.adlnet.org/xsd/adlnav_v1p3" xmlns:imsss="http://www.imsglobal.org/xsd/imsss" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:lom="http://ltsc.ieee.org/xsd/LOM" xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1.xsd
http://www.adlnet.org/xsd/adlcp_v1p3 adlcp_v1p3.xsd
http://www.adlnet.org/xsd/adlseq_v1p3 adlseq_v1p3.xsd
http://www.adlnet.org/xsd/adlnav_v1p3 adlnav_v1p3.xsd
http://www.imsglobal.org/xsd/imsss imsss_v1p0.xsd
http://ltsc.ieee.org/xsd/LOM lom.xsd">
<metadata>
<schema>ADL SCORM</schema>
<schemaversion>2004 3rd Edition</schemaversion>
<lom xmlns="http://ltsc.ieee.org/xsd/LOM" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ltsc.ieee.org/xsd/LOM lom.xsd">
<general>
<title>
<string language="ru">Соло на Клавиатуре</string>
</title>
<language>ru</language>
<description>
<string language="ru">Соло на Клавиатуре - SCORM-версия</string>
</description>
</general>
<metaMetadata>
<metadataSchema>LOMv1.0</metadataSchema>
</metaMetadata>
<technical>
<!-- All of the file types used by this course-->
<format>text/html</format>
<format>image/jpeg</format>
<format>image/bmp</format>
<format>application/x-javascript</format>
<format>application/swf</format>
<format>image/png</format>
<format>text/css</format>
<installationRemarks>
<string language="en">This activity requires the client browser to have a Macromedia Flash plugin installed.</string>
</installationRemarks>
</technical>
</lom>
</metadata>
<organizations default="soloOrganization">
<organization identifier="soloOrganization" structure="hierarchical" adlseq:objectivesGlobalToSystem="true">
<title>Соло на Клавиатуре</title>
<item identifier="speedTest" identifierref="speedTestResource">
<title>Тест скорости</title>
<imsss:sequencing IDRef="commonSeqRules">
<imsss:controlMode choice="true" choiceExit="true" forwardOnly="false" useCurrentAttemptObjectiveInfo="true" useCurrentAttemptProgressInfo="true"/>
<imsss:objectives>
<imsss:primaryObjective objectiveID="solo.objTest">
</imsss:primaryObjective>
</imsss:objectives>
</imsss:sequencing>
</item>
<item identifier="startExam" identifierref="startExamResource">
<title>Начальный экзамен</title>
<imsss:sequencing IDRef="commonSeqRules">
<imsss:controlMode choice="true" choiceExit="true" forwardOnly="false" useCurrentAttemptObjectiveInfo="true" useCurrentAttemptProgressInfo="true"/>
<imsss:objectives>
<imsss:primaryObjective objectiveID="solo.objStartExam">
</imsss:primaryObjective>
</imsss:objectives>
</imsss:sequencing>
</item>
<item identifier="exercise0" identifierref="exercise0Resource">
<title>Вступление</title>
<imsss:sequencing IDRef="commonSeqRules">
<imsss:controlMode choice="true" choiceExit="true" forwardOnly="false" useCurrentAttemptObjectiveInfo="true" useCurrentAttemptProgressInfo="true"/>
<imsss:sequencingRules>
<imsss:preConditionRule>
<imsss:ruleConditions conditionCombination="any">
<imsss:ruleCondition referencedObjective="objPrev" operator="not" condition="satisfied"/>
<imsss:ruleCondition referencedObjective="objPrev" operator="not" condition="objectiveStatusKnown"/>
</imsss:ruleConditions>
<!-- <imsss:ruleAction action="hiddenFromChoice"/> -->
</imsss:preConditionRule>
</imsss:sequencingRules>
<imsss:objectives>
<imsss:primaryObjective objectiveID="solo.obj0">
</imsss:primaryObjective>
<imsss:objective objectiveID="objPrev">
<imsss:mapInfo targetObjectiveID="solo.objStartExam" readSatisfiedStatus="true" writeSatisfiedStatus="false"/>
</imsss:objective>
</imsss:objectives>
</imsss:sequencing>
</item>
<item identifier="exercise1" identifierref="exercise1Resource">
<title>Упражнение 1</title>
<imsss:sequencing IDRef="commonSeqRules">
<imsss:controlMode choice="true" choiceExit="true" forwardOnly="false" useCurrentAttemptObjectiveInfo="true" useCurrentAttemptProgressInfo="true"/>
<imsss:sequencingRules>
<imsss:preConditionRule>
<imsss:ruleConditions conditionCombination="any">
<imsss:ruleCondition referencedObjective="objPrev" operator="not" condition="satisfied"/>
<imsss:ruleCondition referencedObjective="objPrev" operator="not" condition="objectiveStatusKnown"/>
</imsss:ruleConditions>
<!-- <imsss:ruleAction action="hiddenFromChoice"/> -->
</imsss:preConditionRule>
</imsss:sequencingRules>
<imsss:objectives>
<imsss:primaryObjective objectiveID="solo.obj1">
</imsss:primaryObjective>
<imsss:objective objectiveID="solo.obj1.1">
</imsss:objective>
<imsss:objective objectiveID="solo.obj1.2">
</imsss:objective>
<imsss:objective objectiveID="solo.obj1.3">
</imsss:objective>
<imsss:objective objectiveID="solo.obj1.4">
</imsss:objective>
<imsss:objective objectiveID="solo.obj1.5">
</imsss:objective>
<imsss:objective objectiveID="solo.obj1.6">
</imsss:objective>
<imsss:objective objectiveID="objPrev">
<imsss:mapInfo targetObjectiveID="solo.objStartExam" readSatisfiedStatus="true" writeSatisfiedStatus="false"/>
</imsss:objective>
</imsss:objectives>
</imsss:sequencing>
</item>
<item identifier="exercise2" identifierref="exercise2Resource">
<title>Упражнение 2</title>
<imsss:sequencing IDRef="commonSeqRules">
<imsss:controlMode choice="true" choiceExit="true" forwardOnly="false" useCurrentAttemptObjectiveInfo="true" useCurrentAttemptProgressInfo="true"/>
<imsss:sequencingRules>
<imsss:preConditionRule>
<imsss:ruleConditions conditionCombination="any">
<imsss:ruleCondition referencedObjective="objPrev" operator="not" condition="satisfied"/>
<imsss:ruleCondition referencedObjective="objPrev" operator="not" condition="objectiveStatusKnown"/>
</imsss:ruleConditions>
<!-- <imsss:ruleAction action="hiddenFromChoice"/> -->
</imsss:preConditionRule>
</imsss:sequencingRules>
<imsss:objectives>
<imsss:primaryObjective objectiveID="solo.obj2">
</imsss:primaryObjective>
<imsss:objective objectiveID="solo.obj2.1">
</imsss:objective>
<imsss:objective objectiveID="solo.obj2.2">
</imsss:objective>
<imsss:objective objectiveID="solo.obj2.3">
</imsss:objective>
<imsss:objective objectiveID="solo.obj2.4">
</imsss:objective>
<imsss:objective objectiveID="objPrev">
<imsss:mapInfo targetObjectiveID="solo.obj1" readSatisfiedStatus="true" writeSatisfiedStatus="false"/>
</imsss:objective>
</imsss:objectives>
</imsss:sequencing>
</item>
</organization>
</organizations>
<resources>
<resource identifier="speedTestResource" type="webcontent" adlcp:scormType="sco" href="htm/test.htm">
<file href="runtime.xml"/>
<file href="htm/test.htm"/>
<dependency identifierref="css"/>
<dependency identifierref="flash"/>
<dependency identifierref="img"/>
<dependency identifierref="image"/>
<dependency identifierref="caricature"/>
<dependency identifierref="staff"/>
<dependency identifierref="pics"/>
<dependency identifierref="js"/>
</resource>
<resource identifier="startExamResource" type="webcontent" adlcp:scormType="sco" href="htm/startExam.htm">
<file href="runtime.xml"/>
<file href="htm/startExam.htm"/>
<dependency identifierref="css"/>
<dependency identifierref="flash"/>
<dependency identifierref="img"/>
<dependency identifierref="image"/>
<dependency identifierref="caricature"/>
<dependency identifierref="staff"/>
<dependency identifierref="pics"/>
<dependency identifierref="js"/>
</resource>
<resource identifier="exercise0Resource" type="webcontent" adlcp:scormType="sco" href="htm/000.htm">
<file href="runtime.xml"/>
<file href="htm/000.htm"/>
<dependency identifierref="css"/>
<dependency identifierref="flash"/>
<dependency identifierref="img"/>
<dependency identifierref="image"/>
<dependency identifierref="caricature"/>
<dependency identifierref="staff"/>
<dependency identifierref="pics"/>
<dependency identifierref="js"/>
</resource>
<resource identifier="exercise1Resource" type="webcontent" adlcp:scormType="sco" href="htm/001.htm">
<file href="runtime.xml"/>
<file href="htm/001.htm"/>
<dependency identifierref="css"/>
<dependency identifierref="flash"/>
<dependency identifierref="img"/>
<dependency identifierref="image"/>
<dependency identifierref="caricature"/>
<dependency identifierref="staff"/>
<dependency identifierref="pics"/>
<dependency identifierref="js"/>
</resource>
<resource identifier="exercise2Resource" type="webcontent" adlcp:scormType="sco" href="htm/002.htm">
<file href="runtime.xml"/>
<file href="htm/002.htm"/>
<file href="js/init.js"/>
<dependency identifierref="css"/>
<dependency identifierref="flash"/>
<dependency identifierref="img"/>
<dependency identifierref="image"/>
<dependency identifierref="caricature"/>
<dependency identifierref="staff"/>
<dependency identifierref="pics"/>
<dependency identifierref="js"/>
</resource>
<resource identifier="css" type="webcontent" adlcp:scormType="asset">
<file href="css/fields.cs"/>
<file href="css/main.css"/>
</resource>
<resource identifier="flash" type="webcontent" adlcp:scormType="asset">
<file href="flash/SoloType.swf"/>
</resource>
<resource identifier="img" type="webcontent" adlcp:scormType="asset">
... some files here ...
</resource>
<resource identifier="caricature" type="webcontent" adlcp:scormType="asset">
<file href="caricature/1.jpg"/>
<file href="caricature/2.jpg"/>
<file href="caricature/3.jpg"/>
<file href="caricature/4.jpg"/>
<file href="caricature/5.jpg"/>
<file href="caricature/6.jpg"/>
<file href="caricature/7.jpg"/>
<file href="caricature/8.jpg"/>
<file href="caricature/9.jpg"/>
<file href="caricature/10.jpg"/>
<file href="caricature/11.jpg"/>
<file href="caricature/12.jpg"/>
<file href="caricature/13.jpg"/>
<file href="caricature/14.jpg"/>
<file href="caricature/15.jpg"/>
<file href="caricature/16.jpg"/>
<file href="caricature/17.jpg"/>
<file href="caricature/18.jpg"/>
<file href="caricature/19.jpg"/>
<file href="caricature/20.jpg"/>
<file href="caricature/21.jpg"/>
<file href="caricature/22.jpg"/>
<file href="caricature/23.jpg"/>
<file href="caricature/24.jpg"/>
<file href="caricature/25.jpg"/>
<file href="caricature/26.jpg"/>
<file href="caricature/27.jpg"/>
<file href="caricature/28.jpg"/>
<file href="caricature/29.jpg"/>
<file href="caricature/30.jpg"/>
<file href="caricature/31.jpg"/>
<file href="caricature/32.jpg"/>
<file href="caricature/33.jpg"/>
<file href="caricature/34.jpg"/>
<file href="caricature/35.jpg"/>
<file href="caricature/36.jpg"/>
<file href="caricature/37.jpg"/>
<file href="caricature/38.jpg"/>
<file href="caricature/39.jpg"/>
<file href="caricature/40.jpg"/>
<file href="caricature/41.jpg"/>
<file href="caricature/42.jpg"/>
<file href="caricature/43.jpg"/>
<file href="caricature/44.jpg"/>
<file href="caricature/45.jpg"/>
<file href="caricature/46.jpg"/>
<file href="caricature/47.jpg"/>
<file href="caricature/48.jpg"/>
<file href="caricature/49.jpg"/>
<file href="caricature/50.jpg"/>
<file href="caricature/51.jpg"/>
<file href="caricature/52.jpg"/>
<file href="caricature/53.jpg"/>
<file href="caricature/54.jpg"/>
<file href="caricature/55.jpg"/>
<file href="caricature/56.jpg"/>
<file href="caricature/57.jpg"/>
<file href="caricature/58.jpg"/>
<file href="caricature/59.jpg"/>
<file href="caricature/60.jpg"/>
<file href="caricature/61.jpg"/>
<file href="caricature/62.jpg"/>
<file href="caricature/63.jpg"/>
<file href="caricature/64.jpg"/>
<file href="caricature/65.jpg"/>
<file href="caricature/66.jpg"/>
<file href="caricature/67.jpg"/>
<file href="caricature/68.jpg"/>
<file href="caricature/69.jpg"/>
<file href="caricature/70.jpg"/>
<file href="caricature/71.jpg"/>
<file href="caricature/72.jpg"/>
<file href="caricature/73.jpg"/>
<file href="caricature/74.jpg"/>
<file href="caricature/75.jpg"/>
<file href="caricature/76.jpg"/>
<file href="caricature/77.jpg"/>
<file href="caricature/78.jpg"/>
<file href="caricature/79.jpg"/>
<file href="caricature/80.jpg"/>
<file href="caricature/81.jpg"/>
<file href="caricature/82.jpg"/>
<file href="caricature/83.jpg"/>
<file href="caricature/84.jpg"/>
<file href="caricature/85.jpg"/>
<file href="caricature/86.jpg"/>
<file href="caricature/87.jpg"/>
<file href="caricature/88.jpg"/>
<file href="caricature/89.jpg"/>
<file href="caricature/90.jpg"/>
<file href="caricature/91.jpg"/>
<file href="caricature/92.jpg"/>
<file href="caricature/93.jpg"/>
<file href="caricature/94.jpg"/>
<file href="caricature/95.jpg"/>
<file href="caricature/96.jpg"/>
<file href="caricature/97.jpg"/>
<file href="caricature/98.jpg"/>
<file href="caricature/99.jpg"/>
<file href="caricature/100.jpg"/>
</resource>
<resource identifier="staff" type="webcontent" adlcp:scormType="asset">
<file href="staff/1.jpg"/>
<file href="staff/2.jpg"/>
<file href="staff/3.jpg"/>
<file href="staff/4.jpg"/>
<file href="staff/5.jpg"/>
<file href="staff/6.jpg"/>
<file href="staff/7.jpg"/>
<file href="staff/8.jpg"/>
<file href="staff/9.jpg"/>
<file href="staff/10.jpg"/>
<file href="staff/11.jpg"/>
</resource>
<resource identifier="pics" type="webcontent" adlcp:scormType="asset">
<file href="pics/anekdot_bottom.png"/>
<file href="pics/anekdot_bottom_left.png"/>
<file href="pics/anekdot_bottom_right.png"/>
<file href="pics/anekdot_left.png"/>
<file href="pics/anekdot_right.png"/>
<file href="pics/anekdot_top.png"/>
<file href="pics/anekdot_top_left.png"/>
<file href="pics/anekdot_top_left1.png"/>
<file href="pics/anekdot_top_left2.png"/>
<file href="pics/anekdot_top_right.png"/>
<file href="pics/edit.png"/>
<file href="pics/envelope.gif"/>
<file href="pics/envelope1.gif"/>
<file href="pics/exercise_bottom.png"/>
<file href="pics/exercise_bottom_left.png"/>
<file href="pics/exercise_bottom_right.png"/>
<file href="pics/exercise_left.png"/>
<file href="pics/exercise_right.png"/>
<file href="pics/exercise_top.png"/>
<file href="pics/exercise_top_left.png"/>
<file href="pics/exercise_top_left1.png"/>
<file href="pics/exercise_top_left2.png"/>
<file href="pics/exercise_top_right.png"/>
<file href="pics/letter_bottom.png"/>
<file href="pics/letter_bottom_left.png"/>
<file href="pics/letter_bottom_right.png"/>
<file href="pics/letter_left.png"/>
<file href="pics/letter_right.png"/>
<file href="pics/letter_top.png"/>
<file href="pics/letter_top_left.png"/>
<file href="pics/letter_top_left1.png"/>
<file href="pics/letter_top_left12.png"/>
<file href="pics/letter_top_left2.png"/>
<file href="pics/letter_top_right.png"/>
<file href="pics/logo.png"/>
<file href="pics/menu_blue_bottom_left_corner.png"/>
<file href="pics/menu_blue_bottom_right_corner.png"/>
<file href="pics/menu_blue_top_left_corner.png"/>
<file href="pics/menu_blue_top_right_corner.png"/>
<file href="pics/mixanat.gif"/>
<file href="pics/mix_quote_green_bottom.png"/>
<file href="pics/mix_quote_green_bottom_left.png"/>
<file href="pics/mix_quote_green_bottom_right.png"/>
<file href="pics/mix_quote_green_left.png"/>
<file href="pics/mix_quote_green_right.png"/>
<file href="pics/mix_quote_green_top.png"/>
<file href="pics/mix_quote_green_top_left.png"/>
<file href="pics/mix_quote_green_top_right.png"/>
<file href="pics/nabiraem.gif"/>
<file href="pics/quote_green_bottom_left.png"/>
<file href="pics/quote_green_bottom_right.png"/>
<file href="pics/quote_green_top_left.png"/>
<file href="pics/quote_green_top_right.png"/>
<file href="pics/repeat_bottom_left.png"/>
<file href="pics/repeat_bottom_right.png"/>
<file href="pics/repeat_top_left.png"/>
<file href="pics/repeat_top_right.png"/>
<file href="pics/separator.gif"/>
<file href="pics/separator1.gif"/>
<file href="pics/green_border/angle_left.png"/>
<file href="pics/green_border/angle_right.png"/>
<file href="pics/green_border/bottom.png"/>
<file href="pics/green_border/left.png"/>
<file href="pics/green_border/right.png"/>
<file href="pics/green_border/top.png"/>
<file href="pics/image/corner_bottom_left.png"/>
<file href="pics/image/corner_bottom_right.png"/>
<file href="pics/image/corner_top_left.png"/>
<file href="pics/image/corner_top_right.png"/>
<file href="pics/image/image_bottom.png"/>
<file href="pics/image/image_bottom_left.png"/>
<file href="pics/image/image_bottom_right.png"/>
<file href="pics/image/image_left.png"/>
<file href="pics/image/image_right.png"/>
<file href="pics/image/image_top.png"/>
<file href="pics/image/image_top_left.png"/>
<file href="pics/image/image_top_right.png"/>
<file href="pics/line_round/line_round_bottom.png"/>
<file href="pics/line_round/line_round_top.png"/>
</resource>
<resource identifier="js" type="webcontent" adlcp:scormType="asset">
<file href="js/requests.js"/>
<file href="js/StringUtils.js"/>
<file href="js/arrows.js"/>
<file href="js/captions.js"/>
<file href="js/closeRedoButtons.js"/>
<file href="js/common.js"/>
<file href="js/commonHTML.js"/>
<file href="js/convert.js"/>
<file href="js/environment.js"/>
<file href="js/errorCounter.js"/>
<file href="js/exercise.js"/>
<file href="js/fields.js"/>
<file href="js/interface.js"/>
<file href="js/keyboard.js"/>
<file href="js/miksWaiter.js"/>
<file href="js/miksanatik.js"/>
<file href="js/offlineParams.js"/>
<file href="js/panels.js"/>
<file href="js/photoCaptions.js"/>
<file href="js/progressObjects.js"/>
<file href="js/resultPage.js"/>
<file href="js/utils.js"/>
<file href="js/writer.js"/>
<file href="js/scormFunctions.js"/>
<file href="js/scormExchange.js"/>
<file href="js/scormUtils.js"/>
<file href="js/init.js"/>
<file href="js/soloTypeFlash.js "/>
<file href="scormdata/rus/errors.js"/>
<file href="scormdata/rus/exam.js"/>
<file href="scormdata/rus/exercises.js"/>
<file href="scormdata/rus/quotations.js"/>
<file href="scormdata/rus/results.js"/>
<file href="scormdata/rus/speedTest.js"/>
<file href="scormdata/rus/speedTestResults.js"/>
</resource>
</resources>
<imsss:sequencingCollection>
<imsss:sequencing ID="commonSeqRules">
<!-- This course doesn't rollup a score -->
<imsss:rollupRules objectiveMeasureWeight="0"/>
<!-- Set these values to prevent content from accidently being auto-completed/satisfied-->
<imsss:deliveryControls completionSetByContent="true" objectiveSetByContent="true"/>
</imsss:sequencing>
</imsss:sequencingCollection>
<imsss:sequencing>
<imsss:controlMode choice="true" flow="true"/>
</imsss:sequencing>
</manifest>