xml.xsd from the w3c, oh dear me

I spent the day today working with the most minute of the SCORM minutiae.

The XML Schema Definition files (XSD) that define the structure of the SCORM manifest aren’t something most people give much thought to. Mostly these files, and their associated XML header, are just copied from some other course. I’ll admit it, that’s what I do.

If you take a closer look though, you’ll find that different people are copying from different sources and that the files they deliver have slight variations. Today I set out to examine these variations in detail and ensure that the versions we have available for download are the most accurate and compatible files available.

I (think I) succeeded, but not without spending the better portion of the day neck deep in XML validators, reference manuals and emails to the don of content packaging, metadata and all things minute in SCORM, Schawn Thropp (many thanks by the way).

To give you an idea of the types of minutiae that need to be resolved:

The imscp_v1p1.xsd file imports the namespace http://www.w3.org/XML/1998/namespace. In some files, the associated schema location is referenced remotely on the W3C servers. In other files, the schema is referenced locally in an xml.xsd file. Apparently both are valid. But, which is the best to offer for download to somebody who just doesn’t want to think about these things?

The remote reference is cleaner and more inline with industry norms. However, if an LMS does strict XML validation on import in an environment where there is no internet connection, the validation could fail. The local reference is a bit ugly and requires 3 extra files to be delivered in every content package, BUT it will always validate properly. Which to choose? In keeping with the spirit of providing completely self-contained PIF files and in order to ensure the broadest possible compatibility, the local reference wins.

Sure, the local reference is uglier, but it’s only the uber-SCORM nerds like me who will ever know. The rest is just copying and pasting.


  • would it be improper to create a subfolder specifically for holding the local XSD files, thereby keeping the root folder clean? i agree that packaging them with the course is the safest route, but it irks me to see so many files in my root. the URIs for the XSDs are specified in the imsmanifest… seems like it would be a simple matter to modify the URIs to point to a subfolder.

  • I agree with Philip, Mike. If there’s no way the XSDs can be consolidated down to one file, then at least all of them in one subfolder might make it more likely to successfully copy-and-paste from one package to another.

    I know it seems ridiculous, but there’s no shortage of examples of copy-and-paste gone horribly wrong.

  • what about claude’s work rolling everything together?

    http://ostyn.com/standards/scorm/samples/simplerlomschemadoc.htm

    seems like a good idea.

  • Jason Haag

    We’ve been using Claude’s example for awhile now. It’s much cleaner!

  • jamil

    Good info. Claude’s example is pretty good too and I have read that. I did find another example before over at http://www.lanw.com, can’t find the exact page link though!