For non technical documents about SCORM, including overviews written for normal human beings, see SCORM general resources.
On this page:
Click here for non-technical documents about SCORM.
Claude Ostyn, 2006
This eBook is for content developers and managers of
learning content development projects. It contains an
overview of the SCORM, as well as practical examples. The
function and structure of a package manifest are
described. Various aspects of the behavior of a shareable
content object (SCO), and in particular how a SCO
communicates with a runtime environment, are explained
with working examples. Note that although some
instructional design considerations are mentioned, this is
not an instructional design guide but a technical
Draft in progress (100 pages)
(Acrobat PDF, 756KB)
(ZIP file of PDF, 640KB)
Reusable sample script
March 2007 (For SCORM 2004 3rd Edition)
Claude Ostyn, 2007
This eBook is for content developers and instructional
designers. It explains how to take advantage of the
interactions data model specified in SCORM 2004 to support
rich interactive content as well as classic question-based
assessments and simulations. It provides a number of
examples of applications of the interaction types. It
provides a conceptual model of the data model and its uses
for tracking and resume or suspend operations for a SCORM
content object. The document also shows how to combine
interaction objects and SCORM interaction records to
provide advanced behavior such as advanced simulation
performance tracking or confidence based markup.
Draft in progress (28 pages)
(Acrobat PDF, 221KB) January 2007
Claude Ostyn, 2005
This are working notes for part 1 of a multipart document. The other parts are not publicly available yet. The plan for the other parts includes topics such as user interface considerations, client/server implementation considerations, use of XML, and auditing.
Abstract: There are many ways to implement a SCORM 2004
conformant LMS. However a fully functional LMS includes a
number of features that are beyond the scope of SCORM. A
useful way to manage this complexity is to look at a
practical LMS implementation as consisting of several main
functional components, one of which is of course the SCORM
2004 conformant delivery environment.
Read online (HTML, 22K) - last updated Aug 2005
The SCORM API requires that the content use ECMAScript
provided by the LMS. This can of course a problem if the
LMS and the content come from different servers, because
of the "single origin" security rule that is
strictly enforced by browsers to prevent cross-scripting
exploits and vulnerabilities.
This paper presents a straightforward solution to this problem.
Updated June 2006 Read online.
This demonstration shows how content from a remote repository can communicate with the client components of a LMS from another server without violating the browser's cross-platform scripting security rules. Updated July 2006 Interactive online demo.
This document describes setting up an Apache server as a reverse proxy to eliminate the cross-hosting security violation that arises when SCORM content cannot be served from the LMS. Updated May 2006 Read online.
These are mostly for content developers but may also be helpful for LMS developers or managers t o diagnose problems with troublesome content. Some of the downloads below may also be useful to quickly adapt troublesome content that cannot be re-authored.
This wrapper can be used to monitor the communications
between a SCO and a SCORM 2004 runtime environment. It can
also be used as a minimal, standalone runtime environment
for quick testing of SCOs. It consists of a single HTML
file that, when launched, instantiates various windows
including a log window, a stage window in which the SCO
will play, and a small control panel.
Updated January 2007 Interactive online demo, more info and download.
This SCO can be used to inspect and diagnose a SCORM
2004 or SCORM 1.2 runtime environment. It consists of a
single HTML file that, when launched, recognizes whether
it is running in a SCORM environment. It looks first for a
SCORM 2004 API object, and if that fails it looks for a
SCORM 1.2 API object. It also displays information about
the configuration and relationship of the windows that
were inspected by the API discovery algorithm. You can
initialize and terminate a communication session with the
SCORM API and you can exercise the API by trying SetValue
and GetValue with the parameters appropriate for the
version of SCORM that was detected. You can also
"play" batch test scripts that make a predefined
series of API calls and log the results.
Updated March 2007 Interactive online demo, more info and download.
Often, online learning content requires a minimum
display size to provide a good learner experience.
However, SCORM does not currently define any way to
specify that size. POPSCO is a small add-on that can be
used with any SCO to help ensure that the SCO will be
displayed at the desired size, regardless of how various
LMS implementations display SCOs. It requires no
modification to existing SCOs and works with SCORM 1.2 and
SCORM 2004. Primarily for content developers.
Updated September 2006 Interactive online demo, more info and download.
The Easy SCO Adapter for SCORM 1.2 to 2004 allows you
to run any unmodified SCORM 1.2 conformant SCOs in a SCORM
2004 conformant LMS. It is most useful in situations where
modifying or recreating SCOs is not economically feasible.
When you use the adapter, the SCO believes that it is
running in a SCORM 1.2 runtime environment, and the
runtime environment believes that it is running a SCORM
2004 SCO. Unlike the adapter available on the ADL web
site, this adapter is totally invisible to the user and
the SCO is played in the same frame or window in which a
SCORM 2004 environment would display native SCORM 2004
Updated September 2006 More info and download
Sometimes it is desirable to launch a
SCO in a context other than a LMS. Many SCOs, however, are
coded in such a way that they show error messages if no LMS
is present when they are run. The Single SCO Mini-Runtime is
a fully self-contained web page that solves this problem. It
is a self-contained SCORM runtime environment for a single
Updated February 2007 More info and download
A problem with some web based delivery of learning
content is that the learner may close the browser window
or clicks the browser's backspace button without
formally clicking on an Exit button or equivalent. As a
result, the tracking information for the user's
session may not be recorded or may be recorded
incompletely because the SCO does not call the LMSFinish
function in the SCORM interface. Often this problem is not
discovered until the content has been deployed for a while
and real users just close the window when they think they
are finished with the content. This "catcher"
for SCORM 1.2 is a wrapper that can be easily added
without any knowledge of the internals of the SCO, for
cases where fixing the SCO itself is not economically
feasible. It is compatible with most SCOs.
August 2005 Zip file with documentation and wrapper. (63K)
You created a wonderful SCORM conformant SCO. Now you
run it in a LMS. This particular LMS opens a new window
and plays your content object in it. Or it plays your SCO
in a frameset. All is well until the learner reaches the
end of the SCO. But now it just sits there, even though
the learner should no longer be able to do anything with
it. The situation is confusing. How do you solve this
problem? How do you explain it to your client or
September 2006 Read online.
This document suggests some best practices for the use
of Commit in SCORM content.
June 2006 Read online.
SCORM content interoperability depends on the ability
of SCORM content objects to discover a SCORM API instance
provided by the LMS in a related frame of window.
Sometimes the discovery algorithm fails in FireFox because
of an unexpected side effect of the FireFox scripting
security implementation. This can happens if a SCO is
launched in a mixed window or frame environment in which
the discovery algorithm stumbles on a window with content
from another domain. This document describes an improved
API discovery scripting technique that prevents this
problem without compromising functionality or security.
June 2006 Read online.
This web page demonstrates the use of the ISO 8601
duration and date-time (a.k.a. "timestamp")
formats as used in SCORM 2004 and recommended by the IEEE
1484.11.1 standard. It includes dynamic examples so you
can try how different values are represented. It also
explains how to do time related calculations based on ISO
8601 durations or time stamps. Because the number of days
in a month varies, this may lead to loss of precision when
representing durations. Practical workarounds are
demonstrated to avoid this problem. The script of this
page also contains reusable ECMAScript functions to
convert to and from the ISO 8601 format.
SCORM requires communication between Flash ActionScript
this, the flash.external.ExternalInterface (http://livedocs.macromedia.com/flash/8/main/00002200.html#43962).
With older versions of Flash or to work around what seems
to be unresolved issues with this new functionality in
Flash 8, you would typically use fscommand, but fscommand
is not available on all platforms that support SCORM and
Flash. The communication functionality is supported more
a project created and written by Christian Cantrell and
Mike Chambers at Macromedia. In any case, it still seems
the easiest and more reliable approach is to let
and communication session state, and to use Flash only to
do what it does best.
Flash 8 includes two HTML publishing templates to create SCORM conformant SCOs. One for SCORM 1.2 and one for SCORM 2004. Those templates can be a tremendous time saver. If your Flash content is a movie that loads and unloads other movies, you might want to save backup copies of the template files and modify them. Remove the onbeforeunload event handler in the body tag of the template. A spurious onbeforeunload event is triggered in the browser whenever a movie is replaced by another one, and this would cause premature termination of the communication session between your SCO and the SCORM API. In English versions of Flash, the files are in C:\Program Files\Macromedia\Flash 8\en\First Run.
Flash MX 2004 includes a similar template for SCORM 1.2 only.
Get it on the Macromedia Flash Exchange site (http://www.macromedia.com/exchange/flash). This publishing template for Flash MX and SCORM 1.2 allows developers to call SCORM 1.2 'LMS' functions by using fscommands within Flash movies. It corrects a couple of bugs in FS SCORM, V1.2.2 that can also be found on Flash Exchange. An updated version of this template for Flash MX 2004 is included in the Flash MX 2004 package as the "Flash with SCORM Tracking" template (Flash_with_SCORM_Tracking.html).
The multiple XSD files and folders of the sample IEEE
schema for LOM are an unnecessary complication when
packaging and editing metadata in SCORM 2004 packages.
This document describes a simplified LOM XML schema file
that conforms to the IEEE standard and replaces 18 files
in 5 folders. This schema file can be used without
affecting conformance with IEEE or SCORM.
August 2006 Read online and download schema.
List of the XML control document files that must be in
every SCORM package. The ADL SCORM self-test certification
test suite will fail a package that does not include those
January 2007 Read online
www.adlnet.org/scorm is where you can find not only the specifications, but also various resources such as content examples, the conformance test suite, lists of SCORM adopters and certified products, forums and articles.
(Additional links to free SCORM resources will appear here from time to time)
The SCORM 2004 content object communication data model
is based on an IEEE standard: IEEE 1484.11.1-2004. A
companion IEEE standard, 1484.11.3-2005, specifies an XML
schema for that data model. LMS or other application
developers who wish to use XML can use that standard
schema. This document is a brief overview of the standard
and how it relates to the SCORM CMI data model. The
document also discusses applications of the schema for
reporting or for specialized applications.
- Claude Ostyn, July 2006.
View online (HTML)
Interstitial states are required in SCORM 2004
sequencing while the sequencer is determining what to do
next, or when the sequencer does not know what to do
because the user must decide. When such a state occurs,
the runtime environment is forced to display some
arbitrary web content in the stage window where the SCOs
and assets are normally displayed. This leads to a jarring
user experience, which distracts from the learning process
and which may quickly become intolerable if the SCO
granularity is very small. This proposed specification
offers a simple solution. It would allow content creators
to provide optional web pages and prompts congruent with
the rest of the SCORM content package, to be used during
- Claude Ostyn, Draft in progress, for discussion. Please comment. Rev September 19, 2005.
Word document (487K)
Competency collected with SCORM conformant content and
assessment can be useful for content management, but is
usually less than really trustworthy. This paper proposes
a simplified process to distill competency information for
individuals and teams, using simple standard data records
for evidence of competency. It discusses how legacy,
formal assessment and SCORM competency data in various
forms can be preserved as well as "distilled"
for use through a robust, credible process.
- Claude Ostyn, Last updated: 15 March 2005; incorporated into the Competency Data for Automation framework proposal described on the Big Picture page of this site.
PDF document (565K) View online (HTML)
SCORM packages, Reusable Competency Definitions, global
objectives and various digital objects intended for reuse
require globally unique identifiers. Globally unique
identifiers are required to guarantee that when you refer
to something you are not accidentally referring to
something else even when content or other digital objects
from different sources are mixed and matched in the same
application or repository. There are two ways to generate
a globally unique identifier. One is to get one from a
registry, and the other is to generate it by using an
algorithm that guarantees uniqueness to an extremely high
degree of probability.
- Claude Ostyn, Last updated: June 2006 Read online
© 2011 Ostyn Consulting - All rights reserved.