Skip to content

How to Create a Manifest File for your SCORM 1.2 Package?

As discussed in my previous blog along with managing eLearning courses, the training managers also need to track the employees’ progress/status/ scores/progress etc. And to address all these, the courses should be made SCORM compliant that is built in a specific standard way, so that they communicate with any SCORM-conformant LMS and allow tracking.

We have also discussed that creating a manifest file is a Key Steps to Create SCORM content Package. A manifest file is an organized inventory of the SCORM package and is named as imsmanifest.xml. Let us go deeper and understand what are the various mandatory contents needed by a manifest file and how do we create it.


This is the primary element of the xml file and it has many parameters

  • The 1st parameter is the identifier; this is used to make sure that your course does not get mixed up with the other courses if they have similar names.
  • The next parameter is the version, This can just be your course version for example version=”2.0″
  • Then we have a few namespaces that are used to ensure that the node doesn’t clash with each other.
  • Even though it doesn’t really happen, it is better to give it a distinctive/unique identifier, normally the course name along with its date of creation will be sufficient and unique
  • Example:

    <manifest identifier=”MANIFEST-CLI-2014-05-29″
    xsi:schemaLocation=” imscp_rootv1p1p2.xsd imsmd_rootv1p2p1.xsd adlcp_rootv1p2.xsd”>


  • Then we have a node called organizations, here you will just need to make organizations as the default point as we generally have single ones.
    <organizations default=”CLI1″>
  • Then define organization node and make sure that the identifier given is same as that of the default.
    <organization identifier=”CLI1″>


  • You should just give your eLearning course name as the title.
    Example:<title>Course title</title>


  • You have to create an item for each of the modules of your course, if you have more than one. And each item will have 2 parameters that are the identifiers. Both the identifiers should be different but refer to the same item. It’s a bit tricky and one way is to use a different prefix for the identifiers.For example
    <item identifier=”ITEM-INT” identifierref=”REF-INT”>Give module title- <title>Intro</title>Determine the minimum required score to pass that particular module. <adlcp:masteryscore>75</adlcp:masteryscore>Finally close the item node.</item>
  • You can create as many of them depending on the need.
    <item identifier=”ITEM-CHA1″ identifierref=”REF-CHA1″ ><title>Chapter 1</title><adlcp:masteryscore>90</adlcp:masteryscore></item><item identifier=”ITEM-EVA” identifierref=”REF-EVA”> <title>Evaluation</title><adlcp:masteryscore>90</adlcp:masteryscore></item>Then close the organization and organizations nodes.</organization></organizations>


This holds the list of all the files that are required for your eLearning course to play correctly. So you need to open the node for all your resources -<resources>

Create a resource node for all the modules individually.

<resource identifier=”SCO0″ type=”webcontent” adlcp:SCORMtype=”sco” href=”module/sco01_start.html”>


Note that its “identifer” parameter must be exactly the same as the “identifierref” parameter of its corresponding <item> node.

<resource identifier=”SCO0″ type=”webcontent” adlcp:SCORMtype=”sco” href=”module/sco01_start.html”>

Type should always be “webcontent”. The “href” points to the html file that gets launched when the learner logs into the module. The “SCORM Type” of the resource should be defined as “sco” if the mentioned resource is associated to the launching item, otherwise must be defined as the “asset”. The “asset” resources don’t require “href” parameter.

Now onto the resources, they are listed as follows:

<file href=”module/index.html” />
<file href=”module/loaderBox.swf” />
<file href=”js/APIWrapper.js” />
Then close the node.

You should have at least 1 per item so can add based on the need.

<resource identifier=”SCO2″ type=”webcontent” adlcp:SCORMtype=”sco” href=”module2/sco01_start.html”>

<resource identifier=”SCO3″ type=”webcontent” adlcp:SCORMtype=”sco” href=”module3/sco01_start.html”>

Final Step:

You need to finally close the open nodes:</resources></manifest>

Click next and check whether the manifest file produced by the reload editor is the one that we created.

All these parameters play an important role in creating the manifest file but then not all LMSs need all of them. Some LMSs need only a few parameters, others need another combination, for example, some kind of courses doesn’t need “adlcp:masteryscore” parameter because that particular course completion will based on the all slides visited. While others don’t run your course unless you give the “isvisible” parameter on the item. So it is better if you refer to the LMS documentation and make a note of what is required.

I hope you found these points useful. Do share your thoughts!

The State of Learning: 2023 and Beyond