From EduTechWiki - Reading time: 9 min
Content packs are a kind of learning object and IMS Content Packaging has the following objectives:
NOTE: IMS Content packaging does not specify any pedagogical recommendations or standards.
Content Packaging is an evolving and extensible standard. Therefore, make sure that you know what version you plan to build / import / export and more importantly what kinds of extensions various profiles adopt !!
IMS Content packaging is a very popular e-learning standard
A Package Interchange File (PIF) is a zip file (recommended, other formats are also allowed):
Here is a picture taken from the IMS Content Packaging Best Practice and Implementation Guide Version 1.1.4 of October 2004 that shows an overview of the Package Interchange File (PIF) architecture:
Firstly, you must understand that IMS CP can be (and is) extended in various ways:
We will use The RELOAD Test Package distributed by Reload to assist learning the Reload Editor and made by Dr. Colin D. Milligan.
The zip file contains all files that are needed to define an older IMS 1.1 Content Package using IMS 1.2.2 Metadata

We slightly altered this example to make it simpler and to use a more recent version of IMS CP and IEEE Metadata. In particular we:

<manifest xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"
xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
identifier="MANIFEST-1"
xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1.xsd
http://www.imsglobal.org/xsd/imsmd_v1p2 imsmd_v1p2p2.xsd">
<!-- ********************* METADATA SECTION *********************** -->
<metadata>
<imsmd:lom>
<imsmd:general>
<imsmd:identifier>metadata-id</imsmd:identifier>
<imsmd:title>
<imsmd:langstring xml:lang="en">Simple IMS 1.1.4 Content Package</imsmd:langstring>
</imsmd:title>
</imsmd:general>
<imsmd:metametadata>
<imsmd:contribute>
<imsmd:role>
<imsmd:source><imsmd:langstring xml:lang="en">LOMv1.0</imsmd:langstring></imsmd:source>
<imsmd:value><imsmd:langstring xml:lang="x-none">Creator</imsmd:langstring></imsmd:value>
</imsmd:role>
<imsmd:centity><imsmd:vcard>Daniel K. Schneider -
adapted from Colin D. Milligan's Reload example</imsmd:vcard></imsmd:centity>
<imsmd:date><imsmd:datetime>december 2006</imsmd:datetime></imsmd:date>
</imsmd:contribute>
</imsmd:metametadata>
<imsmd:technical> <imsmd:format>text/html</imsmd:format> </imsmd:technical>
<imsmd:educational>
<imsmd:interactivitytype>
<imsmd:source>
<imsmd:langstring xml:lang="en">LOMv1.0</imsmd:langstring>
</imsmd:source>
<imsmd:value> <imsmd:langstring xml:lang="x-none">Expositive</imsmd:langstring> </imsmd:value>
</imsmd:interactivitytype>
</imsmd:educational>
<imsmd:rights>
<imsmd:description>
<imsmd:langstring xml:lang="en">This is total freeware.</imsmd:langstring>
</imsmd:description>
</imsmd:rights>
</imsmd:lom>
</metadata>
<!-- ********************* ORGANISATION SECTION *********************** -->
<!-- Note: The orginal examples had 7 elements - mod. by Daniel K. Schneider -->
<organizations default="learning_sequence_1">
<!-- The one learning sequence defined: learner can look at three pictures -->
<organization identifier="learning_sequence_1" structure="hierarchical">
<title>Summer Pictures</title>
<!-- The 3 items of the learning sequence. Each item refers to a single resource -->
<item identifier="ITEM-1" isvisible="true" identifierref="RES-1">
<title>Loch Katrine</title>
</item>
<item identifier="ITEM-2" isvisible="true" identifierref="RES-2">
<title>Ben Ledi</title>
</item>
<item identifier="ITEM-3" isvisible="true" identifierref="RES-3">
<title>Jencks Earthwork</title>
</item>
</organization>
</organizations>
<!-- ********************* RESOURCES SECTION *********************** -->
<resources>
<!-- Each resource refers to a file to be displayed and includes all the dependent resources
that are needed to display this file, including the file itself -->
<resource identifier="RES-1" type="webcontent" href="five.html">
<file href="five.html" />
<file href="supp/reloadhelp.css" />
<file href="supp/reloadeditoricon.gif" />
<file href="supp/trossachs.jpg" />
</resource>
<resource identifier="RES-2" type="webcontent" href="three.html">
<file href="three.html" />
<file href="supp/reloadhelp.css" />
<file href="supp/reloadeditoricon.gif" />
<file href="supp/benledi.jpg" />
</resource>
<resource identifier="RES-3" type="webcontent" href="six.html">
<file href="six.html" />
<file href="supp/reloadhelp.css" />
<file href="supp/reloadeditoricon.gif" />
<file href="supp/jencks.jpg" />
</resource>
</resources>
</manifest>
Namespaces are important constructs of the XML formalism. It allows definition of "languages" like IMS Content Packages that include various other vocabularies. It also allows to let a specification say something like: "Other organizations can extend this and and that by adding their own namespaced elements". This is exactly what SCORM 1.2 does.
Lets have a look at the attributes of the manifest element of aboves simple example
<manifest xmlns="http://www.imsglobal.org/xsd/imscp_v1p1" xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" identifier="MANIFEST-1" xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1.xsd http://www.imsglobal.org/xsd/imsmd_v1p2 imsmd_v1p2p2.xsd">
xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"
means that all non-namespaced elements belong to the IMS Content Packaging 1.1.x vocabulary, e.g. "manifest", "organizations", "organization", "item"
xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2"
means that all elements that are prefixed with imsmd belong to the IMS Metadata specification
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
XMLSchema-instance is a W3C standard that's used to declare [XML Schema]s
xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1
tells the client where to look for the formal definition of vocabularies used (XML Schemas), both a name (the URL) and the name of a file in the content pack are given.
It is important to understand that these can change according to what version of IMS CP you use and of what other vocabularies are included.
Finally, most URLs you may want to click on are broken. These are just unique names for standards. Of course it's bad practice not to provide at least an explanation page like the W3C does (e.g. http://www.w3.org/2001/XMLSchema-instance. DSchneider believes that e-learning people are not open to the web as stable information and communication space (and this is one of the reasons why he isn't very fond of this sub-field of educational technology).
<manifest xmlns="http://www.imsglobal.org/xsd/imscp_v1p1" xmlns:imsmd="http://ltsc.ieee.org/xsd/LOM" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" identifier="MANIFEST-E8613BED-C6E8-2CA6-2EA1-35B20B29FCBD" xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p2.xsd http://ltsc.ieee.org/xsd/LOM lom.xsd http://www.imsglobal.org/xsd/imscp_util imscp_util.xsd">
<manifest identifier="Manifest" version="1.1" xmlns="http://www.imsproject.org/xsd/imscp_rootv1p1p2" xmlns:adlcp="http://www.adlnet.org/xsd/adl_cp_rootv1p1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsproject.org/xsd/imscp_rootv1p1p2 imscp_rootv1p1p2.xsd http://www.imsproject.org/xsd/imsmd_rootv1p2 ims_md_rootv1p1.xsd http://www.adlnet.org/xsd/adl_cp_rootv1p1 adl_cp_rootv1p1.xsd">
(from Rustici sofware)
<manifest identifier="RSSCA"
version="2004"
xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"
xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_v1p3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:lom="http://ltsc.ieee.org/xsd/LOM"
xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1.xsd
http://www.adlnet.org/xsd/adlcp_v1p3 adlcp_v1p3.xsd
http://ltsc.ieee.org/xsd/LOM lom.xsd">
(By DSchneider)
To fix broken IMS XSD schemas you can try this:
x:lang
by
xml:lang
etc.
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="ims_xml.xsd"/>
by
<xsd:import namespace = "http://www.w3.org/XML/1998/namespace" schemaLocation = "http://www.w3.org/2001/xml.xsd"/>
In any case, it is crucial:
Usually a Content Package is imported into a Learning management system, but there are also external players handy for platform independent authoring or even for off-line viewing (e.g. the "reload player"). The IMS specification refers to these systems as Learning technology system (LTS)
In principle (and this is where certain LMS make misleading claims about IMS/Scorm compatibility), most IMS Content Packages are not just displayed. They may contain:
In fall 2005, DKS tried to import IMS Packages found on the Web or made with Reload into some open source systems and was quite dismayed by the result. Sometimes fixing the manifest of badly authored SCORM packages can do the trick (but this is not easy, you may have to replace for example the RTE library).
By december 2006 at least many platforms seem to support SCORM 1.2. The picture regarding IMS simple sequencing (e.g. with SCORM 2004) is not so good and regarding IMS Learning Design the situation is really bad.
See also: Learning management systems.
Content Assemblers:
End-user editors: