SCORM Extensions to IMS
27 Jan 2004
Introduction
The following lists SCORM extensions to the content packaging,
metadata, and simple sequencing IMS specifications. In addition,
it also provides brief notes on the "adlnav" schema.
There is a list of extensions for each IMS spec. The structure
of the list is to first note where in the IMS spec an element or
attribute has been added by SCORM. The path to the IMS element is
given using quasi-XPath notation.
Then, the new element/attribute is using a namspace:name
notation. Following that is a brief set of notes that describes what the extension is an how it is intended to be used.
In some cases, I have explicitly noted that there is no extension at
a certain point in the IMS schema by listing the extension as
"none". This is avoid the implicit question, "well, aren't there
any extensions here?".
Here are links to the major parts of the document:
Content Packaging
The following lists the extensions to content packaging.
- manifest
- manifest/metadata
- adlcp:location
- element.
- optional; at most one.
- no attributes.
- content specifies an external file for the metadata.
- manifest/organizations
- manifest/organizations/organization
- adlcp:objectivesGlobalToSystem
- attribute of organization element.
- optional; at most one.
- defaults to "true".
- indicates that any SS global shared objective is either
global to the learner and content package (false), or global for the
lifetime of the learner within the LMS across all content packages
(true).
- manifest/organizations/organization/item
- adlcp:timeLimitAction
- element
- optional; at most 1.
- no attributes.
- action to take when the max time allowed on the current attempt is exceeded.
- can only be a child of a leaf item.
- the item must ultimately reference a SCO (not a SCA).
- the SCO has the time limit information.
- this defines what to do if the SCO's time limit is exceeded, and is limited to "nothing", if the timeLimitAction element is absent, "exit", or "continue". Exit and continue can optionally provide user feedback.
- possible content:
- exit,message
- exit,no-message
- continue,message
- continue,no-message.
- adlcp:dataFromLMS
- element
- optional, at most 1.
- no attributes.
- allows sending item initialization data to referenced resource (ultimately, the SCO) via the LMS.
- content is a string -- this is the initialization data to send.
- adlcp:persistState
- element of item
- optional; at most one.
- content is "true" or "false".
- a directive to find and use any stored state information about this item from the RTE.
- adlnav:presentation
- element
- optional; at most one.
- no attributes.
- container for presentation info.
- content limited to adlnav:navigationInterface
- element
- optional; at most one.
- no attributes.
- container for navigation interface modifications.
- content limited to adlnav:hideLMSUI
- element
- optional; any number can be added.
- purpose to hide various UI widgets and thereby restrict navigation.
- content is one of (use multiple adlnav:hideLMSUI elements to specify more than one of these.
- previous - hide "previous button".
- continue - hide "next button".
- exit - hide "exit button".
- abandon - hide "abandon button" ("quit button"?).
- These hide directives are valid only when a child activity is the current activity.
- manifest/organizations/organization/item/metadata
- adlcp:location
- element.
- optional; at most one.
- no attributes.
- content specifies an external file for the metadata.
- manifest/resources
- manifest/resources/resource
- adlcp:scormType
- whether the resource references a SCO or a SCA.
- values: sco or asset.
- manifest/resources/resource/metadata
- adlcp:location
- element.
- optional; at most one.
- no attributes.
- content specifies an external file for the metadata.
- manifest/resources/resource/file
- manifest/resources/resource/file/metadata
- adlcp:location
- element.
- optional; at most one.
- no attributes.
- content specifies an external file for the metadata.
- manifest/resources/resource/dependency
Types of CP
In addition to the new elements/attributes, ADL defines two kinds of
CP, namely, a "resource" package, and a "content aggregation" package.
- Resource package
- must have an organizations element, but nothing within it.
- has a "normal" resources section.
- must not contain an imsss:sequencingCollection element.
- purpose is to unify a set of learning objects (SCO's and/or
SCA's) by putting them into a single object. That is, a way of
defining an aggregate learning object, without defining an ordering of
its pieces.
- Content Aggregation package.
- "normal" CP.
- has an optional imsss:sequencingCollection element.
back to top
Metadata
There are no extensions in terms of elements or attributes.
Like CanCore, there are recommendations for the vocabulary to use for different metadata elements.
More interesting is the idea that different types of SCORM object
require different kinds of metadata. Thus, there is a different
metadata profiile for:
- Resource packages (recall that these are CP's with only a resources section -- see above).
- Content aggregation packages.
- Activity (item).
- SCO (dynamic learning objects that interact with an LMS)
- SCA (static learning objects that are merely presented by an LMS)
The profiles differ in terms of which metadata elements are
mandatory, the vocabulary for specific metadata elements, and the best
practices recommendations. There are too many details to list
here. Read SCORM_v1p3_WD1_CAM.pdf
starting at Section 4.5 (it's page 182 using Acrobat).
Note that this is different from the current implementation in
TILE. We use a "minimal requirements" schema for meta-data, and
that minimal requirement applies to anything that has metadata.
Beyond the minimal requirement, we have specific metadata fields for
different types of resources where it "makes sense". For example,
a video has metadata about its duration, but an image doesn't.
Also, we use the profiile defined by the CanCore recommendations, and
their vocabulary.
Finally, we require metadata for resources, files, and content packages (manifests), but not for items. SCORM does have a profile for items (they call items "activities").
back to top
Simple Sequencing
- sequencing
- adlseq:constrainedChoiceConsideration
- element
- optional; at most one.
- no content.
- used to restrict choice SS elements.
- note: choice, by itself, means the user has full control over their navigation.
- adlseq:preventActivation
- attribute
- optional; at most one.
- values: true or false
- if true, don't allow navigation to child activities unless their parent activity is the current activity.
- adlseq:constrainChoice
- attribute
- optional; at most one.
- values: true or false
- if true, only activities that are logically "next" can be chosen.
- adlseq:rollupConsideration
- element
- optional; at most one
- no content.
- used to describe when an activity should be part of a rollup.
- has these optional attributes:
- requiredForSatisfied
- requiredForNotSatisfied
- requiredForCompleted
- requiredForIncomplete
- measureSatsifactionIfActive
- each attribute has one of these values that define if the activity is included in a rollup rule:
- always
- ifAttempted
- ifNotSkipped
- ifNotSuspended
back to top
ADL Nav Schema
This is simply a repeat of elements/attributes that were noted above, but all in one place.
- presentation
- element.
- no attributes.
- content is zero or 1 navigation elements.
- navigation
- element.
- no attributes.
- contents is zero of more hideLMSUI elements.
- hideLMSUI
- element.
- no attributes.
- content is one of (use multiple hideLMSUI elements to specify more than one of these.
- previous - hide "previous button".
- continue - hide "next button".
- exit - hide "exit button".
- abandon - hide "abandon button" ("quit button"?).
- These hide directives are valid only when a child activity is the current activity.
- Puzzle: how can a child activity be the current
activity? Or, do they mean, if the current activity is a child
activity? But...almost every activity (item) is a child of some
parent item. In fact, their example shows these directives
associated with a top-level item that does not have a parent
item. Or do they mean, when the child activity is a leaf (has no
children)?
back to top
Last modified January 30, 2004 by Joseph Scheuhammer