XSLT notes

Developer
Sep 12, 2008 at 2:48 PM
Edited Sep 12, 2008 at 2:56 PM
Ok, the forum doesn't like me very much so I'm only putting in brief comments.
IMS CC is based on IMSCP 1.2
The profile puts some changes in, and the XSLT will move you to the profiled version, NOT the base schema.

Manifests: cannot have submanifests, can have elements from the IMSCCAuth namespace, but none of these will exist in a scorm package, so I am ignoring them.
ManifestMetadata: can only namespace in elements from the 'http://ltsc.iee.org/xsd/imscc/LOM' namespace. I very much doubt that elements from this namespace will be in an existing scorm package.
Organizations: only one organization, no default attribute. I will use the default organization from SCORM for the organisation here.
Resources: looks unchanged

Organization: Only 1 item; structure attribute must be 'structured-hierarchy'
Metadata: can only namespace in elements from the 'http://ltsc.iee.org/xsd/LOM' namespace

Item: fiddly :-) The top level items do not have the identifierref, isvisible or parameters attributes; Title is also banned. They may have nested items, which support a different set of items - which only outlaws isvisible and parameters and allows Title. I think this might be a bug in Ingo's binding :-)

Resource looks unchanged.

The one fiddly in this that I cannot fix in xslt is when SCORM manifests uses the 'adlcp' extensions to indicate metadata files.
Coordinator
Sep 16, 2008 at 7:11 PM
Agreed - that we will use only the default organization in a SCORM package that supports multiple organizations.

Please check the "structured-hierarchy" - I recall (may be wrong) that SCORM uses the <organization/> element as the "root" in the table of contents/activity tree, but common cartridge uses the first child <item/> element. This may be the same as your "Item: fiddly :-)" comment.

Check the processing of the resource element in the XSLT: in SCORM 1.2 we have adlcp:scormtype="sco", but in SCORM 2004 we have adlcp:scormType="sco" (note the all lower case vs camel case). If you are stripping out all adlcp namespaces, then there may be no issue. but if you are searching for the scorm type - then you may need to branch for scormtype (1.2) and scormType (2004)
Coordinator
Sep 17, 2008 at 12:40 PM
When you have a basic XSL transform file available, please add it to the source code - does not matter if it is incomplete. Thanks. There is currently a place holder (that is referenced by the build system) at

[ROOT]/xsl/scorm2cc.xsl

so you could rename your file and then just commit the file as a modified file.
Coordinator
Sep 23, 2008 at 9:18 AM
The XSL file has been added to the source code at:

/xsl/scorm2cc.xslt

Icodeon have made a release (0.0.2.0) and the file is included in the distribution at:

/scorm2cc/scorm2cc.xslt

The distribution contains a number of sample SCORM packages to test against in the distribution at:

/scorm/scorm_1p2_asset.zip
/scorm/scorm_1p2_sco.zip
/scorm/scorm_2004_asset.zip
/scorm/scorm_2004_sco.zip

To run the SCORM2CC tool against these packages, use:

s2cc /in:scorm /xsl:scorm2cc/scorm2cc.xslt /out:cc /log:debug

(or just double click the "run.bat" file)

The Common Cartridge packages are output to the directory at:

/cc

with the same package names.

NOTE: With the current scorm2cc.xslt file, only the SCORM 1.2 packages have the manifest transformed. The SCORM 2004 packages have a empy XML file as the result of the transform: