Skip to main content

QTI Package Validator

Check a QTI content package before you deliver it or import it anywhere.

Your content stays yours

  • Your package is used only to produce the report shown on this page. It is not imported, indexed, shared or reused, and nobody here looks at it.
  • The uploaded file is deleted as soon as validation finishes, whether or not the package is valid. It is never unpacked into storage.
  • The report is deleted the moment it is shown to you. If it is never shown - you close this page early, say - it is deleted within the hour anyway.
  • No copy is kept. Reloading or closing this page loses the report, so use Save report if you want to keep it.
What is checked
  • The package follows the specification its imsmanifest.xml declares, in its schema and schemaversion metadata: QTI 3.0.1, 3.0.0, 2.2 or 2.1, or APIP 1.0. The manifest is validated first, then every XML document in the package - XML Schema and Schematron - against that specification's published schema for the document's kind. A package that declares no supported specification, or a document that is not content of the one declared, is reported, not validated some other way. What a document's xsi:schemaLocation says is ignored.
  • QTI and APIP content is also checked against refinement rules: rules the QTI information model states but its published schemas do not enforce, such as which elements may appear inside others.
  • Every file in the package is listed in imsmanifest.xml, and every file the manifest lists is in the package.
  • Every file an item, stimulus, test or section refers to - images, media, stylesheets, portable custom interaction modules, other items - belongs to that resource, or to a resource it declares a dependency on.
  • Metadata recorded in the manifest is valid against its own schema.

QTI 2.0 has no supported specification or schema, so a QTI 2.0 package cannot be validated.