/** * Set the QTI $version in use for this document. * * @param string $version A QTI version number e.g. '2.1.1'. * @throws \InvalidArgumentException If $version is unknown regarding existing QTI versions. */ public function setVersion($version) { if (Version::isKnown($version) === true) { $this->version = Version::appendPatchVersion($version); } else { $msg = "Version '{$version}' is not a known QTI version. Known versions are '" . implode(', ', Version::knownVersions()) . "'"; throw new InvalidArgumentException($msg); } }
/** * Get the XML schema to use for a given QTI version. * * @return string A filename pointing at an XML Schema file. */ public static function getSchemaLocation($version = '2.1') { $dS = DIRECTORY_SEPARATOR; $version = Version::appendPatchVersion($version); if ($version === '2.1.0') { $filename = dirname(__FILE__) . $dS . 'schemes' . $dS . 'imsqti_v2p1.xsd'; } elseif ($version === '2.1.1') { $filename = dirname(__FILE__) . $dS . 'schemes' . $dS . 'imsqti_v2p1p1.xsd'; } elseif ($version === '2.2.0') { $filename = dirname(__FILE__) . $dS . 'schemes' . $dS . 'imsqti_v2p2.xsd'; } else { $filename = dirname(__FILE__) . $dS . 'schemes' . $dS . 'imsqti_v2p0.xsd'; } return $filename; }