Missing files the manifest promised, items pointing at resources that do not exist, no launchable SCO, repeated identifiers, broken dependencies. Every rule here checks something an LMS will object to or that produces a course which imports and then misbehaves. Read on your computer and never uploaded.
Free · No account · Your files never upload
The zip your authoring tool produced. It is read on your computer and never uploaded.
Opens the package, reads the manifest properly, and checks it against the files that are actually inside. Missing files, items pointing at resources that do not exist, no launchable SCO, repeated identifiers, dependencies that go nowhere, a default organization that was never defined.
It reports nothing cosmetic. A validator that lists twenty style warnings alongside the one real fault is worse than no validator at all, because the real fault gets scrolled past. Every rule here corresponds to something an LMS will object to, or to something that imports cleanly and then behaves oddly.
Items nest inside other items, resources can carry their own base path, and filenames arrive percent-encoded. A regular expression gets all three of those wrong in ways that produce confident nonsense: a parent item taking its child’s title, a file reported missing because its path was never resolved, an image reported missing because its name contains a space.
Passing this does not guarantee your LMS will accept the package. Platforms differ in what they enforce, and a few reject things the specification permits. What it does guarantee is that the manifest and the files agree with each other, which is where the great majority of import failures actually come from.