SCORM入门学习记录
SCORM文档:https://scorm.com/scorm-explained/technical-scorm/
1. SCORM1.2规范
SCORM是”Sharable Content Object Reference Model(可共享课程对象参考模型)”的缩写,是由ADL组织所拟定的标准。已作为全世界通用的标准规格。
SCORM规定一个标准的课件包应满足以下条件:
- 打包成ZIP文件。
- 在XML文件中描述。
- 通过JavaScript进行通信。
- 使用XML中的规则排序。
SCORM由三个子规范组成
- CAM(Content Aggregation Model): 指定应如何打包和描述内容。它主要基于XML。
- Run-Time:指定内容应该如何启动以及它如何与LMS通信。它主要基于ECMAScript(JavaScript)。
- Sequencing:指定学习者如何在课程的各个部分(SCOs)之间导航。它由一组用XML编写的规则和属性定义。
2. LMS的API与DATA MODEL
API地址:https://scorm.com/scorm-explained/technical-scorm/run-time/run-time-reference/#section-2
常用API整理:
LMSInitialize 开始与LMS的通信会话。
LMSFinish 结束与LMS的通信会话。
LMSGetValue 存值
LMSSetValue 取值
LMSCommit 向LMS指示所有数据都应保存
LMSGetLastError 返回上次API调用导致的错误代码。
LMSGetErrorString 返回描述指定错误代码的短字符串。
LMSGetDiagnostic 返回有关上次发生的错误的详细信息。
DATA MODEL:一组定义的数据点,内容和LMS可以通过SCORM API交换.示例数据模型元素包括“cmi.score.scaled”(以记录用户的测试分数)和“cmi.completion_status”以记录学习者何时/是否已经完成一些训练。
常用MODEL整理:
- cmi.core._children - returns “student_id, student_name, lesson_location, credit, lesson_status, entry, score, total_time, exit, session_time”
- cmi.core.student_id
- cmi.core.student_name
- cmi.core.lesson_location - 255 char string typically used for bookmarking
- cmi.core.credit - returns “no-credit” or “credit”
- cmi.core.lesson_status - indicates SCO completion - returns one of the following: “passed”, “completed”, “failed”, “incomplete”, “browsed”, or “not attempted”
- cmi.core.entry - returns “ab-initio”, “resume”, or “”
- cmi.core.score._children - returns “raw, min, max”
- cmi.core.score.raw - the raw score value
- cmi.core.score.max - the maximum possible score - if not set, assumed 100
- cmi.core.score.min - the minimum possible score - if not set, assumed 0
- cmi.core.total_time - returns the sum of all a learner’s session times
- cmi.core.lesson_mode - returns “browse”, “normal”, or “review”
- cmi.suspend_data - 4096 char string usually used for progress data
- cmi.launch_data - 4096 char string used to pass data to the SCO on launch from the LMS
- cmi.objectives._children - returns “id, score, status”
- cmi.objectives._count - returns the number of objectives currently stored for this SCO.
- cmi.objectives.n.id - returns the objective identifier where “n” is the objective number
- cmi.objectives.n.score._children - returns “raw, min, max “
- cmi.objectives.n.score.raw - the raw objective score value
- cmi.objectives.n.score.min - The minimum possible score - if not set, assumed 0
- cmi.objectives.n.score.max - the maximum possible objective score - if not set, assumed 100
- cmi.objectives.n.status - indicates if the learner has completed the objective - returns one of the following: “passed”, “completed”, “failed”, “incomplete”, “browsed”, or “not attempted”
- cmi.core.exit
- cmi.core.session_time
3. imsmanifest.xml
在SCORM 1.2规范中每个课程必须包含一个imsmanifest.xml文件,该文件向LMS描述其结构和其他特征。
清单文件由4个主要部分组成:
- Meta-data:内容包数据描述的入口。
- Organizations:包含了学习资源的组织或内容结构。
- Resources:在内容包中定义的学习资源(集合)。
- SubManifest:嵌套的子清单。
在”imsmanifest.xml”文件中,使用XML标记语言来定义课件包的结构和内容。以下是一些常用的XML标记和元素:
<manifest>
:根元素,定义课件包的基本信息。<metadata>
:元数据元素,用于描述课件包的相关信息,如标题、作者、描述等。<organizations>
:组织元素,用于定义课程的组织结构和章节。<resources>
:资源元素,用于定义课程所需的资源文件,如HTML、CSS、JavaScript等。<item>
:项目元素,用于定义课程的章节和子章节。<file>
:文件元素,用于引用课程所需的资源文件。
下面是一个基础的模板示例:
<manifest identifier="com.scorm.manifesttemplates.scorm12" version="1"
xmlns="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_rootv1p2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.imsproject.org/xsd/imscp_rootv1p1p2 imscp_rootv1p1p2.xsd
http://www.imsglobal.org/xsd/imsmd_rootv1p2p1 imsmd_rootv1p2p1.xsd
http://www.adlnet.org/xsd/adlcp_rootv1p2 adlcp_rootv1p2.xsd">
<metadata>
<schema>ADL SCORM</schema>
<schemaversion>1.2</schemaversion>
</metadata>
<organizations default="B0">
<organization identifier="B0">
<title>演示文件</title>
<item identifier="i1" identifierref="r1">
<title>Title</title>
</item>
</organization>
</organizations>
<resources>
<resource identifier="r1" type="webcontent" adlcp:scormtype="sco" href="index.html">
<file href="index.html" />
</resource>
</resources>
</manifest>
组织结构示例:
有必要特别指出的是以下几点:
- 各节点的“identifier”属性应该唯一;
- “organizations”节点下可以有多个“organization”节点,通过“organizations”的“default”属性指向某一个
- “organization”来决定使用那一种组织结构;
- “organization”下的“item”节点是可以嵌套的,用来实现课程章节的层次关系;
- “item”节点的“identifierref”属性的值为某一个“resource”节点的“identifier”属性的值,使某一章节与课程资源建立对应关系;
- “title”节点里的文本是课程以及章节在平台上的显示文本;
- “resource”节点的“href”属性是课程资源的存储位置。
4. 制作一个SCORM课件
基础示例:
5. SCORM打包流程图
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!