The CAM specification has a long and detailed description of all the possible and required XML tags. But it’s far easier to see what’s actually going on if we take a look at a real example and break it down into its component parts. Note that I’m going to assume you have a basic working knowledge of XML.
I’m going to look at a typical manifest file from one of the test courses that I’ve been using to see if I can identify the key elements. If you want to follow along, I suggest that you open [this link] in your browser.
The basic structure of the manifest file looks like this (omitting all of the attributes for clarity):
The manifest consists of the meta-data, the description of the organizations, and a list of the resources contained in the package.
Let’s look at the <manifest> tag in a little more detail.
- A unique identifier;
- A version number; and
- Definition of a number of XML name spaces that will (may?) be used in the file.
The key one – for my purposes – is the definition of adlcp which I’ll need when I get further into reading the file.
As noted before, I’m going to ignore the <metadata> section. So, moving on quickly, I come to the <organizations> section. Expanding it out it looks like this.
- <title>Browser Options</title>
This is a nice, simple manifest file. There’s only one organization containing only one item which appears (from the information stored in the item element) to be a SCO. I can also see some data elements that I’ll want to read into my “imaginary” LMS:
- <title> – title for my SCO (course) to be displayed to the student
- <adlcp:datafromlms> – launch data for the SCO
- <adlcp:masteryscore> – mastery score to override anything set in the SCO itself
I’m not (currently) supporting any kind of time limit for the SCO (course) since it’s not mandatory, so I can ignore the other elements contained in this manifest file.
Now I’m going to look at the <resources> section.
Looks fairly simple. I have one resource which consists of 5 files. The “adlcp:scormtype” attribute of the <resource> tag specifies that the resource is a SCO (course), and the “href” attribute of the <resource> tag defines the entry point (start file) as ‘Simulation.htm’.
But how is each <resource> linked to its corresponding <item>? Take a look at the “identifierref” attribute in this <item> tag:
This links it to this <resource> tag:
Now that I have a basic grasp of how a simple manifest file is constructed, I’m going to see if I can read and analyse it.