Desire2Learn Community Newsletter   Volume 3, Issue 1, Quarter 1 2007
Tips and Tricks

FUSION 2007

A Novel Idea

Tips and Tricks

Sharing the SCORM Experience

New and Improved

In Person

What's New?

Who's New?

What's on The Horizon


Creating an IMS Course Package - A step-by-step look at the process

By Rafi Syed
Content Conversion Specialist
Desire2Learn

Rafi Syed
Rafi Syed
Desire2Learn Content Conversion Specialist

The IMS Global Learning Consortium is a non-profit organization that promotes innovation, research, and interoperability between Learning Management Systems. The IMS standards allow a course creator to define modules and topics, discussion forums, quizzes and questions and many other features of a course. A course package that is based on the IMS specifications will have a similar structure and appearance when it is imported into an IMS-compliant learning environment such as Desire2Learn.

There are two main IMS standards. The IMS CP specification defines a Course Package while the IMS QTI (Quiz/Test Interoperability) standard defines 6 main types of questions: Long Answer, Short Answer, Multiple Choice, Multi-Select, Matching and True or False.

To be considered an “IMS-Compliant” course package, the zipped folder must include an xml document entitled "imsmanifest.xml" at the root of the folder. This imsmanifest file describes the course structure and links content topics and modules with their respective files. The package also contains all of the associated resources which can include web pages, images, movies, Flash and Shockwave objects and any other files that are supported by the LMS as valid course content.

The following example shows how to create an imsmanifest for a simple course. We assume the content files have already been created and are ready to be packaged.

1. List the course files

Online courses can be created using a variety of formats that range from simple HTML files to multimedia such as Flash objects. In this example, assume the content files are called Topic1.html, Topic2.html and Topic3.html.

To begin, make a list of the content files in the order they are to appear in the course

Step 1
Topic1.html
Topic2.html
Topic3.html
2. Listing Topics

Above the list of course files, list the corresponding content topics as they would appear in the course.

Step 2
The Beginning
The Middle
The End
 
Topic1.html
Topic2.html
Topic3.html
3. Adding Titles

Now add <title> tags to each of the content topics in the first list.

Step 3
<title>The Beginning</title>
<title>The Middle</title>
<title>The End</title>
 
Topic1.html
Topic2.html
Topic3.html
4. Adding Items

In the manifest, the content topics are equivalent to items.

The item element has the following attributes:

identifier: a unique name that identifies the Item, e.g. ITEM1
identifierref: the name of an associated resource e.g. RESOURCE1
isVisible: an optional value for whether the item is visible in Content. By default this value is True.

Step 4
<item identifier="ITEM1" identifierref="RESOURCE1" isvisible="true">
      <title>The Beginning</title>
</item>
<item identifier="ITEM2" identifierref="RESOURCE1" isvisible="true">
      <title>The Middle</title>
</item>
<item identifier="ITEM3" identifierref="RESOURCE1" isvisible="true">
      <title>The End</title>
</item>
 
Topic1.html
Topic2.html
Topic3.html
5. Adding Modules

Modules are defined in the same manner as Topics by using the item and title elements, except modules do not have an identifierref attribute to a resource.

In Desire2Learn, content topics must be under at least one parent module. If there are no modules defined in the manifest, the topics are automatically placed under separate modules by the import process.

Step 5
<item identifier="MODULE_1" isvisible="true">
     <title>Module 1</title>
     <item identifier="ITEM1" identifierref="RESOURCE1" isvisible="true">
          <title>The Beginning</title>
     </item>
     <item identifier="ITEM2" identifierref="RESOURCE2" isvisible="true">
          <title>The Middle</title>
     </item>
     <item identifier="ITEM3" identifierref="RESOURCE3" isvisible="true">
          <title>The End</title>
     <item>
</item>
 
Topic1.html
Topic2.html
Topic3.html
6. Adding Organization

The organization element is used to group certain items together within the manifest. For example, this element can be used to separate content items from dropbox items.

Organizations and other container elements are internal to the manifest file and are required by the IMS specifications. They are not used by the import process to create visible components in the actual course. A unique identifier (name) is normally required to differentiate each organization element. This identifier is any non-empty string up to 256 characters that is not already in use elsewhere in the manifest.

Since a manifest can include more than one organization element, a parent Organizations container is used to group them together. Only one Organizations element is allowed within a manifest. This Organizations element includes an attribute called "default" which has a similar function as that of an identifier. It can be any unique non-empty string up to 256 characters.

<organizations default="a_unique_string"> : a container for organization elements
<organization identifier="a_unique_string">  : a container for item elements

Step 6
<organizations default="d2l_orgs">
     <organization identifier="d2l_org">
          <item identifier="MODULE_1" isvisible="true">
               <title>Module 1</title>
               <item identifier="ITEM1" identifierref="RESOURCE1" isvisible="true">
                   <title>The Beginning</title>
               </item>
               <item identifier="ITEM2" identifierref="RESOURCE2" isvisible="true">
                    <title>The Middle</title>
               </item>
               <item identifier="ITEM3" identifierref="RESOURCE3" isvisible="true">
                    <title>The End</title>
               <item>
          </item>
     </organization>
</organizations>
 
Topic1.html
Topic2.html
Topic3.html
7. Adding Resources

A resource is an element that references HTML, PDF, Word Docs or other course files that are included in the package. In Desire2Learn, a content topic is a link to a file stored in the course directory. These resources, when imported, are the actual course files.

The resource element has 3 attributes:

identifier: a unique name that identifies the resource (up to 256 characters).
type: refers to the type of resource. For D2L course packages, this value is always "webcontent"
href: the location of the actual resource file within the package, in relation to the manifest file, i.e. href="filename.html"

Recall: a Content Topic is an <item> in the manifest. It references a <resource> using the identifierref attribute.
The identifierref of the item matches the identifier of the resource.

All resource elements are contained within a parent <resources> element, similar to the <organizations> element.

Step 7
<organizations default="d2l_orgs">
     <organization identifier="d2l_org">
          <item identifier="MODULE_1" isvisible="true">
               <title>Module 1</title>
               <item identifier="ITEM1" identifierref="RESOURCE1" isvisible="true">
                    <title>The Beginning</title>
               </item>
               <item identifier="ITEM2" identifierref="RESOURCE2" isvisible="true">
                    <title>The Middle</title>
               </item>
               <item identifier="ITEM3" identifierref="RESOURCE3" isvisible="true">
                    <title>The End</title>
               <item>
          </item>
     </organization>
</organizations>
 
<resources>
    <resource identifier="RESOURCE1" type="webcontent" href="Topic1.html" />
    <resource identifier="RESOURCE2" type="webcontent" href="Topic1.html" />
    <resource identifier="RESOURCE3" type="webcontent" href="Topic1.html" />
</resources>
8. Defining the Manifest

The final step is to define the file as a valid IMS manifest.

The first line of the manifest identifies the file as an XML document. It lists the version of XML used, and the encoding format for the characters (in this case, Unicode 8-bit). This information tells the Learning Management System how to read the manifest file during the import process:

<?xml version="1.0" encoding="UTF-8" ?>

The outermost container is the manifest element which encloses all other elements. This tag is always the second and last lines of the imsmanifest, as shown in the example below.

Attributes:

identifier: a unique non-empty string that indicates the name of the manifest
xmlns = http://www.imsglobal.org/xsd/imscp_v1p1: a reference to the IMS namespace
xmlns:d2l_2p0 = http://desire2learn.com/xsd/d2lcp_v2p0: a reference to the D2L namespace

Step 8
<?xml version="1.0" encoding="UTF-8" ?>
     <manifest identifier="IMS_Course_Package"
       xmlns="http://www.imsglobal.org/xsd/imscp_v1p1">
       xmlns:d2l_2p0="http://desire2learn.com/xsd/d2lcp_v2p0">
     <organizations default="d2l_orgs">
          <organization identifier="d2l_org">
               <item identifier="MODULE_1" isvisible="true">
                    <title>Module 1</title>
                    <item identifier="ITEM1" identifierref="RESOURCE1" isvisible="true">
                         <title>The Beginning</title>
                    </item>
                    <item identifier="ITEM2" identifierref="RESOURCE2" isvisible="true">
                         <title>The Middle</title>
                    </item>
                    <item identifier="ITEM3" identifierref="RESOURCE3" isvisible="true">
                         <title>The End</title>
                    <item>
               </item>
          </organization>
</organizations>
 
     <resources>
          <resource identifier="RESOURCE1" type="webcontent" href="Topic1.html" />
          <resource identifier="RESOURCE2" type="webcontent" href="Topic1.html" />
          <resource identifier="RESOURCE3" type="webcontent" href="Topic1.html" />
     </resources>
</manifest>
9. Creating a zipped package

This completes the manifest file which tells the import tool what files are included in the package and where to place them when imported into the Learning Management System.

Final steps:
1. Save this file as imsmanifest.xml
2. Create a new folder and save the imsmanifest at the root, and include all of the linked resource files.
3. Compress the package as a zipped file, by right clicking and selecting Send to: Compressed (zipped) folder.
4. This is now an IMS-Compliant course package that can be imported into Desire2Learn.

Example:
zipped folder


Download example course package

 

This article is intended to provide a general understanding of the basic XML elements used in the IMS course package specifications.

For further information or help with troubleshooting packages, please contact Content@Desire2Learn.com

 


< previous next >
If you would like to continue to receive the Community Newsletter, please subscribe by clicking here
Desire2Learn Community | Contact | Desire2Learn website

© Desire2Learn Inc.
200-305 King St. W., Kitchener, ON N2G 1B9