Who publishes SCORM?
The SCORM API reference is the Run-Time Environment (RTE) book, one of a set of specification documents published by ADL, the Advanced Distributed Learning Initiative. SCORM 1.2 has three books: the Overview, the Content Aggregation Model and the Run-Time Environment. SCORM 2004 adds a fourth, Sequencing and Navigation.
ADL is a US Department of Defense initiative, and it wrote SCORM as a reference model rather than a standard invented from nothing. That is what the "RM" in the name stands for. Most of the technical content was adapted from work by other bodies: packaging from IMS, metadata from IEEE, the runtime data model from AICC, and in SCORM 2004 the sequencing rules from IMS Simple Sequencing. ADL's contribution was to pick one way of combining them and to state it precisely enough that a course from one vendor runs in an LMS from another.
The practical consequence is that there is no single file called "the SCORM specification". People searching for SCORM documentation are usually looking for one particular book without knowing which. The rest of this guide is a map.
The books that make up SCORM 1.2
SCORM 1.2 is three documents. Each one answers a different kind of question.
| Book | What it covers | Who reads it |
|---|---|---|
| Overview | The goals of SCORM, the vocabulary, and how the other books relate to each other | Anyone new to the standard |
| Content Aggregation Model (CAM) | What a package is: assets, SCOs, metadata, the zip, and every element of imsmanifest.xml | People who build or debug packages |
| Run-Time Environment (RTE) | What happens after launch: how content finds the LMS, the JavaScript API, the error codes, and the cmi data model | Developers who write or troubleshoot tracking |
The Overview contains no rules you can test against. It is worth one read because it defines the terms the other two books use without explanation, such as asset, SCO and content aggregation.
The CAM is the packaging book. It says that imsmanifest.xml sits at the root of the zip, what the organisations and resources sections must contain, and how a resource is marked as a SCO or as a plain asset. If an LMS rejects a package at import, the rule that was broken is in this book. The walkthrough in imsmanifest.xml explained covers the same ground with a worked manifest.
The RTE is the runtime book. It has three parts: launch (how the LMS starts a SCO and where it puts the API object), the API (the functions a SCO calls), and the data model (the named values those functions read and write).
What SCORM 2004 adds
SCORM 2004 keeps the Overview, the CAM and the RTE, and adds a fourth book: Sequencing and Navigation (SN). SCORM 1.2 has no sequencing book. In practice the content decides what the learner sees next, and the LMS launches whichever item is chosen. SCORM 2004 lets the manifest carry rules, and the SN book defines how an LMS must interpret them.
The SN book covers:
- The activity tree, which is the LMS's working copy of the course structure in the manifest.
- The tracking information the LMS keeps for each activity, and how results roll up from child activities to their parents.
- Sequencing rules, limit conditions and control modes, which decide whether an activity can be reached, skipped or retried.
- Navigation requests such as continue, previous and exit, including the
adl.nav.requestelement a SCO can set to ask the LMS to move on.
The other two technical books also changed. The 2004 CAM adds the XML for writing sequencing rules into the manifest, so a sequencing question often needs both books: the CAM for how a rule is written, the SN book for what it does. The 2004 RTE renames the API functions, moves the API object from API to API_1484_11, and reorganises the data model.
Where the SCORM API reference lives
The API reference is in the RTE book, for both versions. If you are a developer looking for the function signatures, the return values or the error codes, that is the only book you need to open first.
The API is small. Each version has eight functions: five that do the work, and three for error handling.
SCORM 1.2 (object: API) SCORM 2004 (object: API_1484_11)
LMSInitialize("") Initialize("")
LMSGetValue(element) GetValue(element)
LMSSetValue(element, value) SetValue(element, value)
LMSCommit("") Commit("")
LMSFinish("") Terminate("")
LMSGetLastError() GetLastError()
LMSGetErrorString(code) GetErrorString(code)
LMSGetDiagnostic(code) GetDiagnostic(code)
For each function the RTE book states the parameters, what the LMS must return, and which error code applies when a call is made at the wrong time, for example a SetValue before Initialize. The 2004 book also describes the API as a state machine with three states (not initialised, running and terminated), which makes it easier to see which calls are legal at which moment.
The second half of the RTE book is the data model reference, and it is the part most developers return to. Every element is listed with its data type, whether a SCO can read it, write it or both, and the values it accepts. That is where you confirm that cmi.core.lesson_status in 1.2 takes a fixed vocabulary, or that cmi.score.scaled in 2004 must be a number between -1 and 1. The 2004 book also gives a guaranteed minimum size for string elements, which is the figure to check before storing a large amount of state.
The book is a reference, not a tutorial. It does not show a full session from start to finish. For the order the calls are normally made in, and what a healthy exchange looks like, read the SCORM API explained alongside it.
Which book answers which question
Most SCORM questions belong to exactly one book. This table covers the ones that come up most often.
| Your question | Book to open |
|---|---|
| What must be in the zip, and where does the manifest go? | CAM |
| Which attributes does a manifest item or resource need? | CAM |
| How do I mark a resource as a SCO rather than an asset? | CAM |
| How does my content find the LMS API object? | RTE |
| What does a function return, and what does this error code mean? | RTE |
| Is this data model element read-only, and what values does it take? | RTE |
| How large can suspend data be? | RTE |
| How do I write a sequencing rule in the manifest? (2004 only) | CAM |
| Why did the LMS skip, block or repeat an activity? (2004 only) | SN |
| How does a SCO ask the LMS to move to the next activity? (2004 only) | SN |
| What does this term mean? | Overview |
Two things sit outside the books. ADL also published conformance requirements, which restate the rules as a checklist of what an LMS, a package and a SCO must each do, and a test suite that runs those checks. Neither adds new rules. They are the quickest way to find out whether a behaviour is required or merely common.
One limit applies to all of them. The books say what a conformant LMS must do, not what your LMS does. Where the text leaves a choice to the implementer, or where a platform departs from the text, the specification will not tell you. Read the book to learn what should happen, then test in the destination LMS to see what does.
Where SCORM Central fits
SCORM Central turns PowerPoint, PDF, and video files into SCORM 1.2 or SCORM 2004 4th Edition packages you can edit in its course builder, and its free tester shows the manifest checks and every runtime call a package makes before an LMS sees it. See how it works, or test a package free.