コード例 #1
0
 protected function createQtiManifest($manifestFile, $validate = true)
 {
     //load and validate the manifest
     $qtiManifestParser = new ManifestParser($manifestFile);
     if ($validate) {
         $basePath = common_ext_ExtensionsManager::singleton()->getExtensionById('taoQtiItem')->getDir();
         $qtiManifestParser->validateMultiple(array($basePath . 'model/qti/data/imscp_v1p1.xsd', $basePath . 'model/qti/data/apipv1p0/Core_Level/Package/apipv1p0_imscpv1p2_v1p0.xsd'));
         if (!$qtiManifestParser->isValid()) {
             $eStrs = array();
             foreach ($qtiManifestParser->getErrors() as $libXmlError) {
                 $eStrs[] = __('XML error at line %1$d "%2$s".', $libXmlError['line'], str_replace('[LibXMLError] ', '', trim($libXmlError['message'])));
             }
             // Add sub-report.
             throw new ValidationException($manifestFile, $eStrs);
         }
     }
     return $qtiManifestParser->load();
 }
コード例 #2
0
 protected function createQtiManifest($manifestFile, $validate = true)
 {
     //load and validate the manifest
     $qtiManifestParser = new ManifestParser($manifestFile);
     if ($validate) {
         $qtiManifestParser->validate();
         if (!$qtiManifestParser->isValid()) {
             $eStrs = array();
             foreach ($qtiManifestParser->getErrors() as $libXmlError) {
                 if (isset($libXmlError['line'])) {
                     $error = __('XML error at line %1$d "%2$s".', $libXmlError['line'], str_replace('[LibXMLError] ', '', trim($libXmlError['message'])));
                 } else {
                     $error = __('XML error "%1$s".', str_replace('[LibXMLError] ', '', trim($libXmlError['message'])));
                 }
                 $eStrs[] = $error;
             }
             // Add sub-report.
             throw new ValidationException($manifestFile, $eStrs);
         }
     }
     return $qtiManifestParser->load();
 }