Browse Source

Refactoring: move main/newscorm/ to main/lp/ and related folders (except code for migration from 1.9 and 1.10)

Yannick Warnier 8 years ago
parent
commit
21e47bca07
100 changed files with 3364 additions and 3314 deletions
  1. 3 1
      .htaccess
  2. 1 1
      app/Resources/public/css/scorm.css
  3. 1 1
      composer.json
  4. 42 0
      documentation/changelog.html
  5. 2 0
      documentation/installation_guide.html
  6. 2 0
      documentation/installation_guide_es_ES.html
  7. 2 0
      documentation/installation_guide_fr_FR.html
  8. 2 2
      main/course_home/course_home.php
  9. 1 1
      main/exercise/exercise_admin.php
  10. 1 1
      main/exercise/exercise_result.php
  11. 1 1
      main/exercise/exercise_show.php
  12. 1 1
      main/exercise/exercise_submit_modal.php
  13. 2 2
      main/exercise/export/scorm/scorm_classes.php
  14. 1 1
      main/exercise/upload_exercise.php
  15. 1 1
      main/forum/index.php
  16. 1 1
      main/gamification/my_progress.php
  17. 2 2
      main/gradebook/exercise_jump.php
  18. 1 1
      main/gradebook/lib/be/learnpathlink.class.php
  19. 3 3
      main/inc/ajax/course_home.ajax.php
  20. 1 1
      main/inc/lib/add_course.lib.inc.php
  21. 2 2
      main/inc/lib/api.lib.php
  22. 1 1
      main/inc/lib/document.lib.php
  23. 1 1
      main/inc/lib/exercise.lib.php
  24. 1 1
      main/inc/lib/search/tool_processors/learnpath_processor.class.php
  25. 2 2
      main/inc/lib/tracking.lib.php
  26. 0 0
      main/lp/README.txt
  27. 0 0
      main/lp/aicc.class.php
  28. 0 0
      main/lp/aiccBlock.class.php
  29. 0 0
      main/lp/aiccItem.class.php
  30. 0 0
      main/lp/aiccObjective.class.php
  31. 0 0
      main/lp/aiccResource.class.php
  32. 1 1
      main/lp/aicc_api.php
  33. 0 0
      main/lp/aicc_hacp.php
  34. 0 0
      main/lp/audiorecorder.inc.php
  35. 0 0
      main/lp/blank.php
  36. 0 0
      main/lp/content_makers.inc.php
  37. 0 0
      main/lp/display_audiorecorder.php
  38. 0 0
      main/lp/download.php
  39. 0 0
      main/lp/embed.php
  40. 0 0
      main/lp/final_item_template/template.html
  41. 0 0
      main/lp/index.php
  42. 0 0
      main/lp/js/HOWTO-storageapi
  43. 0 0
      main/lp/js/api_wrapper.js
  44. 0 0
      main/lp/js/documentapi.js
  45. 0 0
      main/lp/js/storageapi.js
  46. 9 9
      main/lp/learnpath.class.php
  47. 0 0
      main/lp/learnpathItem.class.php
  48. 1 1
      main/lp/learnpathList.class.php
  49. 0 0
      main/lp/learnpath_functions.inc.php
  50. 1 1
      main/lp/lp_add.php
  51. 1 1
      main/lp/lp_add_audio.php
  52. 0 0
      main/lp/lp_add_category.php
  53. 0 0
      main/lp/lp_add_item.php
  54. 0 0
      main/lp/lp_admin_view.php
  55. 0 0
      main/lp/lp_ajax_initialize.php
  56. 0 0
      main/lp/lp_ajax_save_item.php
  57. 0 0
      main/lp/lp_ajax_save_objectives.php
  58. 0 0
      main/lp/lp_ajax_start_timer.php
  59. 0 0
      main/lp/lp_ajax_switch_item.php
  60. 0 0
      main/lp/lp_ajax_switch_item_toc.php
  61. 0 0
      main/lp/lp_build.php
  62. 1 1
      main/lp/lp_content.php
  63. 0 0
      main/lp/lp_controller.php
  64. 0 0
      main/lp/lp_edit.php
  65. 0 0
      main/lp/lp_edit_item.php
  66. 0 0
      main/lp/lp_edit_item_prereq.php
  67. 0 0
      main/lp/lp_final_item.php
  68. 0 0
      main/lp/lp_impress.php
  69. 1 1
      main/lp/lp_list.php
  70. 0 0
      main/lp/lp_list_search.css
  71. 1 1
      main/lp/lp_list_search.php
  72. 0 0
      main/lp/lp_move_item.php
  73. 0 0
      main/lp/lp_nav.php
  74. 2 2
      main/lp/lp_report.php
  75. 0 0
      main/lp/lp_save.php
  76. 0 0
      main/lp/lp_stats.php
  77. 0 0
      main/lp/lp_subscribe_users.php
  78. 0 0
      main/lp/lp_subscribe_users_to_category.php
  79. 0 0
      main/lp/lp_upload.php
  80. 0 0
      main/lp/lp_view.lib.js
  81. 2 2
      main/lp/lp_view.php
  82. 1 1
      main/lp/lp_view_item.php
  83. 0 0
      main/lp/openoffice_document.class.php
  84. 0 0
      main/lp/openoffice_presentation.class.php
  85. 0 0
      main/lp/openoffice_text.class.php
  86. 0 0
      main/lp/openoffice_text_document.class.php
  87. 109 109
      main/lp/packaging/adlcp_rootv1p2.xsd
  88. 2210 2210
      main/lp/packaging/ims_qtiasiv1p2.xsd
  89. 24 24
      main/lp/packaging/ims_xml.xsd
  90. 345 345
      main/lp/packaging/imscp_rootv1p1p2.xsd
  91. 573 573
      main/lp/packaging/imsmd_rootv1p2p1.xsd
  92. 0 0
      main/lp/packaging/xml.xsd
  93. 2 2
      main/lp/resourcelinker.inc.php
  94. 2 2
      main/lp/resourcelinker.php
  95. 0 0
      main/lp/scorm.class.php
  96. 0 0
      main/lp/scormItem.class.php
  97. 0 0
      main/lp/scormMetadata.class.php
  98. 0 0
      main/lp/scormOrganization.class.php
  99. 0 0
      main/lp/scormResource.class.php
  100. 0 0
      main/lp/scorm_api.php

+ 3 - 1
.htaccess

@@ -47,4 +47,6 @@ RewriteRule ^skill/(\d{1,})/user/(\d{1,}) main/badge/issued_all.php?skill=$1&use
 RewriteRule ^badge/(\d{1,})/user/(\d{1,}) main/badge/issued_all.php?skill=$1&user=$2 [L]
 
 # Support old URLs using the exercice (with a c) folder rather than exercise
-RewriteRule ^main/exercice/(.*)$ main/exercise/$1 [QSA,L]
+RewriteRule ^main/exercice/(.*)$ main/exercise/$1 [QSA,L]
+# Support old URLs using the newscorm folder rather than lp
+RewriteRule ^main/newscorm/(.*)$ main/lp/$1 [QSA,L]

+ 1 - 1
app/Resources/public/css/scorm.css

@@ -109,7 +109,7 @@ See https://support.chamilo.org/issues/6976
 }
 
 .inner_lp_toc .scorm_item_section .scorm_item:before {
-    content : url('../../main/img/lp_section.png');  /* path from main/newscorm/lp_controller.php file */
+    content : url('../../main/img/lp_section.png');  /* path from main/lp/lp_controller.php file */
     vertical-align: text-top;
     margin-right : 5px;
 }

+ 1 - 1
composer.json

@@ -24,7 +24,7 @@
             "main/dropbox",
             "main/exercise",
             "main/gradebook/lib",
-            "main/newscorm",
+            "main/lp",
             "main/inc/lib",
             "plugin",
             "main/install",

+ 42 - 0
documentation/changelog.html

@@ -47,6 +47,48 @@
 <p><i>Note: most #wxyz references are issue numbers you can find in <a href="http://support.chamilo.org/projects/chamilo-18/issues" target="_blank">our public bug tracking system</a>. Some references marked BT#xyz are developments made externally for BeezNest customers and integrated into Chamilo. The details of these tasks cannot be seen for confidentiality reasons, but the code change is public and can be reviewed by anyone.</i></p>
 <p>&nbsp;</p>
 
+    <a name="1.11.0"></a>
+
+    <h1>Chamilo 1.11.0 - tobenamed, xxth of July 2016</h1>
+    <h3>Release notes - summary</h3>
+    <p>Chamilo 1.11.0 is a major release of the 1.11.x branch. It is meant as a transition between 1.10 and 2.0 versions.</p>
+    <h3>Release name</h3>
+    <p><a href="http://www.openstreetmap.org/#map="></a> </p>
+    <h3>Security fixes</h3>
+    <p>None in this version.</p>
+    <h3>Possibly breaking changes</h3>
+    <p>None in this version.</p>
+    <h3>Notable new Features</h3>
+    <h4>For end-users, teachers and Chamilo admins</h4>
+    <ul>
+    </ul>
+    <h4>For developers and sysadmins</h4>
+    <ul>
+    </ul>
+    <h3>Stylesheets and theming</h3>
+    <ul>
+    </ul>
+    <h3>Files structure</h3>
+    <ul>
+        <li>The main/exercice/ folder has been renamed main/exercise/</li>
+        <li>The main/newscorm/ folder has been renamed main/lp/ (for Learning Path)</li>
+    </ul>
+    <h3>Web services</h3>
+    <ul>
+    </ul>
+    <h3>Removals</h3>
+    <ul>
+    </ul>
+    <h3>Known issues</h3>
+    <ul>
+        <li>IMS/QTI import/export has issues</li>
+        <li>In Internet Explorer 9, learning paths might not show other pages than the first to be opened. We lacked computers with IE9 at the time of release of 1.10.4. Guaranteeing IE9 support will likely require additional services. See <a href="https://support.chamilo.org/issues/8075">the corresponding bug report</a></li>
+        <li>The text-to-speech converter based on Google now requires an API key</li>
+        <li>The Xapian search module is broken. We'll fix that soon, but not a lot of people use it</li>
+        <li>Encoding issues when importing accentuated characters from MS-Office-generated .xlsx files (for example when importing exercises). This isn't really a Chamilo issue, but since some users might have issues with that, we've decided to report it to avoid any surprise.</li>
+    </ul>
+
+
     <a name="1.10.6"></a>
 
     <h1>Chamilo 1.10.6 - Zacatecas, 24th of May 2016</h1>

+ 2 - 0
documentation/installation_guide.html

@@ -681,6 +681,7 @@ If you have issues with files taking a long time to download, make sure you reco
 	RewriteRule ^session/(\d{1,})/about/?$ main/session/about.php?session_id=$1 [L]
     RewriteRule ^badge/(\d{1,})/user/(\d{1,}) main/badge/issued.php?skill=$1&user=$2 [L]
     RewriteRule ^main/exercice/(.+)$ main/exercise/$1 [QSA,L]
+    RewriteRule ^main/newscorm/(.*)$ main/lp/$1 [QSA,L]
   &lt;/Directory&gt;
     </pre>
     <h3>Nginx</h3>
@@ -720,6 +721,7 @@ If you have issues with files taking a long time to download, make sure you reco
     rewrite ^/courses/([^/]+)/index.php$ /main/course_home/course_home.php?cDir=$1 last;
     rewrite ^/session/([^/]+)/about/?$ /main/session/about.php?session_id=$1 last;
     rewrite ^/main/exercice/(.+)$ /main/exercise/$1 last;
+    rewrite ^/main/newscorm/(.+)$ /main/lp/$1 last;
 
     fastcgi_pass unix:/var/run/php5-fpm.sock;
     fastcgi_split_path_info ^(.+\.php)(/.*)$;

+ 2 - 0
documentation/installation_guide_es_ES.html

@@ -712,6 +712,7 @@ por ejemplo. El efecto debería ser inmediato.
     rewrite ^/courses/([^/]+)/index.php$ /main/course_home/course_home.php?cDir=$1 last;
     rewrite ^/session/([^/]+)/about/?$ /main/session/about.php?session_id=$1 last;
     rewrite ^/main/exercice/(.+)$ /main/exercise/$1 last;
+    rewrite ^/main/newscorm/(.+)$ /main/lp/$1 last;
 
     fastcgi_pass unix:/var/run/php5-fpm.sock;
     fastcgi_split_path_info ^(.+\.php)(/.*)$;
@@ -779,6 +780,7 @@ Apache2: La configuración para nuestro sitio de ejemplo my.chamilo10.net sería
 	RewriteRule ^session/(\d{1,})/about/?$ main/session/about.php?session_id=$1 [L]
     RewriteRule ^badge/(\d{1,})/user/(\d{1,}) main/badge/issued.php?skill=$1&user=$2 [L]
     RewriteRule ^main/exercice/(.+)$ main/exercise/$1 [QSA,L]
+    RewriteRule ^main/newscorm/(.*)$ main/lp/$1 [QSA,L]
   &lt;/Directory&gt;
 
   php_value display_errors Off

+ 2 - 0
documentation/installation_guide_fr_FR.html

@@ -740,6 +740,7 @@ ou, si vous travaillez avec Apache 2.4, la syntaxe est légèrement différente
 	RewriteRule ^session/(\d{1,})/about/?$ main/session/about.php?session_id=$1 [L]
     RewriteRule "^badge/(\d{1,})/user/(\d{1,})$" main/badge/issued.php?skill=$1&user=$2 [L]
     RewriteRule ^main/exercice/(.+)$ main/exercise/$1 [QSA,L]
+    RewriteRule ^main/newscorm/(.*)$ main/lp/$1 [QSA,L]
   &lt;/Directory&gt;
 </pre>
 <h3>Nginx</h3>
@@ -779,6 +780,7 @@ Ce sont uniquement les redirections à placer dans un bloc server{}, comme les a
     rewrite ^/courses/([^/]+)/index.php$ /main/course_home/course_home.php?cDir=$1 last;
     rewrite ^/session/([^/]+)/about/?$ /main/session/about.php?session_id=$1 last;
     rewrite ^/main/exercice/(.+)$ /main/exercise/$1 last;
+    rewrite ^/main/newscorm/(.+)$ /main/lp/$1 last;
 
     fastcgi_pass unix:/var/run/php5-fpm.sock;
     fastcgi_split_path_info ^(.+\.php)(/.*)$;

+ 2 - 2
main/course_home/course_home.php

@@ -209,7 +209,7 @@ if (!empty($auto_launch)) {
             $session_key = 'lp_autolaunch_'.$session_id.'_'.api_get_course_int_id().'_'.api_get_user_id();
             if (!isset($_SESSION[$session_key])) {
                 //redirecting to the LP
-                $url = api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?'.api_get_cidreq().'&id_session='.$session_id;
+                $url = api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?' . api_get_cidreq() . '&id_session=' . $session_id;
                 $_SESSION[$session_key] = true;
                 header("Location: $url");
                 exit;
@@ -246,7 +246,7 @@ if (!empty($auto_launch)) {
                     $session_key = 'lp_autolaunch_'.$session_id.'_'.api_get_course_int_id().'_'.api_get_user_id();
                     if (!isset($_SESSION[$session_key])) {
                         //redirecting to the LP
-                        $url = api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?'.api_get_cidreq().'&action=view&lp_id='.$lp_data['id'];
+                        $url = api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?' . api_get_cidreq() . '&action=view&lp_id=' . $lp_data['id'];
 
                         $_SESSION[$session_key] = true;
                         header("Location: $url");

+ 1 - 1
main/exercise/exercise_admin.php

@@ -197,7 +197,7 @@ if ($form->validate()) {
             } else {
                 $lp_id = intval($_GET['lp_id']);
             }
-            echo "<a href=\"../newscorm/lp_controller.php?".api_get_cidreq()."&gradebook=&action=add_item&type=step&lp_id=".$lp_id."#resource_tab-2\">".Display::return_icon('back.png', get_lang("BackTo").' '.get_lang("LearningPaths"),'',ICON_SIZE_MEDIUM)."</a>";
+            echo "<a href=\"../lp/lp_controller.php?".api_get_cidreq()."&gradebook=&action=add_item&type=step&lp_id=".$lp_id."#resource_tab-2\">".Display::return_icon('back.png', get_lang("BackTo").' '.get_lang("LearningPaths"),'',ICON_SIZE_MEDIUM)."</a>";
         } else {
             echo '<a href="exercise.php?'.api_get_cidreq().'">' .
                 Display :: return_icon('back.png', get_lang('BackToExercisesList'), '', ICON_SIZE_MEDIUM).

+ 1 - 1
main/exercise/exercise_result.php

@@ -204,7 +204,7 @@ if ($origin != 'learnpath') {
 	Display::display_footer();
 } else {
 	$lp_mode = isset($_SESSION['lp_mode']) ? $_SESSION['lp_mode'] : null;
-	$url = '../newscorm/lp_controller.php?'.api_get_cidreq().'&action=view&lp_id='.$learnpath_id.'&lp_item_id='.$learnpath_item_id.'&exeId='.$exercise_stat_info['exe_id'].'&fb_type='.$objExercise->feedback_type;
+	$url = '../lp/lp_controller.php?'.api_get_cidreq().'&action=view&lp_id='.$learnpath_id.'&lp_item_id='.$learnpath_item_id.'&exeId='.$exercise_stat_info['exe_id'].'&fb_type='.$objExercise->feedback_type;
 	$href = ($lp_mode == 'fullscreen')?' window.opener.location.href="'.$url.'" ':' top.location.href="'.$url.'"';
 
     if (api_is_allowed_to_session_edit()) {

+ 1 - 1
main/exercise/exercise_show.php

@@ -919,7 +919,7 @@ if ($origin != 'learnpath') {
 } else {
     if (!isset($_GET['fb_type'])) {
         $lp_mode = $_SESSION['lp_mode'];
-        $url = '../newscorm/lp_controller.php?' . api_get_cidreq() . '&';
+        $url = '../lp/lp_controller.php?' . api_get_cidreq() . '&';
         $url .= http_build_url([
             'action' => 'view',
             'lp_id' => $learnpath_id,

+ 1 - 1
main/exercise/exercise_submit_modal.php

@@ -513,7 +513,7 @@ if (isset($try) && $try==1) {
 
 // the link to theory (a learning path)
 if (!empty($lp)) {
-	$lp_url= api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?'.api_get_cidreq().'&action=view&lp_id='.$lp;
+	$lp_url= api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?'.api_get_cidreq().'&action=view&lp_id='.$lp;
 	$list = new LearnpathList(api_get_user_id());
 	$flat_list = $list->get_flat_list();
 	$links.= Display :: return_icon('theory.gif', '', array ('style' => 'padding-left:0px;padding-right:5px;')).'<a target="_blank" href="'.$lp_url.'">'.get_lang('SeeTheory').'</a><br />';

+ 2 - 2
main/exercise/export/scorm/scorm_classes.php

@@ -757,7 +757,7 @@ class ScormAssessmentItem
 	 */
 	function common_js()
 	{
-		$js = file_get_contents('../newscorm/js/api_wrapper.js');
+		$js = file_get_contents('../lp/js/api_wrapper.js');
 		$js .= 'var questions = new Array();' . "\n";
 		$js .= 'var questions_answers = new Array();' . "\n";
 		$js .= 'var questions_answers_correct = new Array();' . "\n";
@@ -998,7 +998,7 @@ class ScormSection
 	{
 		$js = "\n";
 		$js .= file_get_contents('../inc/lib/javascript/hotspot/js/hotspot.js');
-		$js .= file_get_contents('../newscorm/js/api_wrapper.js');
+		$js .= file_get_contents('../lp/js/api_wrapper.js');
 		$js .= 'var questions = new Array();' . "\n";
 		$js .= 'var questions_answers = new Array();' . "\n";
 		$js .= 'var questions_answers_correct = new Array();' . "\n";

+ 1 - 1
main/exercise/upload_exercise.php

@@ -618,7 +618,7 @@ function lp_upload_quiz_action_handling() {
             // Add a Quiz as Lp Item
             $_SESSION['oLP']->add_item($parent, $previous, TOOL_QUIZ, $quiz_id, $quiz_title, '');
             // Redirect to home page for add more content
-            header('location: ../newscorm/lp_controller.php?'.api_get_cidreq().'&action=add_item&type=step&lp_id='.Security::remove_XSS($_GET['lp_id']));
+            header('location: ../lp/lp_controller.php?'.api_get_cidreq().'&action=add_item&type=step&lp_id='.Security::remove_XSS($_GET['lp_id']));
             exit;
         } else {
             //  header('location: exercise.php?' . api_get_cidreq());

+ 1 - 1
main/forum/index.php

@@ -180,7 +180,7 @@ echo '<div class="actions">';
 
 //if is called from learning path
 if (!empty($_GET['lp_id']) || !empty($_POST['lp_id'])) {
-    echo "<a href=\"../newscorm/lp_controller.php?"
+    echo "<a href=\"../lp/lp_controller.php?"
         . api_get_cidreq()
         . "&gradebook=&action=add_item&type=step&lp_id=$lp_id#resource_tab-5\">"
         . Display::return_icon(

+ 1 - 1
main/gamification/my_progress.php

@@ -116,7 +116,7 @@ if ($currentSession) {
         foreach ($learningPathList->list as $learningPathId => $learningPath) {
             $courseData['stats'][] = [
                 $learningPath['lp_name'],
-                'newscorm/lp_controller.php?' . http_build_query([
+                'lp/lp_controller.php?' . http_build_query([
                     'action' => 'stats',
                     'cidReq' => $course->getCode(),
                     'id_session' => $currentSession->getId(),

+ 2 - 2
main/gradebook/exercise_jump.php

@@ -58,11 +58,11 @@ if (isset($_GET['doexercise'])) {
                         // If the exercise was added once redirect to the LP
                         $firstLp = current($exercise->lpList);
                         if (isset($firstLp['lp_id'])) {
-                            $url = api_get_path(WEB_CODE_PATH) . 'newscorm/lp_controller.php?' . api_get_cidreq() . '&lp_id=' . $firstLp['lp_id'] . '&action=view&isStudentView=true';
+                            $url = api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?' . api_get_cidreq() . '&lp_id=' . $firstLp['lp_id'] . '&action=view&isStudentView=true';
                         }
                     } else {
                         // If the exercise was added multiple times show the LP list
-                        $url = api_get_path(WEB_CODE_PATH) . 'newscorm/lp_controller.php?' . api_get_cidreq().'&action=list';
+                        $url = api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?' . api_get_cidreq().'&action=list';
                     }
                 }
             }

+ 1 - 1
main/gradebook/lib/be/learnpathlink.class.php

@@ -173,7 +173,7 @@ class LearnpathLink extends AbstractLink
 	public function get_link()
 	{
 		$session_id = api_get_session_id();
-		$url = api_get_path(WEB_PATH).'main/newscorm/lp_controller.php?'.api_get_cidreq_params($this->get_course_code(), $session_id).'&gradebook=view';
+		$url = api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?'.api_get_cidreq_params($this->get_course_code(), $session_id).'&gradebook=view';
 
 		if (!api_is_allowed_to_edit() || $this->calc_score(api_get_user_id()) == null) {
 			$url .= '&action=view&lp_id='.$this->get_ref_id();

+ 3 - 3
main/inc/ajax/course_home.ajax.php

@@ -150,7 +150,7 @@ switch ($action) {
                     continue;
                 }
 
-                $lp_url = api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?cidReq='.$item['code'].'&id_session='.$session_id.'&lp_id='.$lp_id.'&action=view';
+                $lp_url = api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?cidReq='.$item['code'].'&id_session='.$session_id.'&lp_id='.$lp_id.'&action=view';
 
                 $last_date = Tracking::get_last_connection_date_on_the_course(
                     api_get_user_id(),
@@ -283,7 +283,7 @@ switch ($action) {
 
             foreach ($flat_list as $lp_id => $lp_item) {
                 $temp[$count]['id']= $lp_id;
-                $lp_url = api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?cidReq='.$item['code'].'&id_session='.$session_id.'&lp_id='.$lp_id.'&action=view';
+                $lp_url = api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?cidReq='.$item['code'].'&id_session='.$session_id.'&lp_id='.$lp_id.'&action=view';
 
                 $last_date = Tracking::get_last_connection_date_on_the_course(
                     api_get_user_id(),
@@ -414,7 +414,7 @@ switch ($action) {
             );
             foreach($flat_list as $lp_id => $lp_item) {
                 $temp[$count]['id']= $lp_id;
-                $lp_url = api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?cidReq='.$item['code'].'&id_session='.$session_id.'&lp_id='.$lp_id.'&action=view';
+                $lp_url = api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?cidReq='.$item['code'].'&id_session='.$session_id.'&lp_id='.$lp_id.'&action=view';
                 $last_date = Tracking::get_last_connection_date_on_the_course(
                     api_get_user_id(),
                     $item,

+ 1 - 1
main/inc/lib/add_course.lib.inc.php

@@ -507,7 +507,7 @@ class AddCourse
         );
         Database::query(
             "INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
-            VALUES ($course_id, 4, '" . TOOL_LEARNPATH . "','newscorm/lp_controller.php','scorms.gif','" . self::string2binary(
+            VALUES ($course_id, 4, '" . TOOL_LEARNPATH . "','lp/lp_controller.php','scorms.gif','" . self::string2binary(
                 api_get_setting('course_create_active_tools', 'learning_path')
             ) . "','0','squaregrey.gif',0,'_self','authoring','0')"
         );

+ 2 - 2
main/inc/lib/api.lib.php

@@ -2895,12 +2895,12 @@ function api_display_tool_view_option() {
     }
 
     // Uncomment to remove student view link from document view page
-    if (strpos($_SERVER['REQUEST_URI'], 'newscorm/lp_header.php') !== false) {
+    if (strpos($_SERVER['REQUEST_URI'], 'lp/lp_header.php') !== false) {
         if (empty($_GET['lp_id'])) {
             return '';
         }
         $sourceurl = substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], '?'));
-        $sourceurl = str_replace('newscorm/lp_header.php', 'newscorm/lp_controller.php?'.api_get_cidreq().'&action=view&lp_id='.intval($_GET['lp_id']).'&isStudentView='.($_SESSION['studentview']=='studentview' ? 'false' : 'true'), $sourceurl);
+        $sourceurl = str_replace('lp/lp_header.php', 'lp/lp_controller.php?'.api_get_cidreq().'&action=view&lp_id='.intval($_GET['lp_id']).'&isStudentView='.($_SESSION['studentview']=='studentview' ? 'false' : 'true'), $sourceurl);
         //showinframes doesn't handle student view anyway...
         //return '';
         $is_framed = true;

+ 1 - 1
main/inc/lib/document.lib.php

@@ -3619,7 +3619,7 @@ class DocumentManager
         // Show the "image name" not the filename of the image.
         if ($lp_id) {
             // LP URL
-            $url = api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?'.api_get_cidreq().'&amp;action=add_item&amp;type=' . TOOL_DOCUMENT . '&amp;file=' . $documentId . '&amp;lp_id=' . $lp_id;
+            $url = api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?'.api_get_cidreq().'&amp;action=add_item&amp;type=' . TOOL_DOCUMENT . '&amp;file=' . $documentId . '&amp;lp_id=' . $lp_id;
             if (!empty($overwrite_url)) {
                 $url = $overwrite_url . '&cidReq=' . $course_info['code'] . '&id_session=' . $session_id . '&document_id=' . $documentId.'';
             }

+ 1 - 1
main/inc/lib/exercise.lib.php

@@ -1855,7 +1855,7 @@ HOTSPOT;
                     if ($lp_obj) {
                         $url = api_get_path(
                                 WEB_CODE_PATH
-                            ) . 'newscorm/lp_controller.php?' . api_get_cidreq() . '&action=view&lp_id=' . $results[$i]['orig_lp_id'];
+                            ) . 'lp/lp_controller.php?' . api_get_cidreq() . '&action=view&lp_id=' . $results[$i]['orig_lp_id'];
                         $lp_name = Display::url(
                             $lp_obj['lp_name'],
                             $url,

+ 1 - 1
main/inc/lib/search/tool_processors/learnpath_processor.class.php

@@ -52,7 +52,7 @@ class learnpath_processor extends search_processor {
                     $visibility = api_get_item_visibility(api_get_course_info($courseid), TOOL_LEARNPATH, $lp_id);
                     if ($visibility) {
                         list($thumbnail, $image, $name, $author) = $this->get_information($courseid, $lp_id, $lp['has_document_id']);
-                        $url = api_get_path(WEB_PATH) . 'main/newscorm/lp_controller.php?cidReq=%s&action=view&lp_id=%s';
+                        $url = api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?cidReq=%s&action=view&lp_id=%s';
                         $url = sprintf($url, $courseid, $lp_id);
                         $result = array(
                             'toolid' => TOOL_LEARNPATH,

+ 2 - 2
main/inc/lib/tracking.lib.php

@@ -4951,7 +4951,7 @@ class Tracking
                     $time_spent_in_lp = api_time_to_hms($time_spent_in_lp);
 
                     $html .= '<tr class="row_even">';
-                    $url = api_get_path(WEB_CODE_PATH)."newscorm/lp_controller.php?cidReq={$course_code}&id_session=$session_id&lp_id=$lp_id&action=view";
+                    $url = api_get_path(WEB_CODE_PATH) . "lp/lp_controller.php?cidReq={$course_code}&id_session=$session_id&lp_id=$lp_id&action=view";
 
                     if ($learnpath['lp_visibility'] == 0) {
                         $html .= Display::tag('td', $learnpath['lp_name']);
@@ -6087,7 +6087,7 @@ class TrackingCourseLog
     			break;
     		case 'learnpath':
     			$table_name = TABLE_LP_MAIN;
-    			$link_tool = 'newscorm/lp_controller.php';
+    			$link_tool = 'lp/lp_controller.php';
     			$id_tool = 'id';
     			break;
     		case 'quiz':

+ 0 - 0
main/newscorm/README.txt → main/lp/README.txt


+ 0 - 0
main/newscorm/aicc.class.php → main/lp/aicc.class.php


+ 0 - 0
main/newscorm/aiccBlock.class.php → main/lp/aiccBlock.class.php


+ 0 - 0
main/newscorm/aiccItem.class.php → main/lp/aiccItem.class.php


+ 0 - 0
main/newscorm/aiccObjective.class.php → main/lp/aiccObjective.class.php


+ 0 - 0
main/newscorm/aiccResource.class.php → main/lp/aiccResource.class.php


+ 1 - 1
main/newscorm/aicc_api.php → main/lp/aicc_api.php

@@ -427,7 +427,7 @@ function load_item(item_id,url){
  */
 function chamilo_save_asset(){
     //var linkparams = 'id='+lms_item_id+'&score='+score+'&max='+max+'&min='+min+'&lesson_status='+lesson_status+'&time='+session_time+'&suspend_data='+suspend_data;
-    //var url = "<?php echo api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php'; ?>?action=save&" + linkparams + "";
+    //var url = "<?php echo api_get_path(WEB_CODE_PATH).'lp/lp_controller.php'; ?>?action=save&" + linkparams + "";
     logit_lms('chamilo_save_asset: '+url,0);
     //frames["message_name"].src = url;
     xajax_save_item(lms_lp_id, lms_user_id, lms_view_id, lms_item_id, score, max, min, lesson_status, session_time, suspend_data, lesson_location);

+ 0 - 0
main/newscorm/aicc_hacp.php → main/lp/aicc_hacp.php


+ 0 - 0
main/newscorm/audiorecorder.inc.php → main/lp/audiorecorder.inc.php


+ 0 - 0
main/newscorm/blank.php → main/lp/blank.php


+ 0 - 0
main/newscorm/content_makers.inc.php → main/lp/content_makers.inc.php


+ 0 - 0
main/newscorm/display_audiorecorder.php → main/lp/display_audiorecorder.php


+ 0 - 0
main/newscorm/download.php → main/lp/download.php


+ 0 - 0
main/newscorm/embed.php → main/lp/embed.php


+ 0 - 0
main/newscorm/final_item_template/template.html → main/lp/final_item_template/template.html


+ 0 - 0
main/newscorm/index.php → main/lp/index.php


+ 0 - 0
main/newscorm/js/HOWTO-storageapi → main/lp/js/HOWTO-storageapi


+ 0 - 0
main/newscorm/js/api_wrapper.js → main/lp/js/api_wrapper.js


+ 0 - 0
main/newscorm/js/documentapi.js → main/lp/js/documentapi.js


+ 0 - 0
main/newscorm/js/storageapi.js → main/lp/js/storageapi.js


+ 9 - 9
main/newscorm/learnpath.class.php → main/lp/learnpath.class.php

@@ -1111,7 +1111,7 @@ class learnpath
         }
 
         $tbl_tool = Database :: get_course_table(TABLE_TOOL_LIST);
-        $link = 'newscorm/lp_controller.php?action=view&lp_id='.$this->lp_id;
+        $link = 'lp/lp_controller.php?action=view&lp_id='.$this->lp_id;
         // Delete tools
         $sql = "DELETE FROM $tbl_tool
                 WHERE c_id = ".$course_id." AND (link LIKE '$link%' AND image='scormbuilder.gif')";
@@ -3432,10 +3432,10 @@ class learnpath
                         case 'link':
                             if (Link::is_youtube_link($file)) {
                                 $src = Link::get_youtube_video_id($file);
-                                $file = api_get_path(WEB_CODE_PATH).'newscorm/embed.php?type=youtube&source='.$src;
+                                $file = api_get_path(WEB_CODE_PATH) . 'lp/embed.php?type=youtube&source='.$src;
                             } elseif (Link::isVimeoLink($file)) {
                                 $src = Link::getVimeoLinkId($file);
-                                $file = api_get_path(WEB_CODE_PATH).'newscorm/embed.php?type=vimeo&source='.$src;
+                                $file = api_get_path(WEB_CODE_PATH) . 'lp/embed.php?type=vimeo&source='.$src;
                             } else {
                                 // If the current site is HTTPS and the link is
                                 // HTTP, browsers will refuse opening the link
@@ -3448,7 +3448,7 @@ class learnpath
                                         //this is the special intervention case
                                         $file = api_get_path(
                                                 WEB_CODE_PATH
-                                            ).'newscorm/embed.php?type=nonhttps&source='.urlencode($file);
+                                            ) . 'lp/embed.php?type=nonhttps&source='.urlencode($file);
                                     }
                                 }
                             }
@@ -3589,7 +3589,7 @@ class learnpath
                         error_log('New LP - In learnpath::get_link() ' . __LINE__ . ' - Item type: ' . $lp_item_type, 0);
                     }
                     // Formatting AICC HACP append URL.
-                    $aicc_append = '?aicc_sid=' . urlencode(session_id()) . '&aicc_url=' . urlencode(api_get_path(WEB_CODE_PATH) . 'newscorm/aicc_hacp.php') . '&';
+                    $aicc_append = '?aicc_sid=' . urlencode(session_id()) . '&aicc_url=' . urlencode(api_get_path(WEB_CODE_PATH) . 'lp/aicc_hacp.php') . '&';
                     if (!empty($lp_item_params)) {
                         $aicc_append .= $lp_item_params . '&';
                     }
@@ -4219,7 +4219,7 @@ class learnpath
         $session_condition = api_get_session_condition($session_id);
 
         $tbl_tool = Database :: get_course_table(TABLE_TOOL_LIST);
-        $link = 'newscorm/lp_controller.php?action=view&lp_id='.$lp_id.'&id_session='.$session_id;
+        $link = 'lp/lp_controller.php?action=view&lp_id='.$lp_id.'&id_session='.$session_id;
         $sql = "SELECT * FROM $tbl_tool
                 WHERE
                     c_id = ".$course_id." AND
@@ -4590,7 +4590,7 @@ class learnpath
             $session_id = api_get_session_id();
             $session_condition = api_get_session_condition($session_id);
             $tbl_tool = Database :: get_course_table(TABLE_TOOL_LIST);
-            $link = 'newscorm/lp_controller.php?action=view&lp_id=' . $lp_id.'&id_session='.$session_id;
+            $link = 'lp/lp_controller.php?action=view&lp_id=' . $lp_id.'&id_session='.$session_id;
             $sql = "UPDATE $tbl_tool SET name = '$this->name'
             	    WHERE
             	        c_id = $course_id AND
@@ -9995,7 +9995,7 @@ EOD;
         file_put_contents($archive_path.$temp_dir_short.'/document/non_exportable.html', $file_content);
 
         // Add the extra files that go along with a SCORM package.
-        $main_code_path = api_get_path(SYS_CODE_PATH).'newscorm/packaging/';
+        $main_code_path = api_get_path(SYS_CODE_PATH) . 'lp/packaging/';
         $extra_files = scandir($main_code_path);
         foreach ($extra_files as $extra_file) {
             if (strpos($extra_file, '.') === 0)
@@ -11019,7 +11019,7 @@ EOD;
      */
     private function getFinalItemTemplate()
     {
-        return file_get_contents(api_get_path(SYS_CODE_PATH) . 'newscorm/final_item_template/template.html');
+        return file_get_contents(api_get_path(SYS_CODE_PATH) . 'lp/final_item_template/template.html');
     }
 
     /**

+ 0 - 0
main/newscorm/learnpathItem.class.php → main/lp/learnpathItem.class.php


+ 1 - 1
main/newscorm/learnpathList.class.php → main/lp/learnpathList.class.php

@@ -110,7 +110,7 @@ class LearnpathList
             // it prevents ' to be slashed and the input (done by learnpath.class.php::toggle_visibility())
             // is done using domesticate()
             $myname = domesticate($row['name']);
-            $mylink = 'newscorm/lp_controller.php?action=view&lp_id='.$row['id'].'&id_session='.$session_id;
+            $mylink = 'lp/lp_controller.php?action=view&lp_id='.$row['id'].'&id_session='.$session_id;
 
             $sql2 = "SELECT * FROM $tbl_tool
                      WHERE

+ 0 - 0
main/newscorm/learnpath_functions.inc.php → main/lp/learnpath_functions.inc.php


+ 1 - 1
main/newscorm/lp_add.php → main/lp/lp_add.php

@@ -97,7 +97,7 @@ if ($_POST AND empty($_REQUEST['lp_name'])) {
 $form = new FormValidator(
     'lp_add',
     'post',
-    api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?'.api_get_cidreq()
+    api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?'.api_get_cidreq()
 );
 
 // Form title

+ 1 - 1
main/newscorm/lp_add_audio.php → main/lp/lp_add_audio.php

@@ -141,7 +141,7 @@ if (!empty($file)) {
         Display::getMediaPlayer($file, array('url' => $urlFile)).
         "</div>";
     $form->addElement('label', get_lang('Listen'), $audioPlayer);
-    $url = api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?lp_id='.$_SESSION['oLP']->get_id().'&action=add_audio&id='.$lp_item_id.'&delete_file=1&'.api_get_cidreq();
+    $url = api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?lp_id='.$_SESSION['oLP']->get_id().'&action=add_audio&id='.$lp_item_id.'&delete_file=1&'.api_get_cidreq();
     $form->addElement('label', null, Display::url(get_lang('RemoveAudio'), $url, array('class' => 'btn btn-danger')));
 } else {
     $form->addElement('file', 'file');

+ 0 - 0
main/newscorm/lp_add_category.php → main/lp/lp_add_category.php


+ 0 - 0
main/newscorm/lp_add_item.php → main/lp/lp_add_item.php


+ 0 - 0
main/newscorm/lp_admin_view.php → main/lp/lp_admin_view.php


+ 0 - 0
main/newscorm/lp_ajax_initialize.php → main/lp/lp_ajax_initialize.php


+ 0 - 0
main/newscorm/lp_ajax_save_item.php → main/lp/lp_ajax_save_item.php


+ 0 - 0
main/newscorm/lp_ajax_save_objectives.php → main/lp/lp_ajax_save_objectives.php


+ 0 - 0
main/newscorm/lp_ajax_start_timer.php → main/lp/lp_ajax_start_timer.php


+ 0 - 0
main/newscorm/lp_ajax_switch_item.php → main/lp/lp_ajax_switch_item.php


+ 0 - 0
main/newscorm/lp_ajax_switch_item_toc.php → main/lp/lp_ajax_switch_item_toc.php


+ 0 - 0
main/newscorm/lp_build.php → main/lp/lp_build.php


+ 1 - 1
main/newscorm/lp_content.php → main/lp/lp_content.php

@@ -106,7 +106,7 @@ if (!empty($gradebook) && $gradebook == 'view') {
 // Define the 'doc.inc.php' as language file.
 $nameTools = $_SESSION['oLP']->get_name();
 $interbreadcrumb[] = array(
-    'url' => api_get_path(WEB_CODE_PATH).'newscorm/lp_list.php?'.api_get_cidreq(),
+    'url' => api_get_path(WEB_CODE_PATH) . 'lp/lp_list.php?'.api_get_cidreq(),
     'name' => get_lang('Doc'),
 );
 // Update global setting to avoid displaying right menu.

+ 0 - 0
main/newscorm/lp_controller.php → main/lp/lp_controller.php


+ 0 - 0
main/newscorm/lp_edit.php → main/lp/lp_edit.php


+ 0 - 0
main/newscorm/lp_edit_item.php → main/lp/lp_edit_item.php


+ 0 - 0
main/newscorm/lp_edit_item_prereq.php → main/lp/lp_edit_item_prereq.php


+ 0 - 0
main/newscorm/lp_final_item.php → main/lp/lp_final_item.php


+ 0 - 0
main/newscorm/lp_impress.php → main/lp/lp_impress.php


+ 1 - 1
main/newscorm/lp_list.php → main/lp/lp_list.php

@@ -646,7 +646,7 @@ foreach ($categories as $item) {
                 if ($details['subscribe_users'] == 1) {
                     $subscribeUsers = Display::url(
                         Display::return_icon('user.png', get_lang('SubscribeUsersToLp')),
-                        api_get_path(WEB_CODE_PATH)."newscorm/lp_subscribe_users.php?lp_id=$id&".api_get_cidreq()
+                        api_get_path(WEB_CODE_PATH) . "lp/lp_subscribe_users.php?lp_id=$id&".api_get_cidreq()
                     );
                 }
 

+ 0 - 0
main/newscorm/lp_list_search.css → main/lp/lp_list_search.css


+ 1 - 1
main/newscorm/lp_list_search.php → main/lp/lp_list_search.php

@@ -15,7 +15,7 @@ require api_get_path(LIBRARY_PATH).'search/ChamiloQuery.php';
 require_once api_get_path(LIBRARY_PATH).'search/IndexableChunk.class.php';
 require_once api_get_path(LIBRARY_PATH).'specific_fields_manager.lib.php';
 
-$htmlHeadXtra[] = '<link rel="stylesheet" type="text/css" href="'. api_get_path(WEB_PATH) .'main/newscorm/lp_list_search.css" />';
+$htmlHeadXtra[] = '<link rel="stylesheet" type="text/css" href="'. api_get_path(WEB_CODE_PATH) .'lp/lp_list_search.css" />';
 Event::event_access_tool(TOOL_SEARCH);
 
 if (isset($_SESSION['gradebook'])){

+ 0 - 0
main/newscorm/lp_move_item.php → main/lp/lp_move_item.php


+ 0 - 0
main/newscorm/lp_nav.php → main/lp/lp_nav.php


+ 2 - 2
main/newscorm/lp_report.php → main/lp/lp_report.php

@@ -106,7 +106,7 @@ if (!empty($users)) {
 
 // View
 $interbreadcrumb[] = [
-    'url' => api_get_path(WEB_CODE_PATH) . 'newscorm/lp_controller.php?'.api_get_cidreq(),
+    'url' => api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?'.api_get_cidreq(),
     'name' => get_lang('LearningPaths')
 ];
 
@@ -117,7 +117,7 @@ $actions = Display::url(
         array(),
         ICON_SIZE_MEDIUM
     ),
-    api_get_path(WEB_CODE_PATH) . 'newscorm/lp_controller.php?' . api_get_cidreq()
+    api_get_path(WEB_CODE_PATH) . 'lp/lp_controller.php?' . api_get_cidreq()
 );
 
 $template = new Template(get_lang('StudentScore'));

+ 0 - 0
main/newscorm/lp_save.php → main/lp/lp_save.php


+ 0 - 0
main/newscorm/lp_stats.php → main/lp/lp_stats.php


+ 0 - 0
main/newscorm/lp_subscribe_users.php → main/lp/lp_subscribe_users.php


+ 0 - 0
main/newscorm/lp_subscribe_users_to_category.php → main/lp/lp_subscribe_users_to_category.php


+ 0 - 0
main/newscorm/lp_upload.php → main/lp/lp_upload.php


+ 0 - 0
main/newscorm/lp_view.lib.js → main/lp/lp_view.lib.js


+ 2 - 2
main/newscorm/lp_view.php → main/lp/lp_view.php

@@ -118,7 +118,7 @@ if ($_SESSION['oLP']->mode == 'embedframe' || $_SESSION['oLP']->get_hide_toc_fra
 //Impress js
 if ($_SESSION['oLP']->mode == 'impress') {
     $lp_id = $_SESSION['oLP']->get_id();
-    $url = api_get_path(WEB_CODE_PATH) . "newscorm/lp_impress.php?lp_id=$lp_id&" . api_get_cidreq();
+    $url = api_get_path(WEB_CODE_PATH) . "lp/lp_impress.php?lp_id=$lp_id&" . api_get_cidreq();
     header("Location: $url");
     exit;
 }
@@ -191,7 +191,7 @@ if (!isset($src)) {
                     isset($file_info['extension']) &&
                     api_strtolower(substr($file_info['extension'], 0, 3) == 'pdf')
                 ) {
-                    $src = api_get_path(WEB_CODE_PATH).'newscorm/lp_view_item.php?lp_item_id='.$lp_item_id.'&'.api_get_cidreq();
+                    $src = api_get_path(WEB_CODE_PATH).'lp/lp_view_item.php?lp_item_id='.$lp_item_id.'&'.api_get_cidreq();
                 }
 
                 $src = $_SESSION['oLP']->fixBlockedLinks($src);

+ 1 - 1
main/newscorm/lp_view_item.php → main/lp/lp_view_item.php

@@ -86,7 +86,7 @@ if (api_is_in_gradebook()) {
 }
 
 $interbreadcrumb[] = array(
-    'url' => api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?action=list&'.api_get_cidreq(),
+    'url' => api_get_path(WEB_CODE_PATH).'lp/lp_controller.php?action=list&'.api_get_cidreq(),
     'name' => get_lang('LearningPaths')
 );
 $interbreadcrumb[] = array(

+ 0 - 0
main/newscorm/openoffice_document.class.php → main/lp/openoffice_document.class.php


+ 0 - 0
main/newscorm/openoffice_presentation.class.php → main/lp/openoffice_presentation.class.php


+ 0 - 0
main/newscorm/openoffice_text.class.php → main/lp/openoffice_text.class.php


+ 0 - 0
main/newscorm/openoffice_text_document.class.php → main/lp/openoffice_text_document.class.php


+ 109 - 109
main/newscorm/packaging/adlcp_rootv1p2.xsd → main/lp/packaging/adlcp_rootv1p2.xsd

@@ -1,110 +1,110 @@
-<?xml version="1.0"?>
-<!-- filename=adlcp_rootv1p2.xsd -->
-<!-- Conforms to w3c http://www.w3.org/TR/xmlschema-1/ 2000-10-24-->
-
-<xsd:schema xmlns="http://www.adlnet.org/xsd/adlcp_rootv1p2"
-            targetNamespace="http://www.adlnet.org/xsd/adlcp_rootv1p2"
-            xmlns:xml="http://www.w3.org/XML/1998/namespace"
-            xmlns:imscp="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
-            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            elementFormDefault="unqualified"
-            version="ADL Version 1.2">
-
-        <xsd:import namespace="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
-         schemaLocation="imscp_rootv1p1p2.xsd"/>
-
-        <xsd:element name="location" type="locationType"/>
-        <xsd:element name="prerequisites" type="prerequisitesType"/>
-        <xsd:element name="maxtimeallowed" type="maxtimeallowedType"/>
-        <xsd:element name="timelimitaction" type="timelimitactionType"/>
-        <xsd:element name="datafromlms" type="datafromlmsType"/>
-        <xsd:element name="masteryscore" type="masteryscoreType"/>
-
-
-        <xsd:element name="schema" type="newSchemaType"/>
-        <xsd:simpleType name="newSchemaType">
-                <xsd:restriction base="imscp:schemaType">
-                        <xsd:enumeration value="ADL SCORM"/>
-                </xsd:restriction>
-        </xsd:simpleType>
-
-        <xsd:element name="schemaversion" type="newSchemaversionType"/>
-        <xsd:simpleType name="newSchemaversionType">
-                <xsd:restriction base="imscp:schemaversionType">
-                        <xsd:enumeration value="1.2"/>
-                </xsd:restriction>
-        </xsd:simpleType>
-
-
-        <xsd:attribute name="scormtype">
-            <xsd:simpleType>
-                <xsd:restriction base="xsd:string">
-                   <xsd:enumeration value="asset"/>
-                   <xsd:enumeration value="sco"/>
-                </xsd:restriction>
-            </xsd:simpleType>
-        </xsd:attribute>
-
-        <xsd:simpleType name="locationType">
-                <xsd:restriction base="xsd:string">
-                        <xsd:maxLength value="2000"/>
-                </xsd:restriction>
-        </xsd:simpleType>
-
-
-        <xsd:complexType name="prerequisitesType">
-           <xsd:simpleContent>
-              <xsd:extension base="prerequisiteStringType">
-                  <xsd:attributeGroup ref="attr.prerequisitetype"/>
-              </xsd:extension>
-           </xsd:simpleContent>
-        </xsd:complexType>
-
-        <xsd:attributeGroup name="attr.prerequisitetype">
-                <xsd:attribute name="type" use="required">
-                        <xsd:simpleType>
-                                <xsd:restriction base="xsd:string">
-                                   <xsd:enumeration value="aicc_script"/>
-                                </xsd:restriction>
-                        </xsd:simpleType>
-                </xsd:attribute>
-        </xsd:attributeGroup>
-
-        <xsd:simpleType name="maxtimeallowedType">
-                <xsd:restriction base="xsd:string">
-                        <xsd:maxLength value="13"/>
-                </xsd:restriction>
-        </xsd:simpleType>
-
-        <xsd:simpleType name="timelimitactionType">
-                <xsd:restriction base="stringType">
-                        <xsd:enumeration value="exit,no message"/>
-                        <xsd:enumeration value="exit,message"/>
-                        <xsd:enumeration value="continue,no message"/>
-                        <xsd:enumeration value="continue,message"/>
-                </xsd:restriction>
-        </xsd:simpleType>
-
-        <xsd:simpleType name="datafromlmsType">
-                <xsd:restriction base="xsd:string">
-                        <xsd:maxLength value="255"/>
-                </xsd:restriction>
-        </xsd:simpleType>
-
-        <xsd:simpleType name="masteryscoreType">
-                <xsd:restriction base="xsd:string">
-                        <xsd:maxLength value="200"/>
-                </xsd:restriction>
-        </xsd:simpleType>
-
-        <xsd:simpleType name="stringType">
-                <xsd:restriction base="xsd:string"/>
-        </xsd:simpleType>
-        
-        <xsd:simpleType name="prerequisiteStringType">
-                <xsd:restriction base="xsd:string">
-                   <xsd:maxLength value="200"/>
-                </xsd:restriction>
-        </xsd:simpleType>
-
+<?xml version="1.0"?>
+<!-- filename=adlcp_rootv1p2.xsd -->
+<!-- Conforms to w3c http://www.w3.org/TR/xmlschema-1/ 2000-10-24-->
+
+<xsd:schema xmlns="http://www.adlnet.org/xsd/adlcp_rootv1p2"
+            targetNamespace="http://www.adlnet.org/xsd/adlcp_rootv1p2"
+            xmlns:xml="http://www.w3.org/XML/1998/namespace"
+            xmlns:imscp="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            elementFormDefault="unqualified"
+            version="ADL Version 1.2">
+
+        <xsd:import namespace="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
+         schemaLocation="imscp_rootv1p1p2.xsd"/>
+
+        <xsd:element name="location" type="locationType"/>
+        <xsd:element name="prerequisites" type="prerequisitesType"/>
+        <xsd:element name="maxtimeallowed" type="maxtimeallowedType"/>
+        <xsd:element name="timelimitaction" type="timelimitactionType"/>
+        <xsd:element name="datafromlms" type="datafromlmsType"/>
+        <xsd:element name="masteryscore" type="masteryscoreType"/>
+
+
+        <xsd:element name="schema" type="newSchemaType"/>
+        <xsd:simpleType name="newSchemaType">
+                <xsd:restriction base="imscp:schemaType">
+                        <xsd:enumeration value="ADL SCORM"/>
+                </xsd:restriction>
+        </xsd:simpleType>
+
+        <xsd:element name="schemaversion" type="newSchemaversionType"/>
+        <xsd:simpleType name="newSchemaversionType">
+                <xsd:restriction base="imscp:schemaversionType">
+                        <xsd:enumeration value="1.2"/>
+                </xsd:restriction>
+        </xsd:simpleType>
+
+
+        <xsd:attribute name="scormtype">
+            <xsd:simpleType>
+                <xsd:restriction base="xsd:string">
+                   <xsd:enumeration value="asset"/>
+                   <xsd:enumeration value="sco"/>
+                </xsd:restriction>
+            </xsd:simpleType>
+        </xsd:attribute>
+
+        <xsd:simpleType name="locationType">
+                <xsd:restriction base="xsd:string">
+                        <xsd:maxLength value="2000"/>
+                </xsd:restriction>
+        </xsd:simpleType>
+
+
+        <xsd:complexType name="prerequisitesType">
+           <xsd:simpleContent>
+              <xsd:extension base="prerequisiteStringType">
+                  <xsd:attributeGroup ref="attr.prerequisitetype"/>
+              </xsd:extension>
+           </xsd:simpleContent>
+        </xsd:complexType>
+
+        <xsd:attributeGroup name="attr.prerequisitetype">
+                <xsd:attribute name="type" use="required">
+                        <xsd:simpleType>
+                                <xsd:restriction base="xsd:string">
+                                   <xsd:enumeration value="aicc_script"/>
+                                </xsd:restriction>
+                        </xsd:simpleType>
+                </xsd:attribute>
+        </xsd:attributeGroup>
+
+        <xsd:simpleType name="maxtimeallowedType">
+                <xsd:restriction base="xsd:string">
+                        <xsd:maxLength value="13"/>
+                </xsd:restriction>
+        </xsd:simpleType>
+
+        <xsd:simpleType name="timelimitactionType">
+                <xsd:restriction base="stringType">
+                        <xsd:enumeration value="exit,no message"/>
+                        <xsd:enumeration value="exit,message"/>
+                        <xsd:enumeration value="continue,no message"/>
+                        <xsd:enumeration value="continue,message"/>
+                </xsd:restriction>
+        </xsd:simpleType>
+
+        <xsd:simpleType name="datafromlmsType">
+                <xsd:restriction base="xsd:string">
+                        <xsd:maxLength value="255"/>
+                </xsd:restriction>
+        </xsd:simpleType>
+
+        <xsd:simpleType name="masteryscoreType">
+                <xsd:restriction base="xsd:string">
+                        <xsd:maxLength value="200"/>
+                </xsd:restriction>
+        </xsd:simpleType>
+
+        <xsd:simpleType name="stringType">
+                <xsd:restriction base="xsd:string"/>
+        </xsd:simpleType>
+        
+        <xsd:simpleType name="prerequisiteStringType">
+                <xsd:restriction base="xsd:string">
+                   <xsd:maxLength value="200"/>
+                </xsd:restriction>
+        </xsd:simpleType>
+
 </xsd:schema>

+ 2210 - 2210
main/newscorm/packaging/ims_qtiasiv1p2.xsd → main/lp/packaging/ims_qtiasiv1p2.xsd

@@ -1,2210 +1,2210 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- filename=ims_qtiasiv1p2.xsd -->
-<!-- Copyright (2) 2002 IMS Global Learning Consortium, Inc. -->
-<xs:schema targetNamespace="http://www.imsglobal.org/xsd/ims_qtiasiv1p2"
-	 xmlns:x="http://www.w3.org/XML/1998/namespace" 
-	 xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-	 xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" 
-	 elementFormDefault="qualified" 
-	 version="IMS QTI ASI 1.2">
-	<!-- **************************** -->
-	<!-- ** Inclusions and Imports ** -->
-	<!-- **************************** -->
-	<xs:import namespace="http://www.w3.org/XML/1998/namespace" 
-	schemaLocation="xml.xsd"/>
-	<!-- ****************** -->
-	<!-- ** Root Element ** -->
-	<!-- ****************** -->
-	<xs:element name="questestinterop" type="questestinteropType"/>
-	<!-- ************************** -->
-	<!-- ** Element Declarations ** -->
-	<!-- ************************** -->
-	<xs:element name="altmaterial" type="altmaterialType"/>
-	<xs:element name="and" type="andType"/>
-	<xs:element name="and_objects" type="and_objectsType"/>
-	<xs:element name="and_selection" type="and_selectionType"/>
-	<xs:element name="and_test" type="and_testType"/>
-	<xs:element name="assessfeedback" type="assessfeedbackType"/>
-	<xs:element name="assessment" type="assessmentType"/>
-	<xs:element name="assessmentcontrol" type="assessmentcontrolType"/>
-	<xs:element name="assessproc_extension" type="assessproc_extensionType"/>
-	<xs:element name="conditionvar" type="conditionvarType"/>
-	<xs:element name="decvar" type="decvarType"/>
-	<xs:element name="displayfeedback" type="displayfeedbackType"/>
-	<xs:element name="duration" type="xs:string"/>
-	<xs:element name="durequal" type="durequalType"/>
-	<xs:element name="durgt" type="durgtType"/>
-	<xs:element name="durgte" type="durgteType"/>
-	<xs:element name="durlt" type="durltType"/>
-	<xs:element name="durlte" type="durlteType"/>
-	<xs:element name="fieldentry" type="xs:string"/>
-	<xs:element name="fieldlabel" type="xs:string"/>
-	<xs:element name="flow" type="flowType"/>
-	<xs:element name="flow_label" type="flow_labelType"/>
-	<xs:element name="flow_mat" type="flow_matType"/>
-	<xs:element name="hint" type="hintType"/>
-	<xs:element name="hintmaterial" type="hintmaterialType"/>
-	<xs:element name="interpretvar" type="interpretvarType"/>
-	<xs:element name="item" type="itemType"/>
-	<xs:element name="itemcontrol" type="itemcontrolType"/>
-	<xs:element name="itemfeedback" type="itemfeedbackType"/>
-	<xs:element name="itemmetadata" type="itemmetadataType"/>
-	<xs:element name="itempostcondition" type="xs:string"/>
-	<xs:element name="itemprecondition" type="xs:string"/>
-	<xs:element name="itemproc_extension" type="itemproc_extensionType"/>
-	<xs:element name="itemref" type="itemrefType"/>
-	<xs:element name="itemrubric" type="itemrubricType"/>
-	<xs:element name="map_input" type="map_inputType"/>
-	<xs:element name="map_output" type="map_outputType"/>
-	<xs:element name="mat_extension" type="mat_extensionType"/>
-	<xs:element name="matapplet" type="matappletType"/>
-	<xs:element name="matapplication" type="matapplicationType"/>
-	<xs:element name="mataudio" type="mataudioType"/>
-	<xs:element name="matbreak" type="matbreakType"/>
-	<xs:element name="matemtext" type="matemtextType"/>
-	<xs:element name="material" type="materialType"/>
-	<xs:element name="material_ref" type="material_refType"/>
-	<xs:element name="matimage" type="matimageType"/>
-	<xs:element name="matref" type="matrefType"/>
-	<xs:element name="mattext" type="mattextType"/>
-	<xs:element name="matvideo" type="matvideoType"/>
-	<xs:element name="not" type="notType"/>
-	<xs:element name="not_objects" type="not_objectsType"/>
-	<xs:element name="not_selection" type="not_selectionType"/>
-	<xs:element name="not_test" type="not_testType"/>
-	<xs:element name="objectbank" type="objectbankType"/>
-	<xs:element name="objectives" type="objectivesType"/>
-	<xs:element name="objects_condition" type="objects_conditionType"/>
-	<xs:element name="objects_parameter" type="objects_parameterType"/>
-	<xs:element name="objectscond_extension" type="xs:string"/>
-	<xs:element name="or" type="orType"/>
-	<xs:element name="or_objects" type="or_objectsType"/>
-	<xs:element name="or_selection" type="or_selectionType"/>
-	<xs:element name="or_test" type="or_testType"/>
-	<xs:element name="order" type="orderType"/>
-	<xs:element name="order_extension" type="order_extensionType"/>
-	<xs:element name="other" type="xs:string"/>
-	<xs:element name="outcomes" type="outcomesType"/>
-	<xs:element name="outcomes_feedback_test" type="outcomes_feedback_testType"/>
-	<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
-	<xs:element name="outcomes_processing" type="outcomes_processingType"/>
-	<xs:element name="presentation" type="presentationType"/>
-	<xs:element name="presentation_material" type="presentation_materialType"/>
-	<xs:element name="processing_parameter" type="processing_parameterType"/>
-	<xs:element name="qmd_computerscored" type="xs:string"/>
-	<xs:element name="qmd_feedbackpermitted" type="xs:string"/>
-	<xs:element name="qmd_hintspermitted" type="xs:string"/>
-	<xs:element name="qmd_itemtype" type="xs:string"/>
-	<xs:element name="qmd_levelofdifficulty" type="xs:string"/>
-	<xs:element name="qmd_material" type="xs:string"/>
-	<xs:element name="qmd_maximumscore" type="xs:string"/>
-	<xs:element name="qmd_renderingtype" type="xs:string"/>
-	<xs:element name="qmd_responsetype" type="xs:string"/>
-	<xs:element name="qmd_scoringpermitted" type="xs:string"/>
-	<xs:element name="qmd_solutionspermitted" type="xs:string"/>
-	<xs:element name="qmd_status" type="xs:string"/>
-	<xs:element name="qmd_timedependence" type="xs:string"/>
-	<xs:element name="qmd_timelimit" type="xs:string"/>
-	<xs:element name="qmd_toolvendor" type="xs:string"/>
-	<xs:element name="qmd_topic" type="xs:string"/>
-	<xs:element name="qmd_typeofsolution" type="xs:string"/>
-	<xs:element name="qmd_weighting" type="xs:string"/>
-	<xs:element name="qticomment" type="qticommentType"/>
-	<xs:element name="qtimetadata" type="qtimetadataType"/>
-	<xs:element name="qtimetadatafield" type="qtimetadatafieldType"/>
-	<xs:element name="reference" type="referenceType"/>
-	<xs:element name="render_choice" type="render_choiceType"/>
-	<xs:element name="render_fib" type="render_fibType"/>
-	<xs:element name="render_hotspot" type="render_hotspotType"/>
-	<xs:element name="render_slider" type="render_sliderType"/>
-	<xs:element name="respcond_extension" type="respcond_extensionType"/>
-	<xs:element name="respcondition" type="respconditionType"/>
-	<xs:element name="render_extension" type="render_extensionType"/>
-	<xs:element name="response_extension" type="response_extensionType"/>
-	<xs:element name="response_grp" type="response_grpType"/>
-	<xs:element name="response_labelType" type="response_labelType"/>
-	<xs:element name="response_lid" type="response_lidType"/>
-	<xs:element name="response_na" type="response_naType"/>
-	<xs:element name="response_num" type="response_numType"/>
-	<xs:element name="response_str" type="response_strType"/>
-	<xs:element name="response_xy" type="response_xyType"/>
-	<xs:element name="resprocessing" type="resprocessingType"/>
-	<xs:element name="rubric" type="rubricType"/>
-	<xs:element name="section" type="sectionType"/>
-	<xs:element name="sectioncontrol" type="sectioncontrolType"/>
-	<xs:element name="sectionfeedback" type="sectionfeedbackType"/>
-	<xs:element name="sectionproc_extension" type="sectionproc_extensionType"/>
-	<xs:element name="sectionpostcondition" type="xs:string"/>
-	<xs:element name="sectionprecondition" type="xs:string"/>
-	<xs:element name="sectionref" type="sectionrefType"/>
-	<xs:element name="selection" type="selectionType"/>
-	<xs:element name="selection_extension" type="selection_extensionType"/>
-	<xs:element name="selection_metadata" type="selection_metadataType"/>
-	<xs:element name="selection_number" type="xs:string"/>
-	<xs:element name="selection_ordering" type="selection_orderingType"/>
-	<xs:element name="sequence_parameter" type="sequence_parameterType"/>
-	<xs:element name="setvar" type="setvarType"/>
-	<xs:element name="solution" type="solutionType"/>
-	<xs:element name="solutionmaterial" type="solutionmaterialType"/>
-	<xs:element name="sourcebank_ref" type="xs:string"/>
-	<xs:element name="test_variable" type="test_variableType"/>
-	<xs:element name="unanswered" type="unansweredType"/>
-	<xs:element name="var_extension" type="var_extensionType"/>
-	<xs:element name="varequal" type="varequalType"/>
-	<xs:element name="vargt" type="vargtType"/>
-	<xs:element name="vargte" type="vargteType"/>
-	<xs:element name="variable_test" type="variable_testType"/>
-	<xs:element name="varinside" type="varinsideType"/>
-	<xs:element name="varlt" type="varltType"/>
-	<xs:element name="varlte" type="varlteType"/>
-	<xs:element name="varsubset" type="varsubsetType"/>
-	<xs:element name="varsubstring" type="varsubstringType"/>
-	<xs:element name="vocabulary" type="vocabularyType"/>
-	<!-- ******************************* -->
-	<!-- ** Complex Type Declarations ** -->
-	<!-- ******************************* -->
-	<!-- ***************** -->
-	<!-- ** altmaterial ** -->
-	<!-- ***************** -->
-	<xs:complexType name="altmaterialType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:choice maxOccurs="unbounded">
-				<xs:element name="mattext" type="mattextType"/>
-				<xs:element name="matemtext" type="matemtextType"/>
-				<xs:element name="matimage" type="matimageType"/>
-				<xs:element name="mataudio" type="mataudioType"/>
-				<xs:element name="matvideo" type="matvideoType"/>
-				<xs:element name="matapplet" type="matappletType"/>
-				<xs:element name="matapplication" type="matapplicationType"/>
-				<xs:element name="matref" type="matrefType"/>
-				<xs:element ref="matbreak"/>
-				<xs:element ref="mat_extension"/>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute ref="x:lang"/>
-	</xs:complexType>
-	<!-- ********* -->
-	<!-- ** and ** -->
-	<!-- ********* -->
-	<xs:complexType name="andType">
-		<xs:choice maxOccurs="unbounded">
-			<xs:element name="not" type="notType"/>
-			<xs:element name="and" type="andType"/>
-			<xs:element name="or" type="orType"/>
-			<xs:element name="unanswered" type="unansweredType"/>
-			<xs:element ref="other"/>
-			<xs:element name="varequal" type="varequalType"/>
-			<xs:element name="varlt" type="varltType"/>
-			<xs:element name="varlte" type="varlteType"/>
-			<xs:element name="vargt" type="vargtType"/>
-			<xs:element name="vargte" type="vargteType"/>
-			<xs:element name="varsubset" type="varsubsetType"/>
-			<xs:element name="varinside" type="varinsideType"/>
-			<xs:element name="varsubstring" type="varsubstringType"/>
-			<xs:element name="durequal" type="durequalType"/>
-			<xs:element name="durlt" type="durltType"/>
-			<xs:element name="durlte" type="durlteType"/>
-			<xs:element name="durgt" type="durgtType"/>
-			<xs:element name="durgte" type="durgteType"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- ***************** -->
-	<!-- ** and_objects ** -->
-	<!-- ***************** -->
-	<xs:complexType name="and_objectsType">
-		<xs:choice maxOccurs="unbounded">
-			<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
-			<xs:element name="and_objects" type="and_objectsType"/>
-			<xs:element name="or_objects" type="or_objectsType"/>
-			<xs:element name="not_objects" type="not_objectsType"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- ******************* -->
-	<!-- ** and_selection ** -->
-	<!-- ******************* -->
-	<xs:complexType name="and_selectionType">
-		<xs:choice maxOccurs="unbounded">
-			<xs:element name="selection_metadata" type="selection_metadataType"/>
-			<xs:element name="and_selection" type="and_selectionType"/>
-			<xs:element name="or_selection" type="or_selectionType"/>
-			<xs:element name="not_selection" type="not_selectionType"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- ************** -->
-	<!-- ** and_test ** -->
-	<!-- ************** -->
-	<xs:complexType name="and_testType">
-		<xs:choice maxOccurs="unbounded">
-			<xs:element name="variable_test" type="variable_testType"/>
-			<xs:element name="and_test" type="and_testType"/>
-			<xs:element name="or_test" type="or_testType"/>
-			<xs:element name="not_test" type="not_testType"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- ******************** -->
-	<!-- ** assessfeedback ** -->
-	<!-- ******************** -->
-	<xs:complexType name="assessfeedbackType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:choice>
-				<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
-				<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute name="view" default="All">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="All"/>
-					<xs:enumeration value="Administrator"/>
-					<xs:enumeration value="AdminAuthority"/>
-					<xs:enumeration value="Assessor"/>
-					<xs:enumeration value="Author"/>
-					<xs:enumeration value="Candidate"/>
-					<xs:enumeration value="InvigilatorProctor"/>
-					<xs:enumeration value="Psychometrician"/>
-					<xs:enumeration value="Scorer"/>
-					<xs:enumeration value="Tutor"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="ident" type="xs:string" use="required"/>
-		<xs:attribute name="title" type="xs:string"/>
-	</xs:complexType>
-	<!-- **************** -->
-	<!-- ** assessment ** -->
-	<!-- **************** -->
-	<xs:complexType name="assessmentType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:element ref="duration" minOccurs="0"/>
-			<xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="objectives" type="objectivesType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="assessmentcontrol" type="assessmentcontrolType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="rubric" type="rubricType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="presentation_material" type="presentation_materialType" minOccurs="0"/>
-			<xs:element name="outcomes_processing" type="outcomes_processingType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element ref="assessproc_extension" minOccurs="0"/>
-			<xs:element name="assessfeedback" type="assessfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="selection_ordering" type="selection_orderingType" minOccurs="0"/>
-			<xs:element name="reference" type="referenceType" minOccurs="0"/>
-			<xs:choice maxOccurs="unbounded">
-				<xs:element name="sectionref" type="sectionrefType"/>
-				<xs:element name="section" type="sectionType"/>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute name="ident" type="xs:string" use="required"/>
-		<xs:attribute name="title" type="xs:string"/>
-		<xs:attribute ref="x:lang"/>
-	</xs:complexType>
-	<!-- *********************** -->
-	<!-- ** assessmentcontrol ** -->
-	<!-- *********************** -->
-	<xs:complexType name="assessmentcontrolType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-		</xs:sequence>
-		<xs:attribute name="hintswitch" default="Yes">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="solutionswitch" default="Yes">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="view" default="All">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="All"/>
-					<xs:enumeration value="Administrator"/>
-					<xs:enumeration value="AdminAuthority"/>
-					<xs:enumeration value="Assessor"/>
-					<xs:enumeration value="Author"/>
-					<xs:enumeration value="Candidate"/>
-					<xs:enumeration value="InvigilatorProctor"/>
-					<xs:enumeration value="Psychometrician"/>
-					<xs:enumeration value="Scorer"/>
-					<xs:enumeration value="Tutor"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="feedbackswitch" default="Yes">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:complexType>
-	<!-- ************************** -->
-	<!-- ** assessproc_extension ** -->
-	<!-- ************************** -->
-	<xs:complexType name="assessproc_extensionType" mixed="true">
-		<xs:sequence>
-			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:anyAttribute processContents="lax"/>
-	</xs:complexType>
-	<!-- ****************** -->
-	<!-- ** conditionvar ** -->
-	<!-- ****************** -->
-	<xs:complexType name="conditionvarType">
-		<xs:choice maxOccurs="unbounded">
-			<xs:element name="not" type="notType"/>
-			<xs:element name="and" type="andType"/>
-			<xs:element name="or" type="orType"/>
-			<xs:element name="unanswered" type="unansweredType"/>
-			<xs:element ref="other"/>
-			<xs:element name="varequal" type="varequalType"/>
-			<xs:element name="varlt" type="varltType"/>
-			<xs:element name="varlte" type="varlteType"/>
-			<xs:element name="vargt" type="vargtType"/>
-			<xs:element name="vargte" type="vargteType"/>
-			<xs:element name="varsubset" type="varsubsetType"/>
-			<xs:element name="varinside" type="varinsideType"/>
-			<xs:element name="varsubstring" type="varsubstringType"/>
-			<xs:element name="durequal" type="durequalType"/>
-			<xs:element name="durlt" type="durltType"/>
-			<xs:element name="durlte" type="durlteType"/>
-			<xs:element name="durgt" type="durgtType"/>
-			<xs:element name="durgte" type="durgteType"/>
-			<xs:element ref="var_extension"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- ************ -->
-	<!-- ** decvar ** -->
-	<!-- ************ -->
-	<xs:complexType name="decvarType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
-				<xs:attribute name="vartype" default="Integer">
-					<xs:simpleType>
-						<xs:restriction base="xs:NMTOKEN">
-							<xs:enumeration value="Integer"/>
-							<xs:enumeration value="String"/>
-							<xs:enumeration value="Decimal"/>
-							<xs:enumeration value="Scientific"/>
-							<xs:enumeration value="Boolean"/>
-							<xs:enumeration value="Enumerated"/>
-							<xs:enumeration value="Set"/>
-						</xs:restriction>
-					</xs:simpleType>
-				</xs:attribute>
-				<xs:attribute name="defaultval" type="xs:string"/>
-				<xs:attribute name="minvalue" type="xs:string"/>
-				<xs:attribute name="maxvalue" type="xs:string"/>
-				<xs:attribute name="members" type="xs:string"/>
-				<xs:attribute name="cutvalue" type="xs:string"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ********************* -->
-	<!-- ** displayfeedback ** -->
-	<!-- ********************* -->
-	<xs:complexType name="displayfeedbackType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="feedbacktype" default="Response">
-					<xs:simpleType>
-						<xs:restriction base="xs:NMTOKEN">
-							<xs:enumeration value="Response"/>
-							<xs:enumeration value="Solution"/>
-							<xs:enumeration value="Hint"/>
-						</xs:restriction>
-					</xs:simpleType>
-				</xs:attribute>
-				<xs:attribute name="linkrefid" type="xs:string" use="required"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ************** -->
-	<!-- ** durequal ** -->
-	<!-- ************** -->
-	<xs:complexType name="durequalType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="index" type="xs:string"/>
-				<xs:attribute name="respident" type="xs:string" use="required"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- *********** -->
-	<!-- ** durgt ** -->
-	<!-- *********** -->
-	<xs:complexType name="durgtType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="index" type="xs:string"/>
-				<xs:attribute name="respident" type="xs:string" use="required"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ************ -->
-	<!-- ** durgte ** -->
-	<!-- ************ -->
-	<xs:complexType name="durgteType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="index" type="xs:string"/>
-				<xs:attribute name="respident" type="xs:string" use="required"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- *********** -->
-	<!-- ** durlt ** -->
-	<!-- *********** -->
-	<xs:complexType name="durltType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="index" type="xs:string"/>
-				<xs:attribute name="respident" type="xs:string" use="required"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ************ -->
-	<!-- ** durlte ** -->
-	<!-- ************ -->
-	<xs:complexType name="durlteType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="index" type="xs:string"/>
-				<xs:attribute name="respident" type="xs:string" use="required"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ********** -->
-	<!-- ** flow ** -->
-	<!-- ********** -->
-	<xs:complexType name="flowType">
-		<xs:choice maxOccurs="unbounded">
-			<xs:element name="flow" type="flowType"/>
-			<xs:element name="material" type="materialType"/>
-			<xs:element name="material_ref" type="material_refType"/>
-			<xs:element name="response_lid" type="response_lidType"/>
-			<xs:element name="response_xy" type="response_xyType"/>
-			<xs:element name="response_str" type="response_strType"/>
-			<xs:element name="response_num" type="response_numType"/>
-			<xs:element name="response_grp" type="response_grpType"/>
-			<xs:element ref="response_extension"/>
-		</xs:choice>
-		<xs:attribute name="class" type="xs:string" default="Block"/>
-	</xs:complexType>
-	<!-- **************** -->
-	<!-- ** flow_label ** -->
-	<!-- **************** -->
-	<xs:complexType name="flow_labelType">
-		<xs:choice maxOccurs="unbounded">
-			<xs:element name="flow_label" type="flow_labelType"/>
-			<xs:element name="response_label" type="response_labelType"/>
-		</xs:choice>
-		<xs:attribute name="class" type="xs:string" default="Block"/>
-	</xs:complexType>
-	<!-- ************** -->
-	<!-- ** flow_mat ** -->
-	<!-- ************** -->
-	<xs:complexType name="flow_matType">
-		<xs:choice maxOccurs="unbounded">
-			<xs:element name="flow_mat" type="flow_matType"/>
-			<xs:element name="material" type="materialType"/>
-			<xs:element name="material_ref" type="material_refType"/>
-		</xs:choice>
-		<xs:attribute name="class" type="xs:string" default="Block"/>
-	</xs:complexType>
-	<!-- ********** -->
-	<!-- ** hint ** -->
-	<!-- ********** -->
-	<xs:complexType name="hintType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:element name="hintmaterial" type="hintmaterialType" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:attribute name="feedbackstyle" default="Complete">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Complete"/>
-					<xs:enumeration value="Incremental"/>
-					<xs:enumeration value="Multilevel"/>
-					<xs:enumeration value="Proprietary"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:complexType>
-	<!-- ****************** -->
-	<!-- ** hintmaterial ** -->
-	<!-- ****************** -->
-	<xs:complexType name="hintmaterialType">
-		<xs:choice>
-			<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
-			<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- ****************** -->
-	<!-- ** interpretvar ** -->
-	<!-- ****************** -->
-	<xs:complexType name="interpretvarType">
-		<xs:choice>
-			<xs:element name="material" type="materialType"/>
-			<xs:element name="material_ref" type="material_refType"/>
-		</xs:choice>
-		<xs:attribute name="view" default="All">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="All"/>
-					<xs:enumeration value="Administrator"/>
-					<xs:enumeration value="AdminAuthority"/>
-					<xs:enumeration value="Assessor"/>
-					<xs:enumeration value="Author"/>
-					<xs:enumeration value="Candidate"/>
-					<xs:enumeration value="InvigilatorProctor"/>
-					<xs:enumeration value="Psychometrician"/>
-					<xs:enumeration value="Scorer"/>
-					<xs:enumeration value="Tutor"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="varname" type="xs:string" default="SCORE"/>
-	</xs:complexType>
-	<!-- ********** -->
-	<!-- ** item ** -->
-	<!-- ********** -->
-	<xs:complexType name="itemType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:element ref="duration" minOccurs="0"/>
-			<xs:element name="itemmetadata" type="itemmetadataType" minOccurs="0"/>
-			<xs:element name="objectives" type="objectivesType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="itemcontrol" type="itemcontrolType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element ref="itemprecondition" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element ref="itempostcondition" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element name="itemrubric" type="itemrubricType"/>
-				<xs:element name="rubric" type="rubricType"/>
-			</xs:choice>
-			<xs:element name="presentation" type="presentationType" minOccurs="0"/>
-			<xs:element name="resprocessing" type="resprocessingType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element ref="itemproc_extension" minOccurs="0"/>
-			<xs:element name="itemfeedback" type="itemfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="reference" type="referenceType" minOccurs="0"/>
-		</xs:sequence>
-		<xs:attribute name="maxattempts" type="xs:string"/>
-		<xs:attribute name="label" type="xs:string"/>
-		<xs:attribute name="ident" type="xs:string" use="required"/>
-		<xs:attribute name="title" type="xs:string"/>
-		<xs:attribute ref="x:lang"/>
-	</xs:complexType>
-	<!-- ***************** -->
-	<!-- ** itemcontrol ** -->
-	<!-- ***************** -->
-	<xs:complexType name="itemcontrolType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-		</xs:sequence>
-		<xs:attribute name="feedbackswitch" default="Yes">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="hintswitch" default="Yes">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="solutionswitch" default="Yes">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="view" default="All">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="All"/>
-					<xs:enumeration value="Administrator"/>
-					<xs:enumeration value="AdminAuthority"/>
-					<xs:enumeration value="Assessor"/>
-					<xs:enumeration value="Author"/>
-					<xs:enumeration value="Candidate"/>
-					<xs:enumeration value="InvigilatorProctor"/>
-					<xs:enumeration value="Psychometrician"/>
-					<xs:enumeration value="Scorer"/>
-					<xs:enumeration value="Tutor"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:complexType>
-	<!-- ****************** -->
-	<!-- ** itemfeedback ** -->
-	<!-- ****************** -->
-	<xs:complexType name="itemfeedbackType">
-		<xs:choice maxOccurs="unbounded">
-			<xs:choice>
-				<xs:element name="flow_mat" type="flow_matType"/>
-				<xs:element name="material" type="materialType"/>
-			</xs:choice>
-			<xs:element name="solution" type="solutionType"/>
-			<xs:element name="hint" type="hintType"/>
-		</xs:choice>
-		<xs:attribute name="view" default="All">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="All"/>
-					<xs:enumeration value="Administrator"/>
-					<xs:enumeration value="AdminAuthority"/>
-					<xs:enumeration value="Assessor"/>
-					<xs:enumeration value="Author"/>
-					<xs:enumeration value="Candidate"/>
-					<xs:enumeration value="InvigilatorProctor"/>
-					<xs:enumeration value="Psychometrician"/>
-					<xs:enumeration value="Scorer"/>
-					<xs:enumeration value="Tutor"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="ident" type="xs:string" use="required"/>
-		<xs:attribute name="title" type="xs:string"/>
-	</xs:complexType>
-	<!-- ****************** -->
-	<!-- ** itemmetadata ** -->
-	<!-- ****************** -->
-	<xs:complexType name="itemmetadataType">
-		<xs:sequence>
-			<xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element ref="qmd_computerscored" minOccurs="0"/>
-			<xs:element ref="qmd_feedbackpermitted" minOccurs="0"/>
-			<xs:element ref="qmd_hintspermitted" minOccurs="0"/>
-			<xs:element ref="qmd_itemtype" minOccurs="0"/>
-			<xs:element ref="qmd_levelofdifficulty" minOccurs="0"/>
-			<xs:element ref="qmd_maximumscore" minOccurs="0"/>
-			<xs:element ref="qmd_renderingtype" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element ref="qmd_responsetype" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element ref="qmd_scoringpermitted" minOccurs="0"/>
-			<xs:element ref="qmd_solutionspermitted" minOccurs="0"/>
-			<xs:element ref="qmd_status" minOccurs="0"/>
-			<xs:element ref="qmd_timedependence" minOccurs="0"/>
-			<xs:element ref="qmd_timelimit" minOccurs="0"/>
-			<xs:element ref="qmd_toolvendor" minOccurs="0"/>
-			<xs:element ref="qmd_topic" minOccurs="0"/>
-			<xs:element ref="qmd_weighting" minOccurs="0"/>
-			<xs:element ref="qmd_material" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element ref="qmd_typeofsolution" minOccurs="0"/>
-		</xs:sequence>
-	</xs:complexType>
-	<!-- ************************ -->
-	<!-- ** itemproc_extension ** -->
-	<!-- ************************ -->
-	<xs:complexType name="itemproc_extensionType" mixed="true">
-		<xs:sequence>
-			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:anyAttribute processContents="lax"/>
-	</xs:complexType>
-	<!-- ************* -->
-	<!-- ** itemref ** -->
-	<!-- ************* -->
-	<xs:complexType name="itemrefType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="linkrefid" type="xs:string" use="required"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- **************** -->
-	<!-- ** itemrubric ** -->
-	<!-- **************** -->
-	<xs:complexType name="itemrubricType">
-		<xs:sequence>
-			<xs:element name="material" type="materialType"/>
-		</xs:sequence>
-		<xs:attribute name="view" default="All">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="All"/>
-					<xs:enumeration value="Administrator"/>
-					<xs:enumeration value="AdminAuthority"/>
-					<xs:enumeration value="Assessor"/>
-					<xs:enumeration value="Author"/>
-					<xs:enumeration value="Candidate"/>
-					<xs:enumeration value="InvigilatorProctor"/>
-					<xs:enumeration value="Psychometrician"/>
-					<xs:enumeration value="Scorer"/>
-					<xs:enumeration value="Tutor"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:complexType>
-	<!-- *************** -->
-	<!-- ** map_input ** -->
-	<!-- *************** -->
-	<xs:complexType name="map_inputType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- **************** -->
-	<!-- ** map_output ** -->
-	<!-- **************** -->
-	<xs:complexType name="map_outputType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ******************* -->
-	<!-- ** mat_extension ** -->
-	<!-- ******************* -->
-	<xs:complexType name="mat_extensionType" mixed="true">
-		<xs:sequence>
-			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:anyAttribute processContents="lax"/>
-	</xs:complexType>
-	<!-- *************** -->
-	<!-- ** matapplet ** -->
-	<!-- *************** -->
-	<xs:complexType name="matappletType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="label" type="xs:string"/>
-				<xs:attribute name="uri" type="xs:string"/>
-				<xs:attribute name="y0" type="xs:string"/>
-				<xs:attribute name="height" type="xs:string"/>
-				<xs:attribute name="width" type="xs:string"/>
-				<xs:attribute name="x0" type="xs:string"/>
-				<xs:attribute name="embedded" type="xs:string" default="base64"/>
-				<xs:attribute name="entityref" type="xs:ENTITY"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ******************** -->
-	<!-- ** matapplication ** -->
-	<!-- ******************** -->
-	<xs:complexType name="matapplicationType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="apptype" type="xs:string"/>
-				<xs:attribute name="label" type="xs:string"/>
-				<xs:attribute name="uri" type="xs:string"/>
-				<xs:attribute name="embedded" type="xs:string" default="base64"/>
-				<xs:attribute name="entityref" type="xs:ENTITY"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ************** -->
-	<!-- ** mataudio ** -->
-	<!-- ************** -->
-	<xs:complexType name="mataudioType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="audiotype" type="xs:string" default="audio/base"/>
-				<xs:attribute name="label" type="xs:string"/>
-				<xs:attribute name="uri" type="xs:string"/>
-				<xs:attribute name="embedded" type="xs:string" default="base64"/>
-				<xs:attribute name="entityref" type="xs:ENTITY"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ************** -->
-	<!-- ** matbreak ** -->
-	<!-- ************** -->
-	<xs:complexType name="matbreakType"/>
-	<!-- *************** -->
-	<!-- ** matemtext ** -->
-	<!-- *************** -->
-	<xs:complexType name="matemtextType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="texttype" type="xs:string" default="text/plain"/>
-				<xs:attribute name="label" type="xs:string"/>
-				<xs:attribute name="charset" type="xs:string" default="ascii-us"/>
-				<xs:attribute name="uri" type="xs:string"/>
-				<xs:attribute ref="x:space" default="default"/>
-				<xs:attribute ref="x:lang"/>
-				<xs:attribute name="entityref" type="xs:ENTITY"/>
-				<xs:attribute name="width" type="xs:string"/>
-				<xs:attribute name="height" type="xs:string"/>
-				<xs:attribute name="y0" type="xs:string"/>
-				<xs:attribute name="x0" type="xs:string"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ************** -->
-	<!-- ** material ** -->
-	<!-- ************** -->
-	<xs:complexType name="materialType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:choice maxOccurs="unbounded">
-				<xs:element name="mattext" type="mattextType"/>
-				<xs:element name="matemtext" type="matemtextType"/>
-				<xs:element name="matimage" type="matimageType"/>
-				<xs:element name="mataudio" type="mataudioType"/>
-				<xs:element name="matvideo" type="matvideoType"/>
-				<xs:element name="matapplet" type="matappletType"/>
-				<xs:element name="matapplication" type="matapplicationType"/>
-				<xs:element name="matref" type="matrefType"/>
-				<xs:element ref="matbreak"/>
-				<xs:element ref="mat_extension"/>
-			</xs:choice>
-			<xs:element name="altmaterial" type="altmaterialType" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:attribute name="label" type="xs:string"/>
-		<xs:attribute ref="x:lang"/>
-	</xs:complexType>
-	<!-- ****************** -->
-	<!-- ** material_ref ** -->
-	<!-- ****************** -->
-	<xs:complexType name="material_refType">
-		<xs:attribute name="linkrefid" type="xs:string" use="required"/>
-	</xs:complexType>
-	<!-- ************** -->
-	<!-- ** matimage ** -->
-	<!-- ************** -->
-	<xs:complexType name="matimageType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="imagtype" type="xs:string" default="image/jpeg"/>
-				<xs:attribute name="label" type="xs:string"/>
-				<xs:attribute name="height" type="xs:string"/>
-				<xs:attribute name="uri" type="xs:string"/>
-				<xs:attribute name="embedded" type="xs:string" default="base64"/>
-				<xs:attribute name="width" type="xs:string"/>
-				<xs:attribute name="y0" type="xs:string"/>
-				<xs:attribute name="x0" type="xs:string"/>
-				<xs:attribute name="entityref" type="xs:ENTITY"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ************ -->
-	<!-- ** matref ** -->
-	<!-- ************ -->
-	<xs:complexType name="matrefType">
-		<xs:attribute name="linkrefid" type="xs:string" use="required"/>
-	</xs:complexType>
-	<!-- ************* -->
-	<!-- ** mattext ** -->
-	<!-- ************* -->
-	<xs:complexType name="mattextType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="texttype" type="xs:string" default="text/plain"/>
-				<xs:attribute name="label" type="xs:string"/>
-				<xs:attribute name="charset" type="xs:string" default="ascii-us"/>
-				<xs:attribute name="uri" type="xs:string"/>
-				<xs:attribute ref="x:space" default="default"/>
-				<xs:attribute ref="x:lang"/>
-				<xs:attribute name="entityref" type="xs:ENTITY"/>
-				<xs:attribute name="width" type="xs:string"/>
-				<xs:attribute name="height" type="xs:string"/>
-				<xs:attribute name="y0" type="xs:string"/>
-				<xs:attribute name="x0" type="xs:string"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ************** -->
-	<!-- ** matvideo ** -->
-	<!-- ************** -->
-	<xs:complexType name="matvideoType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="videotype" type="xs:string" default="video/avi"/>
-				<xs:attribute name="label" type="xs:string"/>
-				<xs:attribute name="uri" type="xs:string"/>
-				<xs:attribute name="width" type="xs:string"/>
-				<xs:attribute name="height" type="xs:string"/>
-				<xs:attribute name="y0" type="xs:string"/>
-				<xs:attribute name="x0" type="xs:string"/>
-				<xs:attribute name="embedded" type="xs:string" default="base64"/>
-				<xs:attribute name="entityref" type="xs:ENTITY"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ********* -->
-	<!-- ** not ** -->
-	<!-- ********* -->
-	<xs:complexType name="notType">
-		<xs:choice>
-			<xs:element name="and" type="andType"/>
-			<xs:element name="or" type="orType"/>
-			<xs:element name="not" type="notType"/>
-			<xs:element name="unanswered" type="unansweredType"/>
-			<xs:element ref="other"/>
-			<xs:element name="varequal" type="varequalType"/>
-			<xs:element name="varlt" type="varltType"/>
-			<xs:element name="varlte" type="varlteType"/>
-			<xs:element name="vargt" type="vargtType"/>
-			<xs:element name="vargte" type="vargteType"/>
-			<xs:element name="varsubset" type="varsubsetType"/>
-			<xs:element name="varinside" type="varinsideType"/>
-			<xs:element name="varsubstring" type="varsubstringType"/>
-			<xs:element name="durequal" type="durequalType"/>
-			<xs:element name="durlt" type="durltType"/>
-			<xs:element name="durlte" type="durlteType"/>
-			<xs:element name="durgt" type="durgtType"/>
-			<xs:element name="durgte" type="durgteType"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- ***************** -->
-	<!-- ** not_objects ** -->
-	<!-- ***************** -->
-	<xs:complexType name="not_objectsType">
-		<xs:choice>
-			<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
-			<xs:element name="and_objects" type="and_objectsType"/>
-			<xs:element name="or_objects" type="or_objectsType"/>
-			<xs:element name="not_objects" type="not_objectsType"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- ******************* -->
-	<!-- ** not_selection ** -->
-	<!-- ******************* -->
-	<xs:complexType name="not_selectionType">
-		<xs:choice>
-			<xs:element name="selection_metadata" type="selection_metadataType"/>
-			<xs:element name="and_selection" type="and_selectionType"/>
-			<xs:element name="or_selection" type="or_selectionType"/>
-			<xs:element name="not_selection" type="not_selectionType"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- ************** -->
-	<!-- ** not_test ** -->
-	<!-- ************** -->
-	<xs:complexType name="not_testType">
-		<xs:choice>
-			<xs:element name="variable_test" type="variable_testType"/>
-			<xs:element name="and_test" type="and_testType"/>
-			<xs:element name="or_test" type="or_testType"/>
-			<xs:element name="not_test" type="not_testType"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- **************** -->
-	<!-- ** objectbank ** -->
-	<!-- **************** -->
-	<xs:complexType name="objectbankType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:choice maxOccurs="unbounded">
-				<xs:element name="section" type="sectionType"/>
-				<xs:element name="item" type="itemType"/>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute name="ident" type="xs:string" use="required"/>
-	</xs:complexType>
-	<!-- **************** -->
-	<!-- ** objectives ** -->
-	<!-- **************** -->
-	<xs:complexType name="objectivesType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:choice>
-				<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
-				<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute name="view" default="All">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="All"/>
-					<xs:enumeration value="Administrator"/>
-					<xs:enumeration value="AdminAuthority"/>
-					<xs:enumeration value="Assessor"/>
-					<xs:enumeration value="Author"/>
-					<xs:enumeration value="Candidate"/>
-					<xs:enumeration value="InvigilatorProctor"/>
-					<xs:enumeration value="Psychometrician"/>
-					<xs:enumeration value="Scorer"/>
-					<xs:enumeration value="Tutor"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:complexType>
-	<!-- *********************** -->
-	<!-- ** objects_condition ** -->
-	<!-- *********************** -->
-	<xs:complexType name="objects_conditionType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:choice minOccurs="0">
-				<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
-				<xs:element name="and_objects" type="and_objectsType"/>
-				<xs:element name="or_objects" type="or_objectsType"/>
-				<xs:element name="not_objects" type="not_objectsType"/>
-			</xs:choice>
-			<xs:element name="objects_parameter" type="objects_parameterType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="map_input" type="map_inputType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element ref="objectscond_extension" minOccurs="0"/>
-		</xs:sequence>
-	</xs:complexType>
-	<!-- *********************** -->
-	<!-- ** objects_parameter ** -->
-	<!-- *********************** -->
-	<xs:complexType name="objects_parameterType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="pname" type="xs:string" use="required"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ******** -->
-	<!-- ** or ** -->
-	<!-- ******** -->
-	<xs:complexType name="orType">
-		<xs:choice maxOccurs="unbounded">
-			<xs:element name="not" type="notType"/>
-			<xs:element name="and" type="andType"/>
-			<xs:element name="or" type="orType"/>
-			<xs:element name="unanswered" type="unansweredType"/>
-			<xs:element ref="other"/>
-			<xs:element name="varequal" type="varequalType"/>
-			<xs:element name="varlt" type="varltType"/>
-			<xs:element name="varlte" type="varlteType"/>
-			<xs:element name="vargt" type="vargtType"/>
-			<xs:element name="vargte" type="vargteType"/>
-			<xs:element name="varsubset" type="varsubsetType"/>
-			<xs:element name="varinside" type="varinsideType"/>
-			<xs:element name="varsubstring" type="varsubstringType"/>
-			<xs:element name="durequal" type="durequalType"/>
-			<xs:element name="durlt" type="durltType"/>
-			<xs:element name="durlte" type="durlteType"/>
-			<xs:element name="durgt" type="durgtType"/>
-			<xs:element name="durgte" type="durgteType"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- **************** -->
-	<!-- ** or_objects ** -->
-	<!-- **************** -->
-	<xs:complexType name="or_objectsType">
-		<xs:choice maxOccurs="unbounded">
-			<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
-			<xs:element name="and_objects" type="and_objectsType"/>
-			<xs:element name="or_objects" type="or_objectsType"/>
-			<xs:element name="not_objects" type="not_objectsType"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- ****************** -->
-	<!-- ** or_selection ** -->
-	<!-- ****************** -->
-	<xs:complexType name="or_selectionType">
-		<xs:choice maxOccurs="unbounded">
-			<xs:element name="selection_metadata" type="selection_metadataType"/>
-			<xs:element name="and_selection" type="and_selectionType"/>
-			<xs:element name="or_selection" type="or_selectionType"/>
-			<xs:element name="not_selection" type="not_selectionType"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- ************* -->
-	<!-- ** or_test ** -->
-	<!-- ************* -->
-	<xs:complexType name="or_testType">
-		<xs:choice maxOccurs="unbounded">
-			<xs:element name="variable_test" type="variable_testType"/>
-			<xs:element name="and_test" type="and_testType"/>
-			<xs:element name="or_test" type="or_testType"/>
-			<xs:element name="not_test" type="not_testType"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- *********** -->
-	<!-- ** order ** -->
-	<!-- *********** -->
-	<xs:complexType name="orderType">
-		<xs:sequence>
-			<xs:element ref="order_extension" minOccurs="0"/>
-		</xs:sequence>
-		<xs:attribute name="order_type" type="xs:string" use="required"/>
-	</xs:complexType>
-	<!-- ********************* -->
-	<!-- ** order_extension ** -->
-	<!-- ********************* -->
-	<xs:complexType name="order_extensionType" mixed="true">
-		<xs:sequence>
-			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:anyAttribute processContents="lax"/>
-	</xs:complexType>
-	<!-- ************** -->
-	<!-- ** outcomes ** -->
-	<!-- ************** -->
-	<xs:complexType name="outcomesType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:sequence maxOccurs="unbounded">
-				<xs:element name="decvar" type="decvarType"/>
-				<xs:element name="interpretvar" type="interpretvarType" minOccurs="0" maxOccurs="unbounded"/>
-			</xs:sequence>
-		</xs:sequence>
-	</xs:complexType>
-	<!-- **************************** -->
-	<!-- ** outcomes_feedback_test ** -->
-	<!-- **************************** -->
-	<xs:complexType name="outcomes_feedback_testType">
-		<xs:sequence>
-			<xs:element name="test_variable" type="test_variableType"/>
-			<xs:element name="displayfeedback" type="displayfeedbackType" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:attribute name="title" type="xs:string"/>
-	</xs:complexType>
-	<!-- *********************** -->
-	<!-- ** outcomes_metadata ** -->
-	<!-- *********************** -->
-	<xs:complexType name="outcomes_metadataType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="mdname" type="xs:string" use="required"/>
-				<xs:attribute name="mdoperator" use="required">
-					<xs:simpleType>
-						<xs:restriction base="xs:NMTOKEN">
-							<xs:enumeration value="EQ"/>
-							<xs:enumeration value="NEQ"/>
-							<xs:enumeration value="LT"/>
-							<xs:enumeration value="LTE"/>
-							<xs:enumeration value="GT"/>
-							<xs:enumeration value="GTE"/>
-						</xs:restriction>
-					</xs:simpleType>
-				</xs:attribute>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ************************* -->
-	<!-- ** outcomes_processing ** -->
-	<!-- ************************* -->
-	<xs:complexType name="outcomes_processingType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:element name="outcomes" type="outcomesType"/>
-			<xs:element name="objects_condition" type="objects_conditionType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="processing_parameter" type="processing_parameterType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="map_output" type="map_outputType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="outcomes_feedback_test" type="outcomes_feedback_testType" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:attribute name="scoremodel" type="xs:string"/>
-	</xs:complexType>
-	<!-- ****************** -->
-	<!-- ** presentation ** -->
-	<!-- ****************** -->
-	<xs:complexType name="presentationType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:choice>
-				<xs:element name="flow" type="flowType"/>
-				<xs:choice maxOccurs="unbounded">
-					<xs:element name="material" type="materialType"/>
-					<xs:element name="response_lid" type="response_lidType"/>
-					<xs:element name="response_xy" type="response_xyType"/>
-					<xs:element name="response_str" type="response_strType"/>
-					<xs:element name="response_num" type="response_numType"/>
-					<xs:element name="response_grp" type="response_grpType"/>
-					<xs:element ref="response_extension"/>
-				</xs:choice>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute name="label" type="xs:string"/>
-		<xs:attribute ref="x:lang"/>
-		<xs:attribute name="y0" type="xs:string"/>
-		<xs:attribute name="x0" type="xs:string"/>
-		<xs:attribute name="width" type="xs:string"/>
-		<xs:attribute name="height" type="xs:string"/>
-	</xs:complexType>
-	<!-- *************************** -->
-	<!-- ** presentation_material ** -->
-	<!-- *************************** -->
-	<xs:complexType name="presentation_materialType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
-		</xs:sequence>
-	</xs:complexType>
-	<!-- ************************** -->
-	<!-- ** processing_parameter ** -->
-	<!-- ************************** -->
-	<xs:complexType name="processing_parameterType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="pname" type="xs:string" use="required"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- **************** -->
-	<!-- ** qticomment ** -->
-	<!-- **************** -->
-	<xs:complexType name="qticommentType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute ref="x:lang"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ***************** -->
-	<!-- ** qtimetadata ** -->
-	<!-- ***************** -->
-	<xs:complexType name="qtimetadataType">
-		<xs:sequence>
-			<xs:element name="vocabulary" type="vocabularyType" minOccurs="0"/>
-			<xs:element name="qtimetadatafield" type="qtimetadatafieldType" maxOccurs="unbounded"/>
-		</xs:sequence>
-	</xs:complexType>
-	<!-- ********************** -->
-	<!-- ** qtimetadatafield ** -->
-	<!-- ********************** -->
-	<xs:complexType name="qtimetadatafieldType">
-		<xs:sequence>
-			<xs:element ref="fieldlabel"/>
-			<xs:element ref="fieldentry"/>
-		</xs:sequence>
-		<xs:attribute ref="x:lang"/>
-	</xs:complexType>
-	<!-- ********************* -->
-	<!-- ** questestinterop ** -->
-	<!-- ********************* -->
-	<xs:complexType name="questestinteropType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:choice>
-				<xs:element name="objectbank" type="objectbankType"/>
-				<xs:element name="assessment" type="assessmentType"/>
-				<xs:choice maxOccurs="unbounded">
-					<xs:element name="section" type="sectionType"/>
-					<xs:element name="item" type="itemType"/>
-				</xs:choice>
-			</xs:choice>
-		</xs:sequence>
-	</xs:complexType>
-	<!-- *************** -->
-	<!-- ** reference ** -->
-	<!-- *************** -->
-	<xs:complexType name="referenceType">
-		<xs:choice maxOccurs="unbounded">
-			<xs:element name="qticomment" type="qticommentType"/>
-			<xs:element name="material" type="materialType"/>
-			<xs:element name="mattext" type="mattextType"/>
-			<xs:element name="matemtext" type="matemtextType"/>
-			<xs:element name="matimage" type="matimageType"/>
-			<xs:element name="mataudio" type="mataudioType"/>
-			<xs:element name="matvideo" type="matvideoType"/>
-			<xs:element name="matapplet" type="matappletType"/>
-			<xs:element name="matapplication" type="matapplicationType"/>
-			<xs:element ref="matbreak"/>
-			<xs:element ref="mat_extension"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- ******************* -->
-	<!-- ** render_choice ** -->
-	<!-- ******************* -->
-	<xs:complexType name="render_choiceType">
-		<xs:sequence>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element name="material" type="materialType"/>
-				<xs:element name="material_ref" type="material_refType"/>
-				<xs:element name="response_label" type="response_labelType"/>
-				<xs:element name="flow_label" type="flow_labelType"/>
-			</xs:choice>
-			<xs:element ref="response_na" minOccurs="0"/>
-		</xs:sequence>
-		<xs:attribute name="shuffle" default="No">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="minnumber" type="xs:string"/>
-		<xs:attribute name="maxnumber" type="xs:string"/>
-	</xs:complexType>
-	<!-- ********************** -->
-	<!-- ** render_extension ** -->
-	<!-- ********************** -->
-	<xs:complexType name="render_extensionType" mixed="true">
-		<xs:sequence>
-			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:anyAttribute processContents="lax"/>
-	</xs:complexType>
-	<!-- **************** -->
-	<!-- ** render_fib ** -->
-	<!-- **************** -->
-	<xs:complexType name="render_fibType">
-		<xs:sequence>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element name="material" type="materialType"/>
-				<xs:element name="material_ref" type="material_refType"/>
-				<xs:element name="response_label" type="response_labelType"/>
-				<xs:element name="flow_label" type="flow_labelType"/>
-			</xs:choice>
-			<xs:element ref="response_na" minOccurs="0"/>
-		</xs:sequence>
-		<xs:attribute name="encoding" type="xs:string" default="UTF_8"/>
-		<xs:attribute name="fibtype" default="String">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="String"/>
-					<xs:enumeration value="Integer"/>
-					<xs:enumeration value="Decimal"/>
-					<xs:enumeration value="Scientific"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="rows" type="xs:string"/>
-		<xs:attribute name="maxchars" type="xs:string"/>
-		<xs:attribute name="prompt">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Box"/>
-					<xs:enumeration value="Dashline"/>
-					<xs:enumeration value="Asterisk"/>
-					<xs:enumeration value="Underline"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="columns" type="xs:string"/>
-		<xs:attribute name="charset" type="xs:string" default="ascii-us"/>
-		<xs:attribute name="maxnumber" type="xs:string"/>
-		<xs:attribute name="minnumber" type="xs:string"/>
-	</xs:complexType>
-	<!-- ******************** -->
-	<!-- ** render_hotspot ** -->
-	<!-- ******************** -->
-	<xs:complexType name="render_hotspotType">
-		<xs:sequence>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element name="material" type="materialType"/>
-				<xs:element name="material_ref" type="material_refType"/>
-				<xs:element name="response_label" type="response_labelType"/>
-				<xs:element name="flow_label" type="flow_labelType"/>
-			</xs:choice>
-			<xs:element ref="response_na" minOccurs="0"/>
-		</xs:sequence>
-		<xs:attribute name="maxnumber" type="xs:string"/>
-		<xs:attribute name="minnumber" type="xs:string"/>
-		<xs:attribute name="showdraw" default="No">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:complexType>
-	<!-- ******************* -->
-	<!-- ** render_slider ** -->
-	<!-- ******************* -->
-	<xs:complexType name="render_sliderType">
-		<xs:sequence>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element name="material" type="materialType"/>
-				<xs:element name="material_ref" type="material_refType"/>
-				<xs:element name="response_label" type="response_labelType"/>
-				<xs:element name="flow_label" type="flow_labelType"/>
-			</xs:choice>
-			<xs:element ref="response_na" minOccurs="0"/>
-		</xs:sequence>
-		<xs:attribute name="orientation" default="Horizontal">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Horizontal"/>
-					<xs:enumeration value="Vertical"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="lowerbound" type="xs:string" use="required"/>
-		<xs:attribute name="upperbound" type="xs:string" use="required"/>
-		<xs:attribute name="step" type="xs:string"/>
-		<xs:attribute name="startval" type="xs:string"/>
-		<xs:attribute name="steplabel" default="No">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="maxnumber" type="xs:string"/>
-		<xs:attribute name="minnumber" type="xs:string"/>
-	</xs:complexType>
-	<!-- ************************ -->
-	<!-- ** respcond_extension ** -->
-	<!-- ************************ -->
-	<xs:complexType name="respcond_extensionType" mixed="true">
-		<xs:sequence>
-			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:anyAttribute processContents="lax"/>
-	</xs:complexType>
-	<!-- ******************* -->
-	<!-- ** respcondition ** -->
-	<!-- ******************* -->
-	<xs:complexType name="respconditionType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:element name="conditionvar" type="conditionvarType"/>
-			<xs:element name="setvar" type="setvarType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="displayfeedback" type="displayfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element ref="respcond_extension" minOccurs="0"/>
-		</xs:sequence>
-		<xs:attribute name="continue" default="No">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="title" type="xs:string"/>
-	</xs:complexType>
-	<!-- ************************ -->
-	<!-- ** response_extension ** -->
-	<!-- ************************ -->
-	<xs:complexType name="response_extensionType" mixed="true">
-		<xs:sequence>
-			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:anyAttribute processContents="lax"/>
-	</xs:complexType>
-	<!-- ****************** -->
-	<!-- ** response_grp ** -->
-	<!-- ****************** -->
-	<xs:complexType name="response_grpType">
-		<xs:sequence>
-			<xs:choice minOccurs="0">
-				<xs:element name="material" type="materialType"/>
-				<xs:element name="material_ref" type="material_refType"/>
-			</xs:choice>
-			<xs:choice>
-				<xs:element name="render_choice" type="render_choiceType"/>
-				<xs:element name="render_hotspot" type="render_hotspotType"/>
-				<xs:element name="render_slider" type="render_sliderType"/>
-				<xs:element name="render_fib" type="render_fibType"/>
-				<xs:element ref="render_extension"/>
-			</xs:choice>
-			<xs:choice minOccurs="0">
-				<xs:element name="material" type="materialType"/>
-				<xs:element name="material_ref" type="material_refType"/>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute name="rcardinality" default="Single">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Single"/>
-					<xs:enumeration value="Multiple"/>
-					<xs:enumeration value="Ordered"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="ident" type="xs:string" use="required"/>
-		<xs:attribute name="rtiming" default="No">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:complexType>
-	<!-- ************************ -->
-	<!-- ** response_lableType ** -->
-	<!-- ************************ -->
-	<xs:complexType name="response_labelType" mixed="true">
-		<xs:choice minOccurs="0" maxOccurs="unbounded">
-			<xs:element name="qticomment" type="qticommentType"/>
-			<xs:element name="material" type="materialType"/>
-			<xs:element name="material_ref" type="material_refType"/>
-			<xs:element name="flow_mat" type="flow_matType"/>
-		</xs:choice>
-		<xs:attribute name="rshuffle" default="Yes">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="rarea" default="Ellipse">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Ellipse"/>
-					<xs:enumeration value="Rectangle"/>
-					<xs:enumeration value="Bounded"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="rrange" default="Exact">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Exact"/>
-					<xs:enumeration value="Range"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="labelrefid" type="xs:string"/>
-		<xs:attribute name="ident" type="xs:string" use="required"/>
-		<xs:attribute name="match_group" type="xs:string"/>
-		<xs:attribute name="match_max" type="xs:string"/>
-	</xs:complexType>
-	<!-- ****************** -->
-	<!-- ** response_lid ** -->
-	<!-- ****************** -->
-	<xs:complexType name="response_lidType">
-		<xs:sequence>
-			<xs:choice minOccurs="0">
-				<xs:element name="material" type="materialType"/>
-				<xs:element name="material_ref" type="material_refType"/>
-			</xs:choice>
-			<xs:choice>
-				<xs:element name="render_choice" type="render_choiceType"/>
-				<xs:element name="render_hotspot" type="render_hotspotType"/>
-				<xs:element name="render_slider" type="render_sliderType"/>
-				<xs:element name="render_fib" type="render_fibType"/>
-				<xs:element ref="render_extension"/>
-			</xs:choice>
-			<xs:choice minOccurs="0">
-				<xs:element name="material" type="materialType"/>
-				<xs:element name="material_ref" type="material_refType"/>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute name="rcardinality" default="Single">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Single"/>
-					<xs:enumeration value="Multiple"/>
-					<xs:enumeration value="Ordered"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="rtiming" default="No">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="ident" type="xs:string" use="required"/>
-	</xs:complexType>
-	<!-- ***************** -->
-	<!-- ** response_na ** -->
-	<!-- ***************** -->
-	<xs:complexType name="response_naType"/>
-	<!-- ****************** -->
-	<!-- ** response_num ** -->
-	<!-- ****************** -->
-	<xs:complexType name="response_numType">
-		<xs:sequence>
-			<xs:choice minOccurs="0">
-				<xs:element name="material" type="materialType"/>
-				<xs:element name="material_ref" type="material_refType"/>
-			</xs:choice>
-			<xs:choice>
-				<xs:element name="render_choice" type="render_choiceType"/>
-				<xs:element name="render_hotspot" type="render_hotspotType"/>
-				<xs:element name="render_slider" type="render_sliderType"/>
-				<xs:element name="render_fib" type="render_fibType"/>
-				<xs:element ref="render_extension"/>
-			</xs:choice>
-			<xs:choice minOccurs="0">
-				<xs:element name="material" type="materialType"/>
-				<xs:element name="material_ref" type="material_refType"/>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute name="numtype" default="Integer">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Integer"/>
-					<xs:enumeration value="Decimal"/>
-					<xs:enumeration value="Scientific"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="rcardinality" default="Single">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Single"/>
-					<xs:enumeration value="Multiple"/>
-					<xs:enumeration value="Ordered"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="ident" type="xs:string" use="required"/>
-		<xs:attribute name="rtiming" default="No">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:complexType>
-	<!-- ****************** -->
-	<!-- ** response_str ** -->
-	<!-- ****************** -->
-	<xs:complexType name="response_strType">
-		<xs:sequence>
-			<xs:choice minOccurs="0">
-				<xs:element name="material" type="materialType"/>
-				<xs:element name="material_ref" type="material_refType"/>
-			</xs:choice>
-			<xs:choice>
-				<xs:element name="render_choice" type="render_choiceType"/>
-				<xs:element name="render_hotspot" type="render_hotspotType"/>
-				<xs:element name="render_slider" type="render_sliderType"/>
-				<xs:element name="render_fib" type="render_fibType"/>
-				<xs:element ref="render_extension"/>
-			</xs:choice>
-			<xs:choice minOccurs="0">
-				<xs:element name="material" type="materialType"/>
-				<xs:element name="material_ref" type="material_refType"/>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute name="rcardinality" default="Single">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Single"/>
-					<xs:enumeration value="Multiple"/>
-					<xs:enumeration value="Ordered"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="ident" type="xs:string" use="required"/>
-		<xs:attribute name="rtiming" default="No">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:complexType>
-	<!-- ***************** -->
-	<!-- ** response_xy ** -->
-	<!-- ***************** -->
-	<xs:complexType name="response_xyType">
-		<xs:sequence>
-			<xs:choice minOccurs="0">
-				<xs:element name="material" type="materialType"/>
-				<xs:element name="material_ref" type="material_refType"/>
-			</xs:choice>
-			<xs:choice>
-				<xs:element name="render_choice" type="render_choiceType"/>
-				<xs:element name="render_hotspot" type="render_hotspotType"/>
-				<xs:element name="render_slider" type="render_sliderType"/>
-				<xs:element name="render_fib" type="render_fibType"/>
-				<xs:element ref="render_extension"/>
-			</xs:choice>
-			<xs:choice minOccurs="0">
-				<xs:element name="material" type="materialType"/>
-				<xs:element name="material_ref" type="material_refType"/>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute name="rcardinality" default="Single">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Single"/>
-					<xs:enumeration value="Multiple"/>
-					<xs:enumeration value="Ordered"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="rtiming" default="No">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="ident" type="xs:string" use="required"/>
-	</xs:complexType>
-	<!-- ******************* -->
-	<!-- ** resprocessing ** -->
-	<!-- ******************* -->
-	<xs:complexType name="resprocessingType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:element name="outcomes" type="outcomesType"/>
-			<xs:choice maxOccurs="unbounded">
-				<xs:element name="respcondition" type="respconditionType"/>
-				<xs:element ref="itemproc_extension"/>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute name="scoremodel" type="xs:string"/>
-	</xs:complexType>
-	<!-- ************ -->
-	<!-- ** rubric ** -->
-	<!-- ************ -->
-	<xs:complexType name="rubricType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:choice>
-				<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
-				<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute name="view" default="All">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="All"/>
-					<xs:enumeration value="Administrator"/>
-					<xs:enumeration value="AdminAuthority"/>
-					<xs:enumeration value="Assessor"/>
-					<xs:enumeration value="Author"/>
-					<xs:enumeration value="Candidate"/>
-					<xs:enumeration value="InvigilatorProctor"/>
-					<xs:enumeration value="Psychometrician"/>
-					<xs:enumeration value="Scorer"/>
-					<xs:enumeration value="Tutor"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:complexType>
-	<!-- ************* -->
-	<!-- ** section ** -->
-	<!-- ************* -->
-	<xs:complexType name="sectionType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:element ref="duration" minOccurs="0"/>
-			<xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="objectives" type="objectivesType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="sectioncontrol" type="sectioncontrolType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element ref="sectionprecondition" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element ref="sectionpostcondition" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="rubric" type="rubricType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="presentation_material" type="presentation_materialType" minOccurs="0"/>
-			<xs:element name="outcomes_processing" type="outcomes_processingType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element ref="sectionproc_extension" minOccurs="0"/>
-			<xs:element name="sectionfeedback" type="sectionfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="selection_ordering" type="selection_orderingType" minOccurs="0"/>
-			<xs:element name="reference" type="referenceType" minOccurs="0"/>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element name="itemref" type="itemrefType"/>
-				<xs:element name="item" type="itemType"/>
-				<xs:element name="sectionref" type="sectionrefType"/>
-				<xs:element name="section" type="sectionType"/>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute name="ident" type="xs:string" use="required"/>
-		<xs:attribute name="title" type="xs:string"/>
-		<xs:attribute ref="x:lang"/>
-	</xs:complexType>
-	<!-- ******************** -->
-	<!-- ** sectioncontrol ** -->
-	<!-- ******************** -->
-	<xs:complexType name="sectioncontrolType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-		</xs:sequence>
-		<xs:attribute name="feedbackswitch" default="Yes">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="hintswitch" default="Yes">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="solutionswitch" default="Yes">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Yes"/>
-					<xs:enumeration value="No"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="view" default="All">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="All"/>
-					<xs:enumeration value="Administrator"/>
-					<xs:enumeration value="AdminAuthority"/>
-					<xs:enumeration value="Assessor"/>
-					<xs:enumeration value="Author"/>
-					<xs:enumeration value="Candidate"/>
-					<xs:enumeration value="InvigilatorProctor"/>
-					<xs:enumeration value="Psychometrician"/>
-					<xs:enumeration value="Scorer"/>
-					<xs:enumeration value="Tutor"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:complexType>
-	<!-- ********************* -->
-	<!-- ** sectionfeedback ** -->
-	<!-- ********************* -->
-	<xs:complexType name="sectionfeedbackType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:choice>
-				<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
-				<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
-			</xs:choice>
-		</xs:sequence>
-		<xs:attribute name="view" default="All">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="All"/>
-					<xs:enumeration value="Administrator"/>
-					<xs:enumeration value="AdminAuthority"/>
-					<xs:enumeration value="Assessor"/>
-					<xs:enumeration value="Author"/>
-					<xs:enumeration value="Candidate"/>
-					<xs:enumeration value="InvigilatorProctor"/>
-					<xs:enumeration value="Psychometrician"/>
-					<xs:enumeration value="Scorer"/>
-					<xs:enumeration value="Tutor"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="ident" type="xs:string" use="required"/>
-		<xs:attribute name="title" type="xs:string"/>
-	</xs:complexType>
-	<!-- *************************** -->
-	<!-- ** sectionproc_extension ** -->
-	<!-- *************************** -->
-	<xs:complexType name="sectionproc_extensionType" mixed="true">
-		<xs:sequence>
-			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:anyAttribute processContents="lax"/>
-	</xs:complexType>
-	<!-- **************** -->
-	<!-- ** sectionref ** -->
-	<!-- **************** -->
-	<xs:complexType name="sectionrefType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="linkrefid" type="xs:string" use="required"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- *************** -->
-	<!-- ** selection ** -->
-	<!-- *************** -->
-	<xs:complexType name="selectionType">
-		<xs:sequence>
-			<xs:element ref="sourcebank_ref" minOccurs="0"/>
-			<xs:element ref="selection_number" minOccurs="0"/>
-			<xs:element name="selection_metadata" type="selection_metadataType" minOccurs="0"/>
-			<xs:choice minOccurs="0">
-				<xs:element name="and_selection" type="and_selectionType"/>
-				<xs:element name="or_selection" type="or_selectionType"/>
-				<xs:element name="not_selection" type="not_selectionType"/>
-				<xs:element ref="selection_extension"/>
-			</xs:choice>
-		</xs:sequence>
-	</xs:complexType>
-	<!-- ************************* -->
-	<!-- ** selection_extension ** -->
-	<!-- ************************* -->
-	<xs:complexType name="selection_extensionType" mixed="true">
-		<xs:sequence>
-			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:anyAttribute processContents="lax"/>
-	</xs:complexType>
-	<!-- ************************ -->
-	<!-- ** selection_metadata ** -->
-	<!-- ************************ -->
-	<xs:complexType name="selection_metadataType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="mdname" type="xs:string" use="required"/>
-				<xs:attribute name="mdoperator" use="required">
-					<xs:simpleType>
-						<xs:restriction base="xs:NMTOKEN">
-							<xs:enumeration value="EQ"/>
-							<xs:enumeration value="NEQ"/>
-							<xs:enumeration value="LT"/>
-							<xs:enumeration value="LTE"/>
-							<xs:enumeration value="GT"/>
-							<xs:enumeration value="GTE"/>
-						</xs:restriction>
-					</xs:simpleType>
-				</xs:attribute>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ************************ -->
-	<!-- ** selection_ordering ** -->
-	<!-- ************************ -->
-	<xs:complexType name="selection_orderingType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:element name="sequence_parameter" type="sequence_parameterType" minOccurs="0"/>
-			<xs:element name="selection" type="selectionType" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="order" type="orderType" minOccurs="0"/>
-		</xs:sequence>
-		<xs:attribute name="sequence_type" type="xs:string"/>
-	</xs:complexType>
-	<!-- ************************ -->
-	<!-- ** sequence_parameter ** -->
-	<!-- ************************ -->
-	<xs:complexType name="sequence_parameterType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="pname" type="xs:string" use="required"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ************ -->
-	<!-- ** setvar ** -->
-	<!-- ************ -->
-	<xs:complexType name="setvarType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
-				<xs:attribute name="action" default="Set">
-					<xs:simpleType>
-						<xs:restriction base="xs:NMTOKEN">
-							<xs:enumeration value="Set"/>
-							<xs:enumeration value="Add"/>
-							<xs:enumeration value="Subtract"/>
-							<xs:enumeration value="Multiply"/>
-							<xs:enumeration value="Divide"/>
-						</xs:restriction>
-					</xs:simpleType>
-				</xs:attribute>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ************** -->
-	<!-- ** solution ** -->
-	<!-- ************** -->
-	<xs:complexType name="solutionType">
-		<xs:sequence>
-			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
-			<xs:element name="solutionmaterial" type="solutionmaterialType" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:attribute name="feedbackstyle" default="Complete">
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:enumeration value="Complete"/>
-					<xs:enumeration value="Incremental"/>
-					<xs:enumeration value="Multilevel"/>
-					<xs:enumeration value="Proprietary"/>
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:complexType>
-	<!-- ********************** -->
-	<!-- ** solutionmaterial ** -->
-	<!-- ********************** -->
-	<xs:complexType name="solutionmaterialType">
-		<xs:choice>
-			<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
-			<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- ******************* -->
-	<!-- ** test_variable ** -->
-	<!-- ******************* -->
-	<xs:complexType name="test_variableType">
-		<xs:choice>
-			<xs:element name="variable_test" type="variable_testType"/>
-			<xs:element name="and_test" type="and_testType"/>
-			<xs:element name="or_test" type="or_testType"/>
-			<xs:element name="not_test" type="not_testType"/>
-		</xs:choice>
-	</xs:complexType>
-	<!-- **************** -->
-	<!-- ** unanswered ** -->
-	<!-- **************** -->
-	<xs:complexType name="unansweredType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="respident" type="xs:string" use="required"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ******************* -->
-	<!-- ** var_extension ** -->
-	<!-- ******************* -->
-	<xs:complexType name="var_extensionType" mixed="true">
-		<xs:sequence>
-			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-		<xs:anyAttribute processContents="lax"/>
-	</xs:complexType>
-	<!-- ************** -->
-	<!-- ** varequal ** -->
-	<!-- ************** -->
-	<xs:complexType name="varequalType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="case" default="No">
-					<xs:simpleType>
-						<xs:restriction base="xs:NMTOKEN">
-							<xs:enumeration value="Yes"/>
-							<xs:enumeration value="No"/>
-						</xs:restriction>
-					</xs:simpleType>
-				</xs:attribute>
-				<xs:attribute name="respident" type="xs:string" use="required"/>
-				<xs:attribute name="index" type="xs:string"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- *********** -->
-	<!-- ** vargt ** -->
-	<!-- *********** -->
-	<xs:complexType name="vargtType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="respident" type="xs:string" use="required"/>
-				<xs:attribute name="index" type="xs:string"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ************ -->
-	<!-- ** vargte ** -->
-	<!-- ************ -->
-	<xs:complexType name="vargteType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="respident" type="xs:string" use="required"/>
-				<xs:attribute name="index" type="xs:string"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ******************* -->
-	<!-- ** variable_test ** -->
-	<!-- ******************* -->
-	<xs:complexType name="variable_testType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
-				<xs:attribute name="testoperator" use="required">
-					<xs:simpleType>
-						<xs:restriction base="xs:NMTOKEN">
-							<xs:enumeration value="EQ"/>
-							<xs:enumeration value="NEQ"/>
-							<xs:enumeration value="LT"/>
-							<xs:enumeration value="LTE"/>
-							<xs:enumeration value="GT"/>
-							<xs:enumeration value="GTE"/>
-						</xs:restriction>
-					</xs:simpleType>
-				</xs:attribute>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- *************** -->
-	<!-- ** varinside ** -->
-	<!-- *************** -->
-	<xs:complexType name="varinsideType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="areatype" use="required">
-					<xs:simpleType>
-						<xs:restriction base="xs:NMTOKEN">
-							<xs:enumeration value="Ellipse"/>
-							<xs:enumeration value="Rectangle"/>
-							<xs:enumeration value="Bounded"/>
-						</xs:restriction>
-					</xs:simpleType>
-				</xs:attribute>
-				<xs:attribute name="respident" type="xs:string" use="required"/>
-				<xs:attribute name="index" type="xs:string"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- *********** -->
-	<!-- ** varlt ** -->
-	<!-- *********** -->
-	<xs:complexType name="varltType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="respident" type="xs:string" use="required"/>
-				<xs:attribute name="index" type="xs:string"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ************ -->
-	<!-- ** varlte ** -->
-	<!-- ************ -->
-	<xs:complexType name="varlteType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="respident" type="xs:string" use="required"/>
-				<xs:attribute name="index" type="xs:string"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- *************** -->
-	<!-- ** varsubset ** -->
-	<!-- *************** -->
-	<xs:complexType name="varsubsetType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="respident" type="xs:string" use="required"/>
-				<xs:attribute name="setmatch" default="Exact">
-					<xs:simpleType>
-						<xs:restriction base="xs:NMTOKEN">
-							<xs:enumeration value="Exact"/>
-							<xs:enumeration value="Partial"/>
-						</xs:restriction>
-					</xs:simpleType>
-				</xs:attribute>
-				<xs:attribute name="index" type="xs:string"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- ****************** -->
-	<!-- ** varsubstring ** -->
-	<!-- ****************** -->
-	<xs:complexType name="varsubstringType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="index" type="xs:string"/>
-				<xs:attribute name="respident" type="xs:string" use="required"/>
-				<xs:attribute name="case" default="No">
-					<xs:simpleType>
-						<xs:restriction base="xs:NMTOKEN">
-							<xs:enumeration value="Yes"/>
-							<xs:enumeration value="No"/>
-						</xs:restriction>
-					</xs:simpleType>
-				</xs:attribute>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-	<!-- **************** -->
-	<!-- ** vocabulary ** -->
-	<!-- **************** -->
-	<xs:complexType name="vocabularyType">
-		<xs:simpleContent>
-			<xs:extension base="xs:string">
-				<xs:attribute name="uri" type="xs:string"/>
-				<xs:attribute name="entityref" type="xs:ENTITY"/>
-				<xs:attribute name="vocab_type" type="xs:string"/>
-			</xs:extension>
-		</xs:simpleContent>
-	</xs:complexType>
-</xs:schema>
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- filename=ims_qtiasiv1p2.xsd -->
+<!-- Copyright (2) 2002 IMS Global Learning Consortium, Inc. -->
+<xs:schema targetNamespace="http://www.imsglobal.org/xsd/ims_qtiasiv1p2"
+	 xmlns:x="http://www.w3.org/XML/1998/namespace" 
+	 xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+	 xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" 
+	 elementFormDefault="qualified" 
+	 version="IMS QTI ASI 1.2">
+	<!-- **************************** -->
+	<!-- ** Inclusions and Imports ** -->
+	<!-- **************************** -->
+	<xs:import namespace="http://www.w3.org/XML/1998/namespace" 
+	schemaLocation="xml.xsd"/>
+	<!-- ****************** -->
+	<!-- ** Root Element ** -->
+	<!-- ****************** -->
+	<xs:element name="questestinterop" type="questestinteropType"/>
+	<!-- ************************** -->
+	<!-- ** Element Declarations ** -->
+	<!-- ************************** -->
+	<xs:element name="altmaterial" type="altmaterialType"/>
+	<xs:element name="and" type="andType"/>
+	<xs:element name="and_objects" type="and_objectsType"/>
+	<xs:element name="and_selection" type="and_selectionType"/>
+	<xs:element name="and_test" type="and_testType"/>
+	<xs:element name="assessfeedback" type="assessfeedbackType"/>
+	<xs:element name="assessment" type="assessmentType"/>
+	<xs:element name="assessmentcontrol" type="assessmentcontrolType"/>
+	<xs:element name="assessproc_extension" type="assessproc_extensionType"/>
+	<xs:element name="conditionvar" type="conditionvarType"/>
+	<xs:element name="decvar" type="decvarType"/>
+	<xs:element name="displayfeedback" type="displayfeedbackType"/>
+	<xs:element name="duration" type="xs:string"/>
+	<xs:element name="durequal" type="durequalType"/>
+	<xs:element name="durgt" type="durgtType"/>
+	<xs:element name="durgte" type="durgteType"/>
+	<xs:element name="durlt" type="durltType"/>
+	<xs:element name="durlte" type="durlteType"/>
+	<xs:element name="fieldentry" type="xs:string"/>
+	<xs:element name="fieldlabel" type="xs:string"/>
+	<xs:element name="flow" type="flowType"/>
+	<xs:element name="flow_label" type="flow_labelType"/>
+	<xs:element name="flow_mat" type="flow_matType"/>
+	<xs:element name="hint" type="hintType"/>
+	<xs:element name="hintmaterial" type="hintmaterialType"/>
+	<xs:element name="interpretvar" type="interpretvarType"/>
+	<xs:element name="item" type="itemType"/>
+	<xs:element name="itemcontrol" type="itemcontrolType"/>
+	<xs:element name="itemfeedback" type="itemfeedbackType"/>
+	<xs:element name="itemmetadata" type="itemmetadataType"/>
+	<xs:element name="itempostcondition" type="xs:string"/>
+	<xs:element name="itemprecondition" type="xs:string"/>
+	<xs:element name="itemproc_extension" type="itemproc_extensionType"/>
+	<xs:element name="itemref" type="itemrefType"/>
+	<xs:element name="itemrubric" type="itemrubricType"/>
+	<xs:element name="map_input" type="map_inputType"/>
+	<xs:element name="map_output" type="map_outputType"/>
+	<xs:element name="mat_extension" type="mat_extensionType"/>
+	<xs:element name="matapplet" type="matappletType"/>
+	<xs:element name="matapplication" type="matapplicationType"/>
+	<xs:element name="mataudio" type="mataudioType"/>
+	<xs:element name="matbreak" type="matbreakType"/>
+	<xs:element name="matemtext" type="matemtextType"/>
+	<xs:element name="material" type="materialType"/>
+	<xs:element name="material_ref" type="material_refType"/>
+	<xs:element name="matimage" type="matimageType"/>
+	<xs:element name="matref" type="matrefType"/>
+	<xs:element name="mattext" type="mattextType"/>
+	<xs:element name="matvideo" type="matvideoType"/>
+	<xs:element name="not" type="notType"/>
+	<xs:element name="not_objects" type="not_objectsType"/>
+	<xs:element name="not_selection" type="not_selectionType"/>
+	<xs:element name="not_test" type="not_testType"/>
+	<xs:element name="objectbank" type="objectbankType"/>
+	<xs:element name="objectives" type="objectivesType"/>
+	<xs:element name="objects_condition" type="objects_conditionType"/>
+	<xs:element name="objects_parameter" type="objects_parameterType"/>
+	<xs:element name="objectscond_extension" type="xs:string"/>
+	<xs:element name="or" type="orType"/>
+	<xs:element name="or_objects" type="or_objectsType"/>
+	<xs:element name="or_selection" type="or_selectionType"/>
+	<xs:element name="or_test" type="or_testType"/>
+	<xs:element name="order" type="orderType"/>
+	<xs:element name="order_extension" type="order_extensionType"/>
+	<xs:element name="other" type="xs:string"/>
+	<xs:element name="outcomes" type="outcomesType"/>
+	<xs:element name="outcomes_feedback_test" type="outcomes_feedback_testType"/>
+	<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
+	<xs:element name="outcomes_processing" type="outcomes_processingType"/>
+	<xs:element name="presentation" type="presentationType"/>
+	<xs:element name="presentation_material" type="presentation_materialType"/>
+	<xs:element name="processing_parameter" type="processing_parameterType"/>
+	<xs:element name="qmd_computerscored" type="xs:string"/>
+	<xs:element name="qmd_feedbackpermitted" type="xs:string"/>
+	<xs:element name="qmd_hintspermitted" type="xs:string"/>
+	<xs:element name="qmd_itemtype" type="xs:string"/>
+	<xs:element name="qmd_levelofdifficulty" type="xs:string"/>
+	<xs:element name="qmd_material" type="xs:string"/>
+	<xs:element name="qmd_maximumscore" type="xs:string"/>
+	<xs:element name="qmd_renderingtype" type="xs:string"/>
+	<xs:element name="qmd_responsetype" type="xs:string"/>
+	<xs:element name="qmd_scoringpermitted" type="xs:string"/>
+	<xs:element name="qmd_solutionspermitted" type="xs:string"/>
+	<xs:element name="qmd_status" type="xs:string"/>
+	<xs:element name="qmd_timedependence" type="xs:string"/>
+	<xs:element name="qmd_timelimit" type="xs:string"/>
+	<xs:element name="qmd_toolvendor" type="xs:string"/>
+	<xs:element name="qmd_topic" type="xs:string"/>
+	<xs:element name="qmd_typeofsolution" type="xs:string"/>
+	<xs:element name="qmd_weighting" type="xs:string"/>
+	<xs:element name="qticomment" type="qticommentType"/>
+	<xs:element name="qtimetadata" type="qtimetadataType"/>
+	<xs:element name="qtimetadatafield" type="qtimetadatafieldType"/>
+	<xs:element name="reference" type="referenceType"/>
+	<xs:element name="render_choice" type="render_choiceType"/>
+	<xs:element name="render_fib" type="render_fibType"/>
+	<xs:element name="render_hotspot" type="render_hotspotType"/>
+	<xs:element name="render_slider" type="render_sliderType"/>
+	<xs:element name="respcond_extension" type="respcond_extensionType"/>
+	<xs:element name="respcondition" type="respconditionType"/>
+	<xs:element name="render_extension" type="render_extensionType"/>
+	<xs:element name="response_extension" type="response_extensionType"/>
+	<xs:element name="response_grp" type="response_grpType"/>
+	<xs:element name="response_labelType" type="response_labelType"/>
+	<xs:element name="response_lid" type="response_lidType"/>
+	<xs:element name="response_na" type="response_naType"/>
+	<xs:element name="response_num" type="response_numType"/>
+	<xs:element name="response_str" type="response_strType"/>
+	<xs:element name="response_xy" type="response_xyType"/>
+	<xs:element name="resprocessing" type="resprocessingType"/>
+	<xs:element name="rubric" type="rubricType"/>
+	<xs:element name="section" type="sectionType"/>
+	<xs:element name="sectioncontrol" type="sectioncontrolType"/>
+	<xs:element name="sectionfeedback" type="sectionfeedbackType"/>
+	<xs:element name="sectionproc_extension" type="sectionproc_extensionType"/>
+	<xs:element name="sectionpostcondition" type="xs:string"/>
+	<xs:element name="sectionprecondition" type="xs:string"/>
+	<xs:element name="sectionref" type="sectionrefType"/>
+	<xs:element name="selection" type="selectionType"/>
+	<xs:element name="selection_extension" type="selection_extensionType"/>
+	<xs:element name="selection_metadata" type="selection_metadataType"/>
+	<xs:element name="selection_number" type="xs:string"/>
+	<xs:element name="selection_ordering" type="selection_orderingType"/>
+	<xs:element name="sequence_parameter" type="sequence_parameterType"/>
+	<xs:element name="setvar" type="setvarType"/>
+	<xs:element name="solution" type="solutionType"/>
+	<xs:element name="solutionmaterial" type="solutionmaterialType"/>
+	<xs:element name="sourcebank_ref" type="xs:string"/>
+	<xs:element name="test_variable" type="test_variableType"/>
+	<xs:element name="unanswered" type="unansweredType"/>
+	<xs:element name="var_extension" type="var_extensionType"/>
+	<xs:element name="varequal" type="varequalType"/>
+	<xs:element name="vargt" type="vargtType"/>
+	<xs:element name="vargte" type="vargteType"/>
+	<xs:element name="variable_test" type="variable_testType"/>
+	<xs:element name="varinside" type="varinsideType"/>
+	<xs:element name="varlt" type="varltType"/>
+	<xs:element name="varlte" type="varlteType"/>
+	<xs:element name="varsubset" type="varsubsetType"/>
+	<xs:element name="varsubstring" type="varsubstringType"/>
+	<xs:element name="vocabulary" type="vocabularyType"/>
+	<!-- ******************************* -->
+	<!-- ** Complex Type Declarations ** -->
+	<!-- ******************************* -->
+	<!-- ***************** -->
+	<!-- ** altmaterial ** -->
+	<!-- ***************** -->
+	<xs:complexType name="altmaterialType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:choice maxOccurs="unbounded">
+				<xs:element name="mattext" type="mattextType"/>
+				<xs:element name="matemtext" type="matemtextType"/>
+				<xs:element name="matimage" type="matimageType"/>
+				<xs:element name="mataudio" type="mataudioType"/>
+				<xs:element name="matvideo" type="matvideoType"/>
+				<xs:element name="matapplet" type="matappletType"/>
+				<xs:element name="matapplication" type="matapplicationType"/>
+				<xs:element name="matref" type="matrefType"/>
+				<xs:element ref="matbreak"/>
+				<xs:element ref="mat_extension"/>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute ref="x:lang"/>
+	</xs:complexType>
+	<!-- ********* -->
+	<!-- ** and ** -->
+	<!-- ********* -->
+	<xs:complexType name="andType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:element name="not" type="notType"/>
+			<xs:element name="and" type="andType"/>
+			<xs:element name="or" type="orType"/>
+			<xs:element name="unanswered" type="unansweredType"/>
+			<xs:element ref="other"/>
+			<xs:element name="varequal" type="varequalType"/>
+			<xs:element name="varlt" type="varltType"/>
+			<xs:element name="varlte" type="varlteType"/>
+			<xs:element name="vargt" type="vargtType"/>
+			<xs:element name="vargte" type="vargteType"/>
+			<xs:element name="varsubset" type="varsubsetType"/>
+			<xs:element name="varinside" type="varinsideType"/>
+			<xs:element name="varsubstring" type="varsubstringType"/>
+			<xs:element name="durequal" type="durequalType"/>
+			<xs:element name="durlt" type="durltType"/>
+			<xs:element name="durlte" type="durlteType"/>
+			<xs:element name="durgt" type="durgtType"/>
+			<xs:element name="durgte" type="durgteType"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- ***************** -->
+	<!-- ** and_objects ** -->
+	<!-- ***************** -->
+	<xs:complexType name="and_objectsType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
+			<xs:element name="and_objects" type="and_objectsType"/>
+			<xs:element name="or_objects" type="or_objectsType"/>
+			<xs:element name="not_objects" type="not_objectsType"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- ******************* -->
+	<!-- ** and_selection ** -->
+	<!-- ******************* -->
+	<xs:complexType name="and_selectionType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:element name="selection_metadata" type="selection_metadataType"/>
+			<xs:element name="and_selection" type="and_selectionType"/>
+			<xs:element name="or_selection" type="or_selectionType"/>
+			<xs:element name="not_selection" type="not_selectionType"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- ************** -->
+	<!-- ** and_test ** -->
+	<!-- ************** -->
+	<xs:complexType name="and_testType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:element name="variable_test" type="variable_testType"/>
+			<xs:element name="and_test" type="and_testType"/>
+			<xs:element name="or_test" type="or_testType"/>
+			<xs:element name="not_test" type="not_testType"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- ******************** -->
+	<!-- ** assessfeedback ** -->
+	<!-- ******************** -->
+	<xs:complexType name="assessfeedbackType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:choice>
+				<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
+				<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="view" default="All">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="All"/>
+					<xs:enumeration value="Administrator"/>
+					<xs:enumeration value="AdminAuthority"/>
+					<xs:enumeration value="Assessor"/>
+					<xs:enumeration value="Author"/>
+					<xs:enumeration value="Candidate"/>
+					<xs:enumeration value="InvigilatorProctor"/>
+					<xs:enumeration value="Psychometrician"/>
+					<xs:enumeration value="Scorer"/>
+					<xs:enumeration value="Tutor"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="ident" type="xs:string" use="required"/>
+		<xs:attribute name="title" type="xs:string"/>
+	</xs:complexType>
+	<!-- **************** -->
+	<!-- ** assessment ** -->
+	<!-- **************** -->
+	<xs:complexType name="assessmentType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:element ref="duration" minOccurs="0"/>
+			<xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="objectives" type="objectivesType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="assessmentcontrol" type="assessmentcontrolType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="rubric" type="rubricType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="presentation_material" type="presentation_materialType" minOccurs="0"/>
+			<xs:element name="outcomes_processing" type="outcomes_processingType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element ref="assessproc_extension" minOccurs="0"/>
+			<xs:element name="assessfeedback" type="assessfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="selection_ordering" type="selection_orderingType" minOccurs="0"/>
+			<xs:element name="reference" type="referenceType" minOccurs="0"/>
+			<xs:choice maxOccurs="unbounded">
+				<xs:element name="sectionref" type="sectionrefType"/>
+				<xs:element name="section" type="sectionType"/>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="ident" type="xs:string" use="required"/>
+		<xs:attribute name="title" type="xs:string"/>
+		<xs:attribute ref="x:lang"/>
+	</xs:complexType>
+	<!-- *********************** -->
+	<!-- ** assessmentcontrol ** -->
+	<!-- *********************** -->
+	<xs:complexType name="assessmentcontrolType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+		</xs:sequence>
+		<xs:attribute name="hintswitch" default="Yes">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="solutionswitch" default="Yes">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="view" default="All">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="All"/>
+					<xs:enumeration value="Administrator"/>
+					<xs:enumeration value="AdminAuthority"/>
+					<xs:enumeration value="Assessor"/>
+					<xs:enumeration value="Author"/>
+					<xs:enumeration value="Candidate"/>
+					<xs:enumeration value="InvigilatorProctor"/>
+					<xs:enumeration value="Psychometrician"/>
+					<xs:enumeration value="Scorer"/>
+					<xs:enumeration value="Tutor"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="feedbackswitch" default="Yes">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<!-- ************************** -->
+	<!-- ** assessproc_extension ** -->
+	<!-- ************************** -->
+	<xs:complexType name="assessproc_extensionType" mixed="true">
+		<xs:sequence>
+			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:anyAttribute processContents="lax"/>
+	</xs:complexType>
+	<!-- ****************** -->
+	<!-- ** conditionvar ** -->
+	<!-- ****************** -->
+	<xs:complexType name="conditionvarType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:element name="not" type="notType"/>
+			<xs:element name="and" type="andType"/>
+			<xs:element name="or" type="orType"/>
+			<xs:element name="unanswered" type="unansweredType"/>
+			<xs:element ref="other"/>
+			<xs:element name="varequal" type="varequalType"/>
+			<xs:element name="varlt" type="varltType"/>
+			<xs:element name="varlte" type="varlteType"/>
+			<xs:element name="vargt" type="vargtType"/>
+			<xs:element name="vargte" type="vargteType"/>
+			<xs:element name="varsubset" type="varsubsetType"/>
+			<xs:element name="varinside" type="varinsideType"/>
+			<xs:element name="varsubstring" type="varsubstringType"/>
+			<xs:element name="durequal" type="durequalType"/>
+			<xs:element name="durlt" type="durltType"/>
+			<xs:element name="durlte" type="durlteType"/>
+			<xs:element name="durgt" type="durgtType"/>
+			<xs:element name="durgte" type="durgteType"/>
+			<xs:element ref="var_extension"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- ************ -->
+	<!-- ** decvar ** -->
+	<!-- ************ -->
+	<xs:complexType name="decvarType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
+				<xs:attribute name="vartype" default="Integer">
+					<xs:simpleType>
+						<xs:restriction base="xs:NMTOKEN">
+							<xs:enumeration value="Integer"/>
+							<xs:enumeration value="String"/>
+							<xs:enumeration value="Decimal"/>
+							<xs:enumeration value="Scientific"/>
+							<xs:enumeration value="Boolean"/>
+							<xs:enumeration value="Enumerated"/>
+							<xs:enumeration value="Set"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:attribute>
+				<xs:attribute name="defaultval" type="xs:string"/>
+				<xs:attribute name="minvalue" type="xs:string"/>
+				<xs:attribute name="maxvalue" type="xs:string"/>
+				<xs:attribute name="members" type="xs:string"/>
+				<xs:attribute name="cutvalue" type="xs:string"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ********************* -->
+	<!-- ** displayfeedback ** -->
+	<!-- ********************* -->
+	<xs:complexType name="displayfeedbackType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="feedbacktype" default="Response">
+					<xs:simpleType>
+						<xs:restriction base="xs:NMTOKEN">
+							<xs:enumeration value="Response"/>
+							<xs:enumeration value="Solution"/>
+							<xs:enumeration value="Hint"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:attribute>
+				<xs:attribute name="linkrefid" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ************** -->
+	<!-- ** durequal ** -->
+	<!-- ************** -->
+	<xs:complexType name="durequalType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="index" type="xs:string"/>
+				<xs:attribute name="respident" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- *********** -->
+	<!-- ** durgt ** -->
+	<!-- *********** -->
+	<xs:complexType name="durgtType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="index" type="xs:string"/>
+				<xs:attribute name="respident" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ************ -->
+	<!-- ** durgte ** -->
+	<!-- ************ -->
+	<xs:complexType name="durgteType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="index" type="xs:string"/>
+				<xs:attribute name="respident" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- *********** -->
+	<!-- ** durlt ** -->
+	<!-- *********** -->
+	<xs:complexType name="durltType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="index" type="xs:string"/>
+				<xs:attribute name="respident" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ************ -->
+	<!-- ** durlte ** -->
+	<!-- ************ -->
+	<xs:complexType name="durlteType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="index" type="xs:string"/>
+				<xs:attribute name="respident" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ********** -->
+	<!-- ** flow ** -->
+	<!-- ********** -->
+	<xs:complexType name="flowType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:element name="flow" type="flowType"/>
+			<xs:element name="material" type="materialType"/>
+			<xs:element name="material_ref" type="material_refType"/>
+			<xs:element name="response_lid" type="response_lidType"/>
+			<xs:element name="response_xy" type="response_xyType"/>
+			<xs:element name="response_str" type="response_strType"/>
+			<xs:element name="response_num" type="response_numType"/>
+			<xs:element name="response_grp" type="response_grpType"/>
+			<xs:element ref="response_extension"/>
+		</xs:choice>
+		<xs:attribute name="class" type="xs:string" default="Block"/>
+	</xs:complexType>
+	<!-- **************** -->
+	<!-- ** flow_label ** -->
+	<!-- **************** -->
+	<xs:complexType name="flow_labelType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:element name="flow_label" type="flow_labelType"/>
+			<xs:element name="response_label" type="response_labelType"/>
+		</xs:choice>
+		<xs:attribute name="class" type="xs:string" default="Block"/>
+	</xs:complexType>
+	<!-- ************** -->
+	<!-- ** flow_mat ** -->
+	<!-- ************** -->
+	<xs:complexType name="flow_matType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:element name="flow_mat" type="flow_matType"/>
+			<xs:element name="material" type="materialType"/>
+			<xs:element name="material_ref" type="material_refType"/>
+		</xs:choice>
+		<xs:attribute name="class" type="xs:string" default="Block"/>
+	</xs:complexType>
+	<!-- ********** -->
+	<!-- ** hint ** -->
+	<!-- ********** -->
+	<xs:complexType name="hintType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:element name="hintmaterial" type="hintmaterialType" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:attribute name="feedbackstyle" default="Complete">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Complete"/>
+					<xs:enumeration value="Incremental"/>
+					<xs:enumeration value="Multilevel"/>
+					<xs:enumeration value="Proprietary"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<!-- ****************** -->
+	<!-- ** hintmaterial ** -->
+	<!-- ****************** -->
+	<xs:complexType name="hintmaterialType">
+		<xs:choice>
+			<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
+			<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- ****************** -->
+	<!-- ** interpretvar ** -->
+	<!-- ****************** -->
+	<xs:complexType name="interpretvarType">
+		<xs:choice>
+			<xs:element name="material" type="materialType"/>
+			<xs:element name="material_ref" type="material_refType"/>
+		</xs:choice>
+		<xs:attribute name="view" default="All">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="All"/>
+					<xs:enumeration value="Administrator"/>
+					<xs:enumeration value="AdminAuthority"/>
+					<xs:enumeration value="Assessor"/>
+					<xs:enumeration value="Author"/>
+					<xs:enumeration value="Candidate"/>
+					<xs:enumeration value="InvigilatorProctor"/>
+					<xs:enumeration value="Psychometrician"/>
+					<xs:enumeration value="Scorer"/>
+					<xs:enumeration value="Tutor"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="varname" type="xs:string" default="SCORE"/>
+	</xs:complexType>
+	<!-- ********** -->
+	<!-- ** item ** -->
+	<!-- ********** -->
+	<xs:complexType name="itemType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:element ref="duration" minOccurs="0"/>
+			<xs:element name="itemmetadata" type="itemmetadataType" minOccurs="0"/>
+			<xs:element name="objectives" type="objectivesType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="itemcontrol" type="itemcontrolType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element ref="itemprecondition" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element ref="itempostcondition" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element name="itemrubric" type="itemrubricType"/>
+				<xs:element name="rubric" type="rubricType"/>
+			</xs:choice>
+			<xs:element name="presentation" type="presentationType" minOccurs="0"/>
+			<xs:element name="resprocessing" type="resprocessingType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element ref="itemproc_extension" minOccurs="0"/>
+			<xs:element name="itemfeedback" type="itemfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="reference" type="referenceType" minOccurs="0"/>
+		</xs:sequence>
+		<xs:attribute name="maxattempts" type="xs:string"/>
+		<xs:attribute name="label" type="xs:string"/>
+		<xs:attribute name="ident" type="xs:string" use="required"/>
+		<xs:attribute name="title" type="xs:string"/>
+		<xs:attribute ref="x:lang"/>
+	</xs:complexType>
+	<!-- ***************** -->
+	<!-- ** itemcontrol ** -->
+	<!-- ***************** -->
+	<xs:complexType name="itemcontrolType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+		</xs:sequence>
+		<xs:attribute name="feedbackswitch" default="Yes">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="hintswitch" default="Yes">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="solutionswitch" default="Yes">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="view" default="All">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="All"/>
+					<xs:enumeration value="Administrator"/>
+					<xs:enumeration value="AdminAuthority"/>
+					<xs:enumeration value="Assessor"/>
+					<xs:enumeration value="Author"/>
+					<xs:enumeration value="Candidate"/>
+					<xs:enumeration value="InvigilatorProctor"/>
+					<xs:enumeration value="Psychometrician"/>
+					<xs:enumeration value="Scorer"/>
+					<xs:enumeration value="Tutor"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<!-- ****************** -->
+	<!-- ** itemfeedback ** -->
+	<!-- ****************** -->
+	<xs:complexType name="itemfeedbackType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:choice>
+				<xs:element name="flow_mat" type="flow_matType"/>
+				<xs:element name="material" type="materialType"/>
+			</xs:choice>
+			<xs:element name="solution" type="solutionType"/>
+			<xs:element name="hint" type="hintType"/>
+		</xs:choice>
+		<xs:attribute name="view" default="All">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="All"/>
+					<xs:enumeration value="Administrator"/>
+					<xs:enumeration value="AdminAuthority"/>
+					<xs:enumeration value="Assessor"/>
+					<xs:enumeration value="Author"/>
+					<xs:enumeration value="Candidate"/>
+					<xs:enumeration value="InvigilatorProctor"/>
+					<xs:enumeration value="Psychometrician"/>
+					<xs:enumeration value="Scorer"/>
+					<xs:enumeration value="Tutor"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="ident" type="xs:string" use="required"/>
+		<xs:attribute name="title" type="xs:string"/>
+	</xs:complexType>
+	<!-- ****************** -->
+	<!-- ** itemmetadata ** -->
+	<!-- ****************** -->
+	<xs:complexType name="itemmetadataType">
+		<xs:sequence>
+			<xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element ref="qmd_computerscored" minOccurs="0"/>
+			<xs:element ref="qmd_feedbackpermitted" minOccurs="0"/>
+			<xs:element ref="qmd_hintspermitted" minOccurs="0"/>
+			<xs:element ref="qmd_itemtype" minOccurs="0"/>
+			<xs:element ref="qmd_levelofdifficulty" minOccurs="0"/>
+			<xs:element ref="qmd_maximumscore" minOccurs="0"/>
+			<xs:element ref="qmd_renderingtype" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element ref="qmd_responsetype" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element ref="qmd_scoringpermitted" minOccurs="0"/>
+			<xs:element ref="qmd_solutionspermitted" minOccurs="0"/>
+			<xs:element ref="qmd_status" minOccurs="0"/>
+			<xs:element ref="qmd_timedependence" minOccurs="0"/>
+			<xs:element ref="qmd_timelimit" minOccurs="0"/>
+			<xs:element ref="qmd_toolvendor" minOccurs="0"/>
+			<xs:element ref="qmd_topic" minOccurs="0"/>
+			<xs:element ref="qmd_weighting" minOccurs="0"/>
+			<xs:element ref="qmd_material" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element ref="qmd_typeofsolution" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<!-- ************************ -->
+	<!-- ** itemproc_extension ** -->
+	<!-- ************************ -->
+	<xs:complexType name="itemproc_extensionType" mixed="true">
+		<xs:sequence>
+			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:anyAttribute processContents="lax"/>
+	</xs:complexType>
+	<!-- ************* -->
+	<!-- ** itemref ** -->
+	<!-- ************* -->
+	<xs:complexType name="itemrefType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="linkrefid" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- **************** -->
+	<!-- ** itemrubric ** -->
+	<!-- **************** -->
+	<xs:complexType name="itemrubricType">
+		<xs:sequence>
+			<xs:element name="material" type="materialType"/>
+		</xs:sequence>
+		<xs:attribute name="view" default="All">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="All"/>
+					<xs:enumeration value="Administrator"/>
+					<xs:enumeration value="AdminAuthority"/>
+					<xs:enumeration value="Assessor"/>
+					<xs:enumeration value="Author"/>
+					<xs:enumeration value="Candidate"/>
+					<xs:enumeration value="InvigilatorProctor"/>
+					<xs:enumeration value="Psychometrician"/>
+					<xs:enumeration value="Scorer"/>
+					<xs:enumeration value="Tutor"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<!-- *************** -->
+	<!-- ** map_input ** -->
+	<!-- *************** -->
+	<xs:complexType name="map_inputType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- **************** -->
+	<!-- ** map_output ** -->
+	<!-- **************** -->
+	<xs:complexType name="map_outputType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ******************* -->
+	<!-- ** mat_extension ** -->
+	<!-- ******************* -->
+	<xs:complexType name="mat_extensionType" mixed="true">
+		<xs:sequence>
+			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:anyAttribute processContents="lax"/>
+	</xs:complexType>
+	<!-- *************** -->
+	<!-- ** matapplet ** -->
+	<!-- *************** -->
+	<xs:complexType name="matappletType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="label" type="xs:string"/>
+				<xs:attribute name="uri" type="xs:string"/>
+				<xs:attribute name="y0" type="xs:string"/>
+				<xs:attribute name="height" type="xs:string"/>
+				<xs:attribute name="width" type="xs:string"/>
+				<xs:attribute name="x0" type="xs:string"/>
+				<xs:attribute name="embedded" type="xs:string" default="base64"/>
+				<xs:attribute name="entityref" type="xs:ENTITY"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ******************** -->
+	<!-- ** matapplication ** -->
+	<!-- ******************** -->
+	<xs:complexType name="matapplicationType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="apptype" type="xs:string"/>
+				<xs:attribute name="label" type="xs:string"/>
+				<xs:attribute name="uri" type="xs:string"/>
+				<xs:attribute name="embedded" type="xs:string" default="base64"/>
+				<xs:attribute name="entityref" type="xs:ENTITY"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ************** -->
+	<!-- ** mataudio ** -->
+	<!-- ************** -->
+	<xs:complexType name="mataudioType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="audiotype" type="xs:string" default="audio/base"/>
+				<xs:attribute name="label" type="xs:string"/>
+				<xs:attribute name="uri" type="xs:string"/>
+				<xs:attribute name="embedded" type="xs:string" default="base64"/>
+				<xs:attribute name="entityref" type="xs:ENTITY"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ************** -->
+	<!-- ** matbreak ** -->
+	<!-- ************** -->
+	<xs:complexType name="matbreakType"/>
+	<!-- *************** -->
+	<!-- ** matemtext ** -->
+	<!-- *************** -->
+	<xs:complexType name="matemtextType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="texttype" type="xs:string" default="text/plain"/>
+				<xs:attribute name="label" type="xs:string"/>
+				<xs:attribute name="charset" type="xs:string" default="ascii-us"/>
+				<xs:attribute name="uri" type="xs:string"/>
+				<xs:attribute ref="x:space" default="default"/>
+				<xs:attribute ref="x:lang"/>
+				<xs:attribute name="entityref" type="xs:ENTITY"/>
+				<xs:attribute name="width" type="xs:string"/>
+				<xs:attribute name="height" type="xs:string"/>
+				<xs:attribute name="y0" type="xs:string"/>
+				<xs:attribute name="x0" type="xs:string"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ************** -->
+	<!-- ** material ** -->
+	<!-- ************** -->
+	<xs:complexType name="materialType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:choice maxOccurs="unbounded">
+				<xs:element name="mattext" type="mattextType"/>
+				<xs:element name="matemtext" type="matemtextType"/>
+				<xs:element name="matimage" type="matimageType"/>
+				<xs:element name="mataudio" type="mataudioType"/>
+				<xs:element name="matvideo" type="matvideoType"/>
+				<xs:element name="matapplet" type="matappletType"/>
+				<xs:element name="matapplication" type="matapplicationType"/>
+				<xs:element name="matref" type="matrefType"/>
+				<xs:element ref="matbreak"/>
+				<xs:element ref="mat_extension"/>
+			</xs:choice>
+			<xs:element name="altmaterial" type="altmaterialType" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:attribute name="label" type="xs:string"/>
+		<xs:attribute ref="x:lang"/>
+	</xs:complexType>
+	<!-- ****************** -->
+	<!-- ** material_ref ** -->
+	<!-- ****************** -->
+	<xs:complexType name="material_refType">
+		<xs:attribute name="linkrefid" type="xs:string" use="required"/>
+	</xs:complexType>
+	<!-- ************** -->
+	<!-- ** matimage ** -->
+	<!-- ************** -->
+	<xs:complexType name="matimageType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="imagtype" type="xs:string" default="image/jpeg"/>
+				<xs:attribute name="label" type="xs:string"/>
+				<xs:attribute name="height" type="xs:string"/>
+				<xs:attribute name="uri" type="xs:string"/>
+				<xs:attribute name="embedded" type="xs:string" default="base64"/>
+				<xs:attribute name="width" type="xs:string"/>
+				<xs:attribute name="y0" type="xs:string"/>
+				<xs:attribute name="x0" type="xs:string"/>
+				<xs:attribute name="entityref" type="xs:ENTITY"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ************ -->
+	<!-- ** matref ** -->
+	<!-- ************ -->
+	<xs:complexType name="matrefType">
+		<xs:attribute name="linkrefid" type="xs:string" use="required"/>
+	</xs:complexType>
+	<!-- ************* -->
+	<!-- ** mattext ** -->
+	<!-- ************* -->
+	<xs:complexType name="mattextType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="texttype" type="xs:string" default="text/plain"/>
+				<xs:attribute name="label" type="xs:string"/>
+				<xs:attribute name="charset" type="xs:string" default="ascii-us"/>
+				<xs:attribute name="uri" type="xs:string"/>
+				<xs:attribute ref="x:space" default="default"/>
+				<xs:attribute ref="x:lang"/>
+				<xs:attribute name="entityref" type="xs:ENTITY"/>
+				<xs:attribute name="width" type="xs:string"/>
+				<xs:attribute name="height" type="xs:string"/>
+				<xs:attribute name="y0" type="xs:string"/>
+				<xs:attribute name="x0" type="xs:string"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ************** -->
+	<!-- ** matvideo ** -->
+	<!-- ************** -->
+	<xs:complexType name="matvideoType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="videotype" type="xs:string" default="video/avi"/>
+				<xs:attribute name="label" type="xs:string"/>
+				<xs:attribute name="uri" type="xs:string"/>
+				<xs:attribute name="width" type="xs:string"/>
+				<xs:attribute name="height" type="xs:string"/>
+				<xs:attribute name="y0" type="xs:string"/>
+				<xs:attribute name="x0" type="xs:string"/>
+				<xs:attribute name="embedded" type="xs:string" default="base64"/>
+				<xs:attribute name="entityref" type="xs:ENTITY"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ********* -->
+	<!-- ** not ** -->
+	<!-- ********* -->
+	<xs:complexType name="notType">
+		<xs:choice>
+			<xs:element name="and" type="andType"/>
+			<xs:element name="or" type="orType"/>
+			<xs:element name="not" type="notType"/>
+			<xs:element name="unanswered" type="unansweredType"/>
+			<xs:element ref="other"/>
+			<xs:element name="varequal" type="varequalType"/>
+			<xs:element name="varlt" type="varltType"/>
+			<xs:element name="varlte" type="varlteType"/>
+			<xs:element name="vargt" type="vargtType"/>
+			<xs:element name="vargte" type="vargteType"/>
+			<xs:element name="varsubset" type="varsubsetType"/>
+			<xs:element name="varinside" type="varinsideType"/>
+			<xs:element name="varsubstring" type="varsubstringType"/>
+			<xs:element name="durequal" type="durequalType"/>
+			<xs:element name="durlt" type="durltType"/>
+			<xs:element name="durlte" type="durlteType"/>
+			<xs:element name="durgt" type="durgtType"/>
+			<xs:element name="durgte" type="durgteType"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- ***************** -->
+	<!-- ** not_objects ** -->
+	<!-- ***************** -->
+	<xs:complexType name="not_objectsType">
+		<xs:choice>
+			<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
+			<xs:element name="and_objects" type="and_objectsType"/>
+			<xs:element name="or_objects" type="or_objectsType"/>
+			<xs:element name="not_objects" type="not_objectsType"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- ******************* -->
+	<!-- ** not_selection ** -->
+	<!-- ******************* -->
+	<xs:complexType name="not_selectionType">
+		<xs:choice>
+			<xs:element name="selection_metadata" type="selection_metadataType"/>
+			<xs:element name="and_selection" type="and_selectionType"/>
+			<xs:element name="or_selection" type="or_selectionType"/>
+			<xs:element name="not_selection" type="not_selectionType"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- ************** -->
+	<!-- ** not_test ** -->
+	<!-- ************** -->
+	<xs:complexType name="not_testType">
+		<xs:choice>
+			<xs:element name="variable_test" type="variable_testType"/>
+			<xs:element name="and_test" type="and_testType"/>
+			<xs:element name="or_test" type="or_testType"/>
+			<xs:element name="not_test" type="not_testType"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- **************** -->
+	<!-- ** objectbank ** -->
+	<!-- **************** -->
+	<xs:complexType name="objectbankType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:choice maxOccurs="unbounded">
+				<xs:element name="section" type="sectionType"/>
+				<xs:element name="item" type="itemType"/>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="ident" type="xs:string" use="required"/>
+	</xs:complexType>
+	<!-- **************** -->
+	<!-- ** objectives ** -->
+	<!-- **************** -->
+	<xs:complexType name="objectivesType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:choice>
+				<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
+				<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="view" default="All">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="All"/>
+					<xs:enumeration value="Administrator"/>
+					<xs:enumeration value="AdminAuthority"/>
+					<xs:enumeration value="Assessor"/>
+					<xs:enumeration value="Author"/>
+					<xs:enumeration value="Candidate"/>
+					<xs:enumeration value="InvigilatorProctor"/>
+					<xs:enumeration value="Psychometrician"/>
+					<xs:enumeration value="Scorer"/>
+					<xs:enumeration value="Tutor"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<!-- *********************** -->
+	<!-- ** objects_condition ** -->
+	<!-- *********************** -->
+	<xs:complexType name="objects_conditionType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:choice minOccurs="0">
+				<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
+				<xs:element name="and_objects" type="and_objectsType"/>
+				<xs:element name="or_objects" type="or_objectsType"/>
+				<xs:element name="not_objects" type="not_objectsType"/>
+			</xs:choice>
+			<xs:element name="objects_parameter" type="objects_parameterType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="map_input" type="map_inputType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element ref="objectscond_extension" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<!-- *********************** -->
+	<!-- ** objects_parameter ** -->
+	<!-- *********************** -->
+	<xs:complexType name="objects_parameterType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="pname" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ******** -->
+	<!-- ** or ** -->
+	<!-- ******** -->
+	<xs:complexType name="orType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:element name="not" type="notType"/>
+			<xs:element name="and" type="andType"/>
+			<xs:element name="or" type="orType"/>
+			<xs:element name="unanswered" type="unansweredType"/>
+			<xs:element ref="other"/>
+			<xs:element name="varequal" type="varequalType"/>
+			<xs:element name="varlt" type="varltType"/>
+			<xs:element name="varlte" type="varlteType"/>
+			<xs:element name="vargt" type="vargtType"/>
+			<xs:element name="vargte" type="vargteType"/>
+			<xs:element name="varsubset" type="varsubsetType"/>
+			<xs:element name="varinside" type="varinsideType"/>
+			<xs:element name="varsubstring" type="varsubstringType"/>
+			<xs:element name="durequal" type="durequalType"/>
+			<xs:element name="durlt" type="durltType"/>
+			<xs:element name="durlte" type="durlteType"/>
+			<xs:element name="durgt" type="durgtType"/>
+			<xs:element name="durgte" type="durgteType"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- **************** -->
+	<!-- ** or_objects ** -->
+	<!-- **************** -->
+	<xs:complexType name="or_objectsType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
+			<xs:element name="and_objects" type="and_objectsType"/>
+			<xs:element name="or_objects" type="or_objectsType"/>
+			<xs:element name="not_objects" type="not_objectsType"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- ****************** -->
+	<!-- ** or_selection ** -->
+	<!-- ****************** -->
+	<xs:complexType name="or_selectionType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:element name="selection_metadata" type="selection_metadataType"/>
+			<xs:element name="and_selection" type="and_selectionType"/>
+			<xs:element name="or_selection" type="or_selectionType"/>
+			<xs:element name="not_selection" type="not_selectionType"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- ************* -->
+	<!-- ** or_test ** -->
+	<!-- ************* -->
+	<xs:complexType name="or_testType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:element name="variable_test" type="variable_testType"/>
+			<xs:element name="and_test" type="and_testType"/>
+			<xs:element name="or_test" type="or_testType"/>
+			<xs:element name="not_test" type="not_testType"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- *********** -->
+	<!-- ** order ** -->
+	<!-- *********** -->
+	<xs:complexType name="orderType">
+		<xs:sequence>
+			<xs:element ref="order_extension" minOccurs="0"/>
+		</xs:sequence>
+		<xs:attribute name="order_type" type="xs:string" use="required"/>
+	</xs:complexType>
+	<!-- ********************* -->
+	<!-- ** order_extension ** -->
+	<!-- ********************* -->
+	<xs:complexType name="order_extensionType" mixed="true">
+		<xs:sequence>
+			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:anyAttribute processContents="lax"/>
+	</xs:complexType>
+	<!-- ************** -->
+	<!-- ** outcomes ** -->
+	<!-- ************** -->
+	<xs:complexType name="outcomesType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:sequence maxOccurs="unbounded">
+				<xs:element name="decvar" type="decvarType"/>
+				<xs:element name="interpretvar" type="interpretvarType" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</xs:sequence>
+	</xs:complexType>
+	<!-- **************************** -->
+	<!-- ** outcomes_feedback_test ** -->
+	<!-- **************************** -->
+	<xs:complexType name="outcomes_feedback_testType">
+		<xs:sequence>
+			<xs:element name="test_variable" type="test_variableType"/>
+			<xs:element name="displayfeedback" type="displayfeedbackType" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:attribute name="title" type="xs:string"/>
+	</xs:complexType>
+	<!-- *********************** -->
+	<!-- ** outcomes_metadata ** -->
+	<!-- *********************** -->
+	<xs:complexType name="outcomes_metadataType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="mdname" type="xs:string" use="required"/>
+				<xs:attribute name="mdoperator" use="required">
+					<xs:simpleType>
+						<xs:restriction base="xs:NMTOKEN">
+							<xs:enumeration value="EQ"/>
+							<xs:enumeration value="NEQ"/>
+							<xs:enumeration value="LT"/>
+							<xs:enumeration value="LTE"/>
+							<xs:enumeration value="GT"/>
+							<xs:enumeration value="GTE"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:attribute>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ************************* -->
+	<!-- ** outcomes_processing ** -->
+	<!-- ************************* -->
+	<xs:complexType name="outcomes_processingType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:element name="outcomes" type="outcomesType"/>
+			<xs:element name="objects_condition" type="objects_conditionType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="processing_parameter" type="processing_parameterType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="map_output" type="map_outputType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="outcomes_feedback_test" type="outcomes_feedback_testType" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:attribute name="scoremodel" type="xs:string"/>
+	</xs:complexType>
+	<!-- ****************** -->
+	<!-- ** presentation ** -->
+	<!-- ****************** -->
+	<xs:complexType name="presentationType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:choice>
+				<xs:element name="flow" type="flowType"/>
+				<xs:choice maxOccurs="unbounded">
+					<xs:element name="material" type="materialType"/>
+					<xs:element name="response_lid" type="response_lidType"/>
+					<xs:element name="response_xy" type="response_xyType"/>
+					<xs:element name="response_str" type="response_strType"/>
+					<xs:element name="response_num" type="response_numType"/>
+					<xs:element name="response_grp" type="response_grpType"/>
+					<xs:element ref="response_extension"/>
+				</xs:choice>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="label" type="xs:string"/>
+		<xs:attribute ref="x:lang"/>
+		<xs:attribute name="y0" type="xs:string"/>
+		<xs:attribute name="x0" type="xs:string"/>
+		<xs:attribute name="width" type="xs:string"/>
+		<xs:attribute name="height" type="xs:string"/>
+	</xs:complexType>
+	<!-- *************************** -->
+	<!-- ** presentation_material ** -->
+	<!-- *************************** -->
+	<xs:complexType name="presentation_materialType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	<!-- ************************** -->
+	<!-- ** processing_parameter ** -->
+	<!-- ************************** -->
+	<xs:complexType name="processing_parameterType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="pname" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- **************** -->
+	<!-- ** qticomment ** -->
+	<!-- **************** -->
+	<xs:complexType name="qticommentType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute ref="x:lang"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ***************** -->
+	<!-- ** qtimetadata ** -->
+	<!-- ***************** -->
+	<xs:complexType name="qtimetadataType">
+		<xs:sequence>
+			<xs:element name="vocabulary" type="vocabularyType" minOccurs="0"/>
+			<xs:element name="qtimetadatafield" type="qtimetadatafieldType" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	<!-- ********************** -->
+	<!-- ** qtimetadatafield ** -->
+	<!-- ********************** -->
+	<xs:complexType name="qtimetadatafieldType">
+		<xs:sequence>
+			<xs:element ref="fieldlabel"/>
+			<xs:element ref="fieldentry"/>
+		</xs:sequence>
+		<xs:attribute ref="x:lang"/>
+	</xs:complexType>
+	<!-- ********************* -->
+	<!-- ** questestinterop ** -->
+	<!-- ********************* -->
+	<xs:complexType name="questestinteropType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:choice>
+				<xs:element name="objectbank" type="objectbankType"/>
+				<xs:element name="assessment" type="assessmentType"/>
+				<xs:choice maxOccurs="unbounded">
+					<xs:element name="section" type="sectionType"/>
+					<xs:element name="item" type="itemType"/>
+				</xs:choice>
+			</xs:choice>
+		</xs:sequence>
+	</xs:complexType>
+	<!-- *************** -->
+	<!-- ** reference ** -->
+	<!-- *************** -->
+	<xs:complexType name="referenceType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:element name="qticomment" type="qticommentType"/>
+			<xs:element name="material" type="materialType"/>
+			<xs:element name="mattext" type="mattextType"/>
+			<xs:element name="matemtext" type="matemtextType"/>
+			<xs:element name="matimage" type="matimageType"/>
+			<xs:element name="mataudio" type="mataudioType"/>
+			<xs:element name="matvideo" type="matvideoType"/>
+			<xs:element name="matapplet" type="matappletType"/>
+			<xs:element name="matapplication" type="matapplicationType"/>
+			<xs:element ref="matbreak"/>
+			<xs:element ref="mat_extension"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- ******************* -->
+	<!-- ** render_choice ** -->
+	<!-- ******************* -->
+	<xs:complexType name="render_choiceType">
+		<xs:sequence>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element name="material" type="materialType"/>
+				<xs:element name="material_ref" type="material_refType"/>
+				<xs:element name="response_label" type="response_labelType"/>
+				<xs:element name="flow_label" type="flow_labelType"/>
+			</xs:choice>
+			<xs:element ref="response_na" minOccurs="0"/>
+		</xs:sequence>
+		<xs:attribute name="shuffle" default="No">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="minnumber" type="xs:string"/>
+		<xs:attribute name="maxnumber" type="xs:string"/>
+	</xs:complexType>
+	<!-- ********************** -->
+	<!-- ** render_extension ** -->
+	<!-- ********************** -->
+	<xs:complexType name="render_extensionType" mixed="true">
+		<xs:sequence>
+			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:anyAttribute processContents="lax"/>
+	</xs:complexType>
+	<!-- **************** -->
+	<!-- ** render_fib ** -->
+	<!-- **************** -->
+	<xs:complexType name="render_fibType">
+		<xs:sequence>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element name="material" type="materialType"/>
+				<xs:element name="material_ref" type="material_refType"/>
+				<xs:element name="response_label" type="response_labelType"/>
+				<xs:element name="flow_label" type="flow_labelType"/>
+			</xs:choice>
+			<xs:element ref="response_na" minOccurs="0"/>
+		</xs:sequence>
+		<xs:attribute name="encoding" type="xs:string" default="UTF_8"/>
+		<xs:attribute name="fibtype" default="String">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="String"/>
+					<xs:enumeration value="Integer"/>
+					<xs:enumeration value="Decimal"/>
+					<xs:enumeration value="Scientific"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="rows" type="xs:string"/>
+		<xs:attribute name="maxchars" type="xs:string"/>
+		<xs:attribute name="prompt">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Box"/>
+					<xs:enumeration value="Dashline"/>
+					<xs:enumeration value="Asterisk"/>
+					<xs:enumeration value="Underline"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="columns" type="xs:string"/>
+		<xs:attribute name="charset" type="xs:string" default="ascii-us"/>
+		<xs:attribute name="maxnumber" type="xs:string"/>
+		<xs:attribute name="minnumber" type="xs:string"/>
+	</xs:complexType>
+	<!-- ******************** -->
+	<!-- ** render_hotspot ** -->
+	<!-- ******************** -->
+	<xs:complexType name="render_hotspotType">
+		<xs:sequence>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element name="material" type="materialType"/>
+				<xs:element name="material_ref" type="material_refType"/>
+				<xs:element name="response_label" type="response_labelType"/>
+				<xs:element name="flow_label" type="flow_labelType"/>
+			</xs:choice>
+			<xs:element ref="response_na" minOccurs="0"/>
+		</xs:sequence>
+		<xs:attribute name="maxnumber" type="xs:string"/>
+		<xs:attribute name="minnumber" type="xs:string"/>
+		<xs:attribute name="showdraw" default="No">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<!-- ******************* -->
+	<!-- ** render_slider ** -->
+	<!-- ******************* -->
+	<xs:complexType name="render_sliderType">
+		<xs:sequence>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element name="material" type="materialType"/>
+				<xs:element name="material_ref" type="material_refType"/>
+				<xs:element name="response_label" type="response_labelType"/>
+				<xs:element name="flow_label" type="flow_labelType"/>
+			</xs:choice>
+			<xs:element ref="response_na" minOccurs="0"/>
+		</xs:sequence>
+		<xs:attribute name="orientation" default="Horizontal">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Horizontal"/>
+					<xs:enumeration value="Vertical"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="lowerbound" type="xs:string" use="required"/>
+		<xs:attribute name="upperbound" type="xs:string" use="required"/>
+		<xs:attribute name="step" type="xs:string"/>
+		<xs:attribute name="startval" type="xs:string"/>
+		<xs:attribute name="steplabel" default="No">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="maxnumber" type="xs:string"/>
+		<xs:attribute name="minnumber" type="xs:string"/>
+	</xs:complexType>
+	<!-- ************************ -->
+	<!-- ** respcond_extension ** -->
+	<!-- ************************ -->
+	<xs:complexType name="respcond_extensionType" mixed="true">
+		<xs:sequence>
+			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:anyAttribute processContents="lax"/>
+	</xs:complexType>
+	<!-- ******************* -->
+	<!-- ** respcondition ** -->
+	<!-- ******************* -->
+	<xs:complexType name="respconditionType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:element name="conditionvar" type="conditionvarType"/>
+			<xs:element name="setvar" type="setvarType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="displayfeedback" type="displayfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element ref="respcond_extension" minOccurs="0"/>
+		</xs:sequence>
+		<xs:attribute name="continue" default="No">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="title" type="xs:string"/>
+	</xs:complexType>
+	<!-- ************************ -->
+	<!-- ** response_extension ** -->
+	<!-- ************************ -->
+	<xs:complexType name="response_extensionType" mixed="true">
+		<xs:sequence>
+			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:anyAttribute processContents="lax"/>
+	</xs:complexType>
+	<!-- ****************** -->
+	<!-- ** response_grp ** -->
+	<!-- ****************** -->
+	<xs:complexType name="response_grpType">
+		<xs:sequence>
+			<xs:choice minOccurs="0">
+				<xs:element name="material" type="materialType"/>
+				<xs:element name="material_ref" type="material_refType"/>
+			</xs:choice>
+			<xs:choice>
+				<xs:element name="render_choice" type="render_choiceType"/>
+				<xs:element name="render_hotspot" type="render_hotspotType"/>
+				<xs:element name="render_slider" type="render_sliderType"/>
+				<xs:element name="render_fib" type="render_fibType"/>
+				<xs:element ref="render_extension"/>
+			</xs:choice>
+			<xs:choice minOccurs="0">
+				<xs:element name="material" type="materialType"/>
+				<xs:element name="material_ref" type="material_refType"/>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="rcardinality" default="Single">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Single"/>
+					<xs:enumeration value="Multiple"/>
+					<xs:enumeration value="Ordered"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="ident" type="xs:string" use="required"/>
+		<xs:attribute name="rtiming" default="No">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<!-- ************************ -->
+	<!-- ** response_lableType ** -->
+	<!-- ************************ -->
+	<xs:complexType name="response_labelType" mixed="true">
+		<xs:choice minOccurs="0" maxOccurs="unbounded">
+			<xs:element name="qticomment" type="qticommentType"/>
+			<xs:element name="material" type="materialType"/>
+			<xs:element name="material_ref" type="material_refType"/>
+			<xs:element name="flow_mat" type="flow_matType"/>
+		</xs:choice>
+		<xs:attribute name="rshuffle" default="Yes">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="rarea" default="Ellipse">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Ellipse"/>
+					<xs:enumeration value="Rectangle"/>
+					<xs:enumeration value="Bounded"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="rrange" default="Exact">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Exact"/>
+					<xs:enumeration value="Range"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="labelrefid" type="xs:string"/>
+		<xs:attribute name="ident" type="xs:string" use="required"/>
+		<xs:attribute name="match_group" type="xs:string"/>
+		<xs:attribute name="match_max" type="xs:string"/>
+	</xs:complexType>
+	<!-- ****************** -->
+	<!-- ** response_lid ** -->
+	<!-- ****************** -->
+	<xs:complexType name="response_lidType">
+		<xs:sequence>
+			<xs:choice minOccurs="0">
+				<xs:element name="material" type="materialType"/>
+				<xs:element name="material_ref" type="material_refType"/>
+			</xs:choice>
+			<xs:choice>
+				<xs:element name="render_choice" type="render_choiceType"/>
+				<xs:element name="render_hotspot" type="render_hotspotType"/>
+				<xs:element name="render_slider" type="render_sliderType"/>
+				<xs:element name="render_fib" type="render_fibType"/>
+				<xs:element ref="render_extension"/>
+			</xs:choice>
+			<xs:choice minOccurs="0">
+				<xs:element name="material" type="materialType"/>
+				<xs:element name="material_ref" type="material_refType"/>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="rcardinality" default="Single">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Single"/>
+					<xs:enumeration value="Multiple"/>
+					<xs:enumeration value="Ordered"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="rtiming" default="No">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="ident" type="xs:string" use="required"/>
+	</xs:complexType>
+	<!-- ***************** -->
+	<!-- ** response_na ** -->
+	<!-- ***************** -->
+	<xs:complexType name="response_naType"/>
+	<!-- ****************** -->
+	<!-- ** response_num ** -->
+	<!-- ****************** -->
+	<xs:complexType name="response_numType">
+		<xs:sequence>
+			<xs:choice minOccurs="0">
+				<xs:element name="material" type="materialType"/>
+				<xs:element name="material_ref" type="material_refType"/>
+			</xs:choice>
+			<xs:choice>
+				<xs:element name="render_choice" type="render_choiceType"/>
+				<xs:element name="render_hotspot" type="render_hotspotType"/>
+				<xs:element name="render_slider" type="render_sliderType"/>
+				<xs:element name="render_fib" type="render_fibType"/>
+				<xs:element ref="render_extension"/>
+			</xs:choice>
+			<xs:choice minOccurs="0">
+				<xs:element name="material" type="materialType"/>
+				<xs:element name="material_ref" type="material_refType"/>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="numtype" default="Integer">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Integer"/>
+					<xs:enumeration value="Decimal"/>
+					<xs:enumeration value="Scientific"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="rcardinality" default="Single">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Single"/>
+					<xs:enumeration value="Multiple"/>
+					<xs:enumeration value="Ordered"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="ident" type="xs:string" use="required"/>
+		<xs:attribute name="rtiming" default="No">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<!-- ****************** -->
+	<!-- ** response_str ** -->
+	<!-- ****************** -->
+	<xs:complexType name="response_strType">
+		<xs:sequence>
+			<xs:choice minOccurs="0">
+				<xs:element name="material" type="materialType"/>
+				<xs:element name="material_ref" type="material_refType"/>
+			</xs:choice>
+			<xs:choice>
+				<xs:element name="render_choice" type="render_choiceType"/>
+				<xs:element name="render_hotspot" type="render_hotspotType"/>
+				<xs:element name="render_slider" type="render_sliderType"/>
+				<xs:element name="render_fib" type="render_fibType"/>
+				<xs:element ref="render_extension"/>
+			</xs:choice>
+			<xs:choice minOccurs="0">
+				<xs:element name="material" type="materialType"/>
+				<xs:element name="material_ref" type="material_refType"/>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="rcardinality" default="Single">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Single"/>
+					<xs:enumeration value="Multiple"/>
+					<xs:enumeration value="Ordered"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="ident" type="xs:string" use="required"/>
+		<xs:attribute name="rtiming" default="No">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<!-- ***************** -->
+	<!-- ** response_xy ** -->
+	<!-- ***************** -->
+	<xs:complexType name="response_xyType">
+		<xs:sequence>
+			<xs:choice minOccurs="0">
+				<xs:element name="material" type="materialType"/>
+				<xs:element name="material_ref" type="material_refType"/>
+			</xs:choice>
+			<xs:choice>
+				<xs:element name="render_choice" type="render_choiceType"/>
+				<xs:element name="render_hotspot" type="render_hotspotType"/>
+				<xs:element name="render_slider" type="render_sliderType"/>
+				<xs:element name="render_fib" type="render_fibType"/>
+				<xs:element ref="render_extension"/>
+			</xs:choice>
+			<xs:choice minOccurs="0">
+				<xs:element name="material" type="materialType"/>
+				<xs:element name="material_ref" type="material_refType"/>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="rcardinality" default="Single">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Single"/>
+					<xs:enumeration value="Multiple"/>
+					<xs:enumeration value="Ordered"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="rtiming" default="No">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="ident" type="xs:string" use="required"/>
+	</xs:complexType>
+	<!-- ******************* -->
+	<!-- ** resprocessing ** -->
+	<!-- ******************* -->
+	<xs:complexType name="resprocessingType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:element name="outcomes" type="outcomesType"/>
+			<xs:choice maxOccurs="unbounded">
+				<xs:element name="respcondition" type="respconditionType"/>
+				<xs:element ref="itemproc_extension"/>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="scoremodel" type="xs:string"/>
+	</xs:complexType>
+	<!-- ************ -->
+	<!-- ** rubric ** -->
+	<!-- ************ -->
+	<xs:complexType name="rubricType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:choice>
+				<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
+				<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="view" default="All">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="All"/>
+					<xs:enumeration value="Administrator"/>
+					<xs:enumeration value="AdminAuthority"/>
+					<xs:enumeration value="Assessor"/>
+					<xs:enumeration value="Author"/>
+					<xs:enumeration value="Candidate"/>
+					<xs:enumeration value="InvigilatorProctor"/>
+					<xs:enumeration value="Psychometrician"/>
+					<xs:enumeration value="Scorer"/>
+					<xs:enumeration value="Tutor"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<!-- ************* -->
+	<!-- ** section ** -->
+	<!-- ************* -->
+	<xs:complexType name="sectionType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:element ref="duration" minOccurs="0"/>
+			<xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="objectives" type="objectivesType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="sectioncontrol" type="sectioncontrolType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element ref="sectionprecondition" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element ref="sectionpostcondition" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="rubric" type="rubricType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="presentation_material" type="presentation_materialType" minOccurs="0"/>
+			<xs:element name="outcomes_processing" type="outcomes_processingType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element ref="sectionproc_extension" minOccurs="0"/>
+			<xs:element name="sectionfeedback" type="sectionfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="selection_ordering" type="selection_orderingType" minOccurs="0"/>
+			<xs:element name="reference" type="referenceType" minOccurs="0"/>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element name="itemref" type="itemrefType"/>
+				<xs:element name="item" type="itemType"/>
+				<xs:element name="sectionref" type="sectionrefType"/>
+				<xs:element name="section" type="sectionType"/>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="ident" type="xs:string" use="required"/>
+		<xs:attribute name="title" type="xs:string"/>
+		<xs:attribute ref="x:lang"/>
+	</xs:complexType>
+	<!-- ******************** -->
+	<!-- ** sectioncontrol ** -->
+	<!-- ******************** -->
+	<xs:complexType name="sectioncontrolType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+		</xs:sequence>
+		<xs:attribute name="feedbackswitch" default="Yes">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="hintswitch" default="Yes">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="solutionswitch" default="Yes">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Yes"/>
+					<xs:enumeration value="No"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="view" default="All">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="All"/>
+					<xs:enumeration value="Administrator"/>
+					<xs:enumeration value="AdminAuthority"/>
+					<xs:enumeration value="Assessor"/>
+					<xs:enumeration value="Author"/>
+					<xs:enumeration value="Candidate"/>
+					<xs:enumeration value="InvigilatorProctor"/>
+					<xs:enumeration value="Psychometrician"/>
+					<xs:enumeration value="Scorer"/>
+					<xs:enumeration value="Tutor"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<!-- ********************* -->
+	<!-- ** sectionfeedback ** -->
+	<!-- ********************* -->
+	<xs:complexType name="sectionfeedbackType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:choice>
+				<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
+				<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="view" default="All">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="All"/>
+					<xs:enumeration value="Administrator"/>
+					<xs:enumeration value="AdminAuthority"/>
+					<xs:enumeration value="Assessor"/>
+					<xs:enumeration value="Author"/>
+					<xs:enumeration value="Candidate"/>
+					<xs:enumeration value="InvigilatorProctor"/>
+					<xs:enumeration value="Psychometrician"/>
+					<xs:enumeration value="Scorer"/>
+					<xs:enumeration value="Tutor"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="ident" type="xs:string" use="required"/>
+		<xs:attribute name="title" type="xs:string"/>
+	</xs:complexType>
+	<!-- *************************** -->
+	<!-- ** sectionproc_extension ** -->
+	<!-- *************************** -->
+	<xs:complexType name="sectionproc_extensionType" mixed="true">
+		<xs:sequence>
+			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:anyAttribute processContents="lax"/>
+	</xs:complexType>
+	<!-- **************** -->
+	<!-- ** sectionref ** -->
+	<!-- **************** -->
+	<xs:complexType name="sectionrefType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="linkrefid" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- *************** -->
+	<!-- ** selection ** -->
+	<!-- *************** -->
+	<xs:complexType name="selectionType">
+		<xs:sequence>
+			<xs:element ref="sourcebank_ref" minOccurs="0"/>
+			<xs:element ref="selection_number" minOccurs="0"/>
+			<xs:element name="selection_metadata" type="selection_metadataType" minOccurs="0"/>
+			<xs:choice minOccurs="0">
+				<xs:element name="and_selection" type="and_selectionType"/>
+				<xs:element name="or_selection" type="or_selectionType"/>
+				<xs:element name="not_selection" type="not_selectionType"/>
+				<xs:element ref="selection_extension"/>
+			</xs:choice>
+		</xs:sequence>
+	</xs:complexType>
+	<!-- ************************* -->
+	<!-- ** selection_extension ** -->
+	<!-- ************************* -->
+	<xs:complexType name="selection_extensionType" mixed="true">
+		<xs:sequence>
+			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:anyAttribute processContents="lax"/>
+	</xs:complexType>
+	<!-- ************************ -->
+	<!-- ** selection_metadata ** -->
+	<!-- ************************ -->
+	<xs:complexType name="selection_metadataType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="mdname" type="xs:string" use="required"/>
+				<xs:attribute name="mdoperator" use="required">
+					<xs:simpleType>
+						<xs:restriction base="xs:NMTOKEN">
+							<xs:enumeration value="EQ"/>
+							<xs:enumeration value="NEQ"/>
+							<xs:enumeration value="LT"/>
+							<xs:enumeration value="LTE"/>
+							<xs:enumeration value="GT"/>
+							<xs:enumeration value="GTE"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:attribute>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ************************ -->
+	<!-- ** selection_ordering ** -->
+	<!-- ************************ -->
+	<xs:complexType name="selection_orderingType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:element name="sequence_parameter" type="sequence_parameterType" minOccurs="0"/>
+			<xs:element name="selection" type="selectionType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="order" type="orderType" minOccurs="0"/>
+		</xs:sequence>
+		<xs:attribute name="sequence_type" type="xs:string"/>
+	</xs:complexType>
+	<!-- ************************ -->
+	<!-- ** sequence_parameter ** -->
+	<!-- ************************ -->
+	<xs:complexType name="sequence_parameterType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="pname" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ************ -->
+	<!-- ** setvar ** -->
+	<!-- ************ -->
+	<xs:complexType name="setvarType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
+				<xs:attribute name="action" default="Set">
+					<xs:simpleType>
+						<xs:restriction base="xs:NMTOKEN">
+							<xs:enumeration value="Set"/>
+							<xs:enumeration value="Add"/>
+							<xs:enumeration value="Subtract"/>
+							<xs:enumeration value="Multiply"/>
+							<xs:enumeration value="Divide"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:attribute>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ************** -->
+	<!-- ** solution ** -->
+	<!-- ************** -->
+	<xs:complexType name="solutionType">
+		<xs:sequence>
+			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
+			<xs:element name="solutionmaterial" type="solutionmaterialType" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:attribute name="feedbackstyle" default="Complete">
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:enumeration value="Complete"/>
+					<xs:enumeration value="Incremental"/>
+					<xs:enumeration value="Multilevel"/>
+					<xs:enumeration value="Proprietary"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<!-- ********************** -->
+	<!-- ** solutionmaterial ** -->
+	<!-- ********************** -->
+	<xs:complexType name="solutionmaterialType">
+		<xs:choice>
+			<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
+			<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- ******************* -->
+	<!-- ** test_variable ** -->
+	<!-- ******************* -->
+	<xs:complexType name="test_variableType">
+		<xs:choice>
+			<xs:element name="variable_test" type="variable_testType"/>
+			<xs:element name="and_test" type="and_testType"/>
+			<xs:element name="or_test" type="or_testType"/>
+			<xs:element name="not_test" type="not_testType"/>
+		</xs:choice>
+	</xs:complexType>
+	<!-- **************** -->
+	<!-- ** unanswered ** -->
+	<!-- **************** -->
+	<xs:complexType name="unansweredType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="respident" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ******************* -->
+	<!-- ** var_extension ** -->
+	<!-- ******************* -->
+	<xs:complexType name="var_extensionType" mixed="true">
+		<xs:sequence>
+			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:anyAttribute processContents="lax"/>
+	</xs:complexType>
+	<!-- ************** -->
+	<!-- ** varequal ** -->
+	<!-- ************** -->
+	<xs:complexType name="varequalType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="case" default="No">
+					<xs:simpleType>
+						<xs:restriction base="xs:NMTOKEN">
+							<xs:enumeration value="Yes"/>
+							<xs:enumeration value="No"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:attribute>
+				<xs:attribute name="respident" type="xs:string" use="required"/>
+				<xs:attribute name="index" type="xs:string"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- *********** -->
+	<!-- ** vargt ** -->
+	<!-- *********** -->
+	<xs:complexType name="vargtType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="respident" type="xs:string" use="required"/>
+				<xs:attribute name="index" type="xs:string"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ************ -->
+	<!-- ** vargte ** -->
+	<!-- ************ -->
+	<xs:complexType name="vargteType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="respident" type="xs:string" use="required"/>
+				<xs:attribute name="index" type="xs:string"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ******************* -->
+	<!-- ** variable_test ** -->
+	<!-- ******************* -->
+	<xs:complexType name="variable_testType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
+				<xs:attribute name="testoperator" use="required">
+					<xs:simpleType>
+						<xs:restriction base="xs:NMTOKEN">
+							<xs:enumeration value="EQ"/>
+							<xs:enumeration value="NEQ"/>
+							<xs:enumeration value="LT"/>
+							<xs:enumeration value="LTE"/>
+							<xs:enumeration value="GT"/>
+							<xs:enumeration value="GTE"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:attribute>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- *************** -->
+	<!-- ** varinside ** -->
+	<!-- *************** -->
+	<xs:complexType name="varinsideType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="areatype" use="required">
+					<xs:simpleType>
+						<xs:restriction base="xs:NMTOKEN">
+							<xs:enumeration value="Ellipse"/>
+							<xs:enumeration value="Rectangle"/>
+							<xs:enumeration value="Bounded"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:attribute>
+				<xs:attribute name="respident" type="xs:string" use="required"/>
+				<xs:attribute name="index" type="xs:string"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- *********** -->
+	<!-- ** varlt ** -->
+	<!-- *********** -->
+	<xs:complexType name="varltType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="respident" type="xs:string" use="required"/>
+				<xs:attribute name="index" type="xs:string"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ************ -->
+	<!-- ** varlte ** -->
+	<!-- ************ -->
+	<xs:complexType name="varlteType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="respident" type="xs:string" use="required"/>
+				<xs:attribute name="index" type="xs:string"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- *************** -->
+	<!-- ** varsubset ** -->
+	<!-- *************** -->
+	<xs:complexType name="varsubsetType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="respident" type="xs:string" use="required"/>
+				<xs:attribute name="setmatch" default="Exact">
+					<xs:simpleType>
+						<xs:restriction base="xs:NMTOKEN">
+							<xs:enumeration value="Exact"/>
+							<xs:enumeration value="Partial"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:attribute>
+				<xs:attribute name="index" type="xs:string"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- ****************** -->
+	<!-- ** varsubstring ** -->
+	<!-- ****************** -->
+	<xs:complexType name="varsubstringType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="index" type="xs:string"/>
+				<xs:attribute name="respident" type="xs:string" use="required"/>
+				<xs:attribute name="case" default="No">
+					<xs:simpleType>
+						<xs:restriction base="xs:NMTOKEN">
+							<xs:enumeration value="Yes"/>
+							<xs:enumeration value="No"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:attribute>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<!-- **************** -->
+	<!-- ** vocabulary ** -->
+	<!-- **************** -->
+	<xs:complexType name="vocabularyType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="uri" type="xs:string"/>
+				<xs:attribute name="entityref" type="xs:ENTITY"/>
+				<xs:attribute name="vocab_type" type="xs:string"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+</xs:schema>

+ 24 - 24
main/newscorm/packaging/ims_xml.xsd → main/lp/packaging/ims_xml.xsd

@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- filename=ims_xml.xsd -->
-<xsd:schema xmlns="http://www.w3.org/XML/1998/namespace" 
-            targetNamespace="http://www.w3.org/XML/1998/namespace" 
-            xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
-            elementFormDefault="qualified">
-	<!-- 2001-02-22 edited by Thomas Wason IMS Global Learning Consortium, Inc. -->
-	<xsd:annotation>
-		<xsd:documentation>In namespace-aware XML processors, the &quot;xml&quot; prefix is bound to the namespace name http://www.w3.org/XML/1998/namespace.</xsd:documentation>
-		<xsd:documentation>Do not reference this file in XML instances</xsd:documentation>
-                <xsd:documentation>Schawn Thropp: Changed the uriReference type to string type</xsd:documentation>
-	</xsd:annotation>
-	<xsd:attribute name="lang" type="xsd:language">
-		<xsd:annotation>
-			<xsd:documentation>Refers to universal  XML 1.0 lang attribute</xsd:documentation>
-		</xsd:annotation>
-	</xsd:attribute>
-	<xsd:attribute name="base" type="xsd:string">
-		<xsd:annotation>
-			<xsd:documentation>Refers to XML Base: http://www.w3.org/TR/xmlbase</xsd:documentation>
-		</xsd:annotation>
-	</xsd:attribute>
-	<xsd:attribute name="link" type="xsd:string"/>
-</xsd:schema>
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- filename=ims_xml.xsd -->
+<xsd:schema xmlns="http://www.w3.org/XML/1998/namespace" 
+            targetNamespace="http://www.w3.org/XML/1998/namespace" 
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+            elementFormDefault="qualified">
+	<!-- 2001-02-22 edited by Thomas Wason IMS Global Learning Consortium, Inc. -->
+	<xsd:annotation>
+		<xsd:documentation>In namespace-aware XML processors, the &quot;xml&quot; prefix is bound to the namespace name http://www.w3.org/XML/1998/namespace.</xsd:documentation>
+		<xsd:documentation>Do not reference this file in XML instances</xsd:documentation>
+                <xsd:documentation>Schawn Thropp: Changed the uriReference type to string type</xsd:documentation>
+	</xsd:annotation>
+	<xsd:attribute name="lang" type="xsd:language">
+		<xsd:annotation>
+			<xsd:documentation>Refers to universal  XML 1.0 lang attribute</xsd:documentation>
+		</xsd:annotation>
+	</xsd:attribute>
+	<xsd:attribute name="base" type="xsd:string">
+		<xsd:annotation>
+			<xsd:documentation>Refers to XML Base: http://www.w3.org/TR/xmlbase</xsd:documentation>
+		</xsd:annotation>
+	</xsd:attribute>
+	<xsd:attribute name="link" type="xsd:string"/>
+</xsd:schema>

+ 345 - 345
main/newscorm/packaging/imscp_rootv1p1p2.xsd → main/lp/packaging/imscp_rootv1p1p2.xsd

@@ -1,345 +1,345 @@
-<?xml version="1.0"?>
-
-<!-- edited with XML Spy v3.5 (http://www.xmlspy.com) by Thomas Wason (private) -->
-<!-- filename=ims_cp_rootv1p1p2.xsd -->
-<!-- Copyright (2) 2001 IMS Global Learning Consortium, Inc. -->
-<!-- edited by Thomas Wason  -->
-<!-- Conforms to w3c http://www.w3.org/TR/xmlschema-1/ 2000-10-24-->
-
-<xsd:schema xmlns="http://www.imsproject.org/xsd/imscp_rootv1p1p2" 
-            targetNamespace="http://www.imsproject.org/xsd/imscp_rootv1p1p2" 
-            xmlns:xml="http://www.w3.org/XML/1998/namespace" 
-            xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
-            elementFormDefault="unqualified" version="IMS CP 1.1.2">
-
-   <!-- ******************** -->
-   <!-- ** Change History ** -->
-   <!-- ******************** -->
-   <xsd:annotation>
-      <xsd:documentation xml:lang="en">DRAFT XSD for IMS Content Packaging version 1.1 DRAFT</xsd:documentation>
-      <xsd:documentation> Copyright (c) 2001 IMS GLC, Inc. </xsd:documentation>
-      <xsd:documentation>2000-04-21, Adjustments by T.D. Wason from CP 1.0.</xsd:documentation>
-      <xsd:documentation>2001-02-22, T.D.Wason: Modify for 2000-10-24 XML-Schema version.  Modified to support extension.</xsd:documentation>
-      <xsd:documentation>2001-03-12, T.D.Wason: Change filename, target and meta-data namespaces and meta-data fielname.  Add meta-data to itemType, fileType and organizationType.</xsd:documentation>
-      <xsd:documentation>Do not define namespaces for xml in XML instances generated from this xsd.</xsd:documentation>
-      <xsd:documentation>Imports IMS meta-data xsd, lower case element names.         </xsd:documentation>
-      <xsd:documentation>This XSD provides a reference to the IMS meta-data root element as imsmd:record</xsd:documentation>
-      <xsd:documentation>If the IMS meta-data is to be used in the XML instance then the instance must define an IMS meta-data prefix with a namespace.  The meta-data targetNamespace should be used.  </xsd:documentation>
-      <xsd:documentation>2001-03-20, Thor Anderson: Remove manifestref, change resourceref back to identifierref, change manifest back to contained by manifest. --Tom Wason: manifest may contain _none_ or more manifests.</xsd:documentation>
-      <xsd:documentation>2001-04-13 Tom Wason: corrected attirbute name structure.  Was misnamed type.  </xsd:documentation>
-      <xsd:documentation>2001-05-14 Schawn Thropp: Made all complexType extensible with the group.any</xsd:documentation>
-      <xsd:documentation>Added the anyAttribute to all complexTypes. Changed the href attribute on the fileType and resourceType to xsd:string</xsd:documentation>
-      <xsd:documentation>Changed the maxLength of the href, identifierref, parameters, structure attributes to match the Information model.</xsd:documentation>
-      <xsd:documentation>2001-07-25 Schawn Thropp: Changed the namespace for the Schema of Schemas to the 5/2/2001 W3C XML Schema</xsd:documentation> 
-      <xsd:documentation>Recommendation. attributeGroup attr.imsmd deleted, was not used anywhere.  Any attribute declarations that have</xsd:documentation>
-      <xsd:documentation>use = "default" changed to use="optional" - attr.structure.req.</xsd:documentation>
-      <xsd:documentation>Any attribute declarations that have value="somevalue" changed to default="somevalue",</xsd:documentation>
-      <xsd:documentation>attr.structure.req (hierarchical).  Removed references to IMS MD Version 1.1.</xsd:documentation>
-      <xsd:documentation>Modified attribute group "attr.resourcetype.req" to change use from optional</xsd:documentation>
-      <xsd:documentation>to required to match the information model.  As a result the default value also needed to be removed</xsd:documentation> 
-      <xsd:documentation>Name change for XSD.  Changed to match version of CP Spec                                           </xsd:documentation> 
-   </xsd:annotation>
-
-   <xsd:annotation>
-      <xsd:documentation>Inclusions and Imports</xsd:documentation>
-   </xsd:annotation>
-
-   <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="ims_xml.xsd"/>
-
-   <xsd:annotation>
-      <xsd:documentation>Attribute Declarations</xsd:documentation>
-   </xsd:annotation>
-
-   <!-- **************************** -->
-   <!-- ** Attribute Declarations ** -->
-   <!-- **************************** -->
-   <xsd:attributeGroup name="attr.base">
-      <xsd:attribute ref="xml:base" use="optional"/>
-   </xsd:attributeGroup>
-
-   <xsd:attributeGroup name="attr.default">
-      <xsd:attribute name="default" type="xsd:IDREF" use="optional"/>
-   </xsd:attributeGroup>
-
-   <xsd:attributeGroup name="attr.href">
-      <xsd:attribute name="href" use="optional">
-         <xsd:simpleType>
-            <xsd:restriction base="xsd:anyURI">
-               <xsd:maxLength value="2000"/>
-            </xsd:restriction>
-         </xsd:simpleType>
-      </xsd:attribute>
-   </xsd:attributeGroup>
-
-   <xsd:attributeGroup name="attr.href.req">
-      <xsd:attribute name="href" use="required">
-         <xsd:simpleType>
-            <xsd:restriction base="xsd:anyURI">
-               <xsd:maxLength value="2000"/>
-            </xsd:restriction>
-         </xsd:simpleType>
-      </xsd:attribute>
-   </xsd:attributeGroup> 
-
-   <xsd:attributeGroup name="attr.identifier.req">
-      <xsd:attribute name="identifier" type="xsd:ID" use="required"/>
-   </xsd:attributeGroup>
-
-   <xsd:attributeGroup name="attr.identifier">
-      <xsd:attribute name="identifier" type="xsd:ID" use="optional"/>
-   </xsd:attributeGroup>
-
-   <xsd:attributeGroup name="attr.isvisible">
-      <xsd:attribute name="isvisible" type="xsd:boolean" use="optional"/>
-   </xsd:attributeGroup>
-   
-   <xsd:attributeGroup name="attr.parameters">
-      <xsd:attribute name="parameters" use="optional">
-         <xsd:simpleType>
-            <xsd:restriction base="xsd:string">
-               <xsd:maxLength value="1000"/>
-            </xsd:restriction>
-         </xsd:simpleType>
-      </xsd:attribute>
-   </xsd:attributeGroup>
-   
-   <xsd:attributeGroup name="attr.identifierref">
-      <xsd:attribute name="identifierref" use="optional">
-         <xsd:simpleType>
-            <xsd:restriction base="xsd:string">
-               <xsd:maxLength value="2000"/>
-            </xsd:restriction>
-         </xsd:simpleType>
-      </xsd:attribute>
-   </xsd:attributeGroup>
-   
-   <xsd:attributeGroup name="attr.identifierref.req">
-      <xsd:attribute name="identifierref" use="required">
-         <xsd:simpleType>
-            <xsd:restriction base="xsd:string">
-               <xsd:maxLength value="2000"/>
-            </xsd:restriction>
-         </xsd:simpleType>
-      </xsd:attribute>
-   </xsd:attributeGroup>
-                
-   <xsd:attributeGroup name="attr.resourcetype.req">
-      <xsd:attribute name="type" use="required">
-         <xsd:simpleType>
-            <xsd:restriction base="xsd:string">
-               <xsd:maxLength value="1000"/>
-            </xsd:restriction>
-         </xsd:simpleType>
-      </xsd:attribute>
-   </xsd:attributeGroup>
-
-   <xsd:attributeGroup name="attr.structure.req">
-      <xsd:attribute name="structure" use="optional" default="hierarchical">
-         <xsd:simpleType>
-            <xsd:restriction base="xsd:string">
-               <xsd:maxLength value="200"/>
-            </xsd:restriction>
-         </xsd:simpleType>
-      </xsd:attribute>
-   </xsd:attributeGroup>
-
-   <xsd:attributeGroup name="attr.version">
-      <xsd:attribute name="version" use="optional">
-         <xsd:simpleType>
-            <xsd:restriction base="xsd:string">
-               <xsd:maxLength value="20"/>
-            </xsd:restriction>
-         </xsd:simpleType>
-      </xsd:attribute>
-   </xsd:attributeGroup>
-
-   <xsd:annotation>
-       <xsd:documentation>element groups</xsd:documentation>
-   </xsd:annotation>
-
-   <xsd:group name="grp.any">
-      <xsd:annotation>
-         <xsd:documentation>Any namespaced element from any namespace may be included within an &quot;any&quot; element.  The namespace for the imported element must be defined in the instance, and the schema must be imported.  </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-         <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:sequence>
-   </xsd:group>
-
-   <!-- ************************** -->
-   <!-- ** Element Declarations ** -->
-   <!-- ************************** -->
-
-   <xsd:element name="dependency" type="dependencyType"/>
-   <xsd:element name="file" type="fileType"/>
-   <xsd:element name="item" type="itemType"/>
-   <xsd:element name="manifest" type="manifestType"/>
-   <xsd:element name="metadata" type="metadataType"/>
-   <xsd:element name="organization" type="organizationType"/>
-   <xsd:element name="organizations" type="organizationsType"/>
-   <xsd:element name="resource" type="resourceType"/>
-   <xsd:element name="resources" type="resourcesType"/>
-   <xsd:element name="schema" type="schemaType"/>
-   <xsd:element name="schemaversion" type="schemaversionType"/>
-   <xsd:element name="title" type="titleType"/>
-
-   <!-- ******************* -->
-   <!-- ** Complex Types ** -->
-   <!-- ******************* -->
-
-   <!-- **************** -->
-   <!-- ** dependency ** -->
-   <!-- **************** -->
-   <xsd:complexType name="dependencyType">
-      <xsd:sequence>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-      <xsd:attributeGroup ref="attr.identifierref.req"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-   </xsd:complexType>
-   
-   <!-- ********** -->
-   <!-- ** file ** -->
-   <!-- ********** -->
-   <xsd:complexType name="fileType">
-      <xsd:sequence>
-         <xsd:element ref="metadata" minOccurs="0"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-      <xsd:attributeGroup ref="attr.href.req"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-   </xsd:complexType>
-   
-   <!-- ********** -->
-   <!-- ** item ** -->
-   <!-- ********** -->
-   <xsd:complexType name="itemType">
-      <xsd:sequence>
-         <xsd:element ref="title" minOccurs="0"/>
-         <xsd:element ref="item" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="metadata" minOccurs="0"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-      <xsd:attributeGroup ref="attr.identifier.req"/>
-      <xsd:attributeGroup ref="attr.identifierref"/>
-      <xsd:attributeGroup ref="attr.isvisible"/>
-      <xsd:attributeGroup ref="attr.parameters"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-   </xsd:complexType>
-   
-   <!-- ************** -->
-   <!-- ** manifest ** -->
-   <!-- ************** -->
-   <xsd:complexType name="manifestType">
-      <xsd:sequence>
-         <xsd:element ref="metadata" minOccurs="0"/>
-         <xsd:element ref="organizations"/>
-         <xsd:element ref="resources"/>
-         <xsd:element ref="manifest" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-      <xsd:attributeGroup ref="attr.identifier.req"/>
-      <xsd:attributeGroup ref="attr.version"/>
-      <xsd:attribute ref="xml:base"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-   </xsd:complexType>
-   
-   <!-- ************** -->
-   <!-- ** metadata ** -->
-   <!-- ************** -->
-   <xsd:complexType name="metadataType">
-      <xsd:sequence>
-         <xsd:element ref="schema" minOccurs="0"/>
-         <xsd:element ref="schemaversion" minOccurs="0"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <!-- ******************* -->
-   <!-- ** organizations ** -->
-   <!-- ******************* -->
-   <xsd:complexType name="organizationsType">
-      <xsd:sequence>
-         <xsd:element ref="organization" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-      <xsd:attributeGroup ref="attr.default"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-   </xsd:complexType>
-   
-   <!-- ****************** -->
-   <!-- ** organization ** -->
-   <!-- ****************** -->
-   <xsd:complexType name="organizationType">
-      <xsd:sequence>
-         <xsd:element ref="title" minOccurs="0"/>
-         <xsd:element ref="item" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="metadata" minOccurs="0"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-      <xsd:attributeGroup ref="attr.identifier.req"/>
-      <xsd:attributeGroup ref="attr.structure.req"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-   </xsd:complexType>
-   
-   <!-- *************** -->
-   <!-- ** resources ** -->
-   <!-- *************** -->
-   <xsd:complexType name="resourcesType">
-      <xsd:sequence>
-          <xsd:element ref="resource" minOccurs="0" maxOccurs="unbounded"/>
-          <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-      <xsd:attributeGroup ref="attr.base"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-   </xsd:complexType>
-   
-   <!-- ************** -->
-   <!-- ** resource ** -->
-   <!-- ************** -->
-   <xsd:complexType name="resourceType">
-      <xsd:sequence>
-         <xsd:element ref="metadata" minOccurs="0"/>
-         <xsd:element ref="file" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="dependency" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-      <xsd:attributeGroup ref="attr.identifier.req"/>
-      <xsd:attributeGroup ref="attr.resourcetype.req"/>
-      <xsd:attributeGroup ref="attr.base"/>
-      <xsd:attributeGroup ref="attr.href"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-   </xsd:complexType>
-
-   <!-- ****************** -->
-   <!-- ** Simple Types ** -->
-   <!-- ****************** -->
-
-   <!-- ************ -->
-   <!-- ** schema ** -->
-   <!-- ************ -->
-   <xsd:simpleType name="schemaType">
-      <xsd:restriction base="xsd:string">
-         <xsd:maxLength value="100"/>
-      </xsd:restriction>
-   </xsd:simpleType>
-   
-   <!-- ******************* -->
-   <!-- ** schemaversion ** -->
-   <!-- ******************* -->
-   <xsd:simpleType name="schemaversionType">
-      <xsd:restriction base="xsd:string">
-         <xsd:maxLength value="20"/>
-      </xsd:restriction>
-   </xsd:simpleType>
-   
-   <!-- *********** -->
-   <!-- ** title ** -->
-   <!-- *********** -->
-   <xsd:simpleType name="titleType">
-      <xsd:restriction base="xsd:string">
-         <xsd:maxLength value="200"/>
-      </xsd:restriction>
-   </xsd:simpleType>
-
-</xsd:schema>
+<?xml version="1.0"?>
+
+<!-- edited with XML Spy v3.5 (http://www.xmlspy.com) by Thomas Wason (private) -->
+<!-- filename=ims_cp_rootv1p1p2.xsd -->
+<!-- Copyright (2) 2001 IMS Global Learning Consortium, Inc. -->
+<!-- edited by Thomas Wason  -->
+<!-- Conforms to w3c http://www.w3.org/TR/xmlschema-1/ 2000-10-24-->
+
+<xsd:schema xmlns="http://www.imsproject.org/xsd/imscp_rootv1p1p2" 
+            targetNamespace="http://www.imsproject.org/xsd/imscp_rootv1p1p2" 
+            xmlns:xml="http://www.w3.org/XML/1998/namespace" 
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+            elementFormDefault="unqualified" version="IMS CP 1.1.2">
+
+   <!-- ******************** -->
+   <!-- ** Change History ** -->
+   <!-- ******************** -->
+   <xsd:annotation>
+      <xsd:documentation xml:lang="en">DRAFT XSD for IMS Content Packaging version 1.1 DRAFT</xsd:documentation>
+      <xsd:documentation> Copyright (c) 2001 IMS GLC, Inc. </xsd:documentation>
+      <xsd:documentation>2000-04-21, Adjustments by T.D. Wason from CP 1.0.</xsd:documentation>
+      <xsd:documentation>2001-02-22, T.D.Wason: Modify for 2000-10-24 XML-Schema version.  Modified to support extension.</xsd:documentation>
+      <xsd:documentation>2001-03-12, T.D.Wason: Change filename, target and meta-data namespaces and meta-data fielname.  Add meta-data to itemType, fileType and organizationType.</xsd:documentation>
+      <xsd:documentation>Do not define namespaces for xml in XML instances generated from this xsd.</xsd:documentation>
+      <xsd:documentation>Imports IMS meta-data xsd, lower case element names.         </xsd:documentation>
+      <xsd:documentation>This XSD provides a reference to the IMS meta-data root element as imsmd:record</xsd:documentation>
+      <xsd:documentation>If the IMS meta-data is to be used in the XML instance then the instance must define an IMS meta-data prefix with a namespace.  The meta-data targetNamespace should be used.  </xsd:documentation>
+      <xsd:documentation>2001-03-20, Thor Anderson: Remove manifestref, change resourceref back to identifierref, change manifest back to contained by manifest. --Tom Wason: manifest may contain _none_ or more manifests.</xsd:documentation>
+      <xsd:documentation>2001-04-13 Tom Wason: corrected attirbute name structure.  Was misnamed type.  </xsd:documentation>
+      <xsd:documentation>2001-05-14 Schawn Thropp: Made all complexType extensible with the group.any</xsd:documentation>
+      <xsd:documentation>Added the anyAttribute to all complexTypes. Changed the href attribute on the fileType and resourceType to xsd:string</xsd:documentation>
+      <xsd:documentation>Changed the maxLength of the href, identifierref, parameters, structure attributes to match the Information model.</xsd:documentation>
+      <xsd:documentation>2001-07-25 Schawn Thropp: Changed the namespace for the Schema of Schemas to the 5/2/2001 W3C XML Schema</xsd:documentation> 
+      <xsd:documentation>Recommendation. attributeGroup attr.imsmd deleted, was not used anywhere.  Any attribute declarations that have</xsd:documentation>
+      <xsd:documentation>use = "default" changed to use="optional" - attr.structure.req.</xsd:documentation>
+      <xsd:documentation>Any attribute declarations that have value="somevalue" changed to default="somevalue",</xsd:documentation>
+      <xsd:documentation>attr.structure.req (hierarchical).  Removed references to IMS MD Version 1.1.</xsd:documentation>
+      <xsd:documentation>Modified attribute group "attr.resourcetype.req" to change use from optional</xsd:documentation>
+      <xsd:documentation>to required to match the information model.  As a result the default value also needed to be removed</xsd:documentation> 
+      <xsd:documentation>Name change for XSD.  Changed to match version of CP Spec                                           </xsd:documentation> 
+   </xsd:annotation>
+
+   <xsd:annotation>
+      <xsd:documentation>Inclusions and Imports</xsd:documentation>
+   </xsd:annotation>
+
+   <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="ims_xml.xsd"/>
+
+   <xsd:annotation>
+      <xsd:documentation>Attribute Declarations</xsd:documentation>
+   </xsd:annotation>
+
+   <!-- **************************** -->
+   <!-- ** Attribute Declarations ** -->
+   <!-- **************************** -->
+   <xsd:attributeGroup name="attr.base">
+      <xsd:attribute ref="xml:base" use="optional"/>
+   </xsd:attributeGroup>
+
+   <xsd:attributeGroup name="attr.default">
+      <xsd:attribute name="default" type="xsd:IDREF" use="optional"/>
+   </xsd:attributeGroup>
+
+   <xsd:attributeGroup name="attr.href">
+      <xsd:attribute name="href" use="optional">
+         <xsd:simpleType>
+            <xsd:restriction base="xsd:anyURI">
+               <xsd:maxLength value="2000"/>
+            </xsd:restriction>
+         </xsd:simpleType>
+      </xsd:attribute>
+   </xsd:attributeGroup>
+
+   <xsd:attributeGroup name="attr.href.req">
+      <xsd:attribute name="href" use="required">
+         <xsd:simpleType>
+            <xsd:restriction base="xsd:anyURI">
+               <xsd:maxLength value="2000"/>
+            </xsd:restriction>
+         </xsd:simpleType>
+      </xsd:attribute>
+   </xsd:attributeGroup> 
+
+   <xsd:attributeGroup name="attr.identifier.req">
+      <xsd:attribute name="identifier" type="xsd:ID" use="required"/>
+   </xsd:attributeGroup>
+
+   <xsd:attributeGroup name="attr.identifier">
+      <xsd:attribute name="identifier" type="xsd:ID" use="optional"/>
+   </xsd:attributeGroup>
+
+   <xsd:attributeGroup name="attr.isvisible">
+      <xsd:attribute name="isvisible" type="xsd:boolean" use="optional"/>
+   </xsd:attributeGroup>
+   
+   <xsd:attributeGroup name="attr.parameters">
+      <xsd:attribute name="parameters" use="optional">
+         <xsd:simpleType>
+            <xsd:restriction base="xsd:string">
+               <xsd:maxLength value="1000"/>
+            </xsd:restriction>
+         </xsd:simpleType>
+      </xsd:attribute>
+   </xsd:attributeGroup>
+   
+   <xsd:attributeGroup name="attr.identifierref">
+      <xsd:attribute name="identifierref" use="optional">
+         <xsd:simpleType>
+            <xsd:restriction base="xsd:string">
+               <xsd:maxLength value="2000"/>
+            </xsd:restriction>
+         </xsd:simpleType>
+      </xsd:attribute>
+   </xsd:attributeGroup>
+   
+   <xsd:attributeGroup name="attr.identifierref.req">
+      <xsd:attribute name="identifierref" use="required">
+         <xsd:simpleType>
+            <xsd:restriction base="xsd:string">
+               <xsd:maxLength value="2000"/>
+            </xsd:restriction>
+         </xsd:simpleType>
+      </xsd:attribute>
+   </xsd:attributeGroup>
+                
+   <xsd:attributeGroup name="attr.resourcetype.req">
+      <xsd:attribute name="type" use="required">
+         <xsd:simpleType>
+            <xsd:restriction base="xsd:string">
+               <xsd:maxLength value="1000"/>
+            </xsd:restriction>
+         </xsd:simpleType>
+      </xsd:attribute>
+   </xsd:attributeGroup>
+
+   <xsd:attributeGroup name="attr.structure.req">
+      <xsd:attribute name="structure" use="optional" default="hierarchical">
+         <xsd:simpleType>
+            <xsd:restriction base="xsd:string">
+               <xsd:maxLength value="200"/>
+            </xsd:restriction>
+         </xsd:simpleType>
+      </xsd:attribute>
+   </xsd:attributeGroup>
+
+   <xsd:attributeGroup name="attr.version">
+      <xsd:attribute name="version" use="optional">
+         <xsd:simpleType>
+            <xsd:restriction base="xsd:string">
+               <xsd:maxLength value="20"/>
+            </xsd:restriction>
+         </xsd:simpleType>
+      </xsd:attribute>
+   </xsd:attributeGroup>
+
+   <xsd:annotation>
+       <xsd:documentation>element groups</xsd:documentation>
+   </xsd:annotation>
+
+   <xsd:group name="grp.any">
+      <xsd:annotation>
+         <xsd:documentation>Any namespaced element from any namespace may be included within an &quot;any&quot; element.  The namespace for the imported element must be defined in the instance, and the schema must be imported.  </xsd:documentation>
+      </xsd:annotation>
+      <xsd:sequence>
+         <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:sequence>
+   </xsd:group>
+
+   <!-- ************************** -->
+   <!-- ** Element Declarations ** -->
+   <!-- ************************** -->
+
+   <xsd:element name="dependency" type="dependencyType"/>
+   <xsd:element name="file" type="fileType"/>
+   <xsd:element name="item" type="itemType"/>
+   <xsd:element name="manifest" type="manifestType"/>
+   <xsd:element name="metadata" type="metadataType"/>
+   <xsd:element name="organization" type="organizationType"/>
+   <xsd:element name="organizations" type="organizationsType"/>
+   <xsd:element name="resource" type="resourceType"/>
+   <xsd:element name="resources" type="resourcesType"/>
+   <xsd:element name="schema" type="schemaType"/>
+   <xsd:element name="schemaversion" type="schemaversionType"/>
+   <xsd:element name="title" type="titleType"/>
+
+   <!-- ******************* -->
+   <!-- ** Complex Types ** -->
+   <!-- ******************* -->
+
+   <!-- **************** -->
+   <!-- ** dependency ** -->
+   <!-- **************** -->
+   <xsd:complexType name="dependencyType">
+      <xsd:sequence>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+      <xsd:attributeGroup ref="attr.identifierref.req"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+   </xsd:complexType>
+   
+   <!-- ********** -->
+   <!-- ** file ** -->
+   <!-- ********** -->
+   <xsd:complexType name="fileType">
+      <xsd:sequence>
+         <xsd:element ref="metadata" minOccurs="0"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+      <xsd:attributeGroup ref="attr.href.req"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+   </xsd:complexType>
+   
+   <!-- ********** -->
+   <!-- ** item ** -->
+   <!-- ********** -->
+   <xsd:complexType name="itemType">
+      <xsd:sequence>
+         <xsd:element ref="title" minOccurs="0"/>
+         <xsd:element ref="item" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="metadata" minOccurs="0"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+      <xsd:attributeGroup ref="attr.identifier.req"/>
+      <xsd:attributeGroup ref="attr.identifierref"/>
+      <xsd:attributeGroup ref="attr.isvisible"/>
+      <xsd:attributeGroup ref="attr.parameters"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+   </xsd:complexType>
+   
+   <!-- ************** -->
+   <!-- ** manifest ** -->
+   <!-- ************** -->
+   <xsd:complexType name="manifestType">
+      <xsd:sequence>
+         <xsd:element ref="metadata" minOccurs="0"/>
+         <xsd:element ref="organizations"/>
+         <xsd:element ref="resources"/>
+         <xsd:element ref="manifest" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+      <xsd:attributeGroup ref="attr.identifier.req"/>
+      <xsd:attributeGroup ref="attr.version"/>
+      <xsd:attribute ref="xml:base"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+   </xsd:complexType>
+   
+   <!-- ************** -->
+   <!-- ** metadata ** -->
+   <!-- ************** -->
+   <xsd:complexType name="metadataType">
+      <xsd:sequence>
+         <xsd:element ref="schema" minOccurs="0"/>
+         <xsd:element ref="schemaversion" minOccurs="0"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <!-- ******************* -->
+   <!-- ** organizations ** -->
+   <!-- ******************* -->
+   <xsd:complexType name="organizationsType">
+      <xsd:sequence>
+         <xsd:element ref="organization" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+      <xsd:attributeGroup ref="attr.default"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+   </xsd:complexType>
+   
+   <!-- ****************** -->
+   <!-- ** organization ** -->
+   <!-- ****************** -->
+   <xsd:complexType name="organizationType">
+      <xsd:sequence>
+         <xsd:element ref="title" minOccurs="0"/>
+         <xsd:element ref="item" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="metadata" minOccurs="0"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+      <xsd:attributeGroup ref="attr.identifier.req"/>
+      <xsd:attributeGroup ref="attr.structure.req"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+   </xsd:complexType>
+   
+   <!-- *************** -->
+   <!-- ** resources ** -->
+   <!-- *************** -->
+   <xsd:complexType name="resourcesType">
+      <xsd:sequence>
+          <xsd:element ref="resource" minOccurs="0" maxOccurs="unbounded"/>
+          <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+      <xsd:attributeGroup ref="attr.base"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+   </xsd:complexType>
+   
+   <!-- ************** -->
+   <!-- ** resource ** -->
+   <!-- ************** -->
+   <xsd:complexType name="resourceType">
+      <xsd:sequence>
+         <xsd:element ref="metadata" minOccurs="0"/>
+         <xsd:element ref="file" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="dependency" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+      <xsd:attributeGroup ref="attr.identifier.req"/>
+      <xsd:attributeGroup ref="attr.resourcetype.req"/>
+      <xsd:attributeGroup ref="attr.base"/>
+      <xsd:attributeGroup ref="attr.href"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+   </xsd:complexType>
+
+   <!-- ****************** -->
+   <!-- ** Simple Types ** -->
+   <!-- ****************** -->
+
+   <!-- ************ -->
+   <!-- ** schema ** -->
+   <!-- ************ -->
+   <xsd:simpleType name="schemaType">
+      <xsd:restriction base="xsd:string">
+         <xsd:maxLength value="100"/>
+      </xsd:restriction>
+   </xsd:simpleType>
+   
+   <!-- ******************* -->
+   <!-- ** schemaversion ** -->
+   <!-- ******************* -->
+   <xsd:simpleType name="schemaversionType">
+      <xsd:restriction base="xsd:string">
+         <xsd:maxLength value="20"/>
+      </xsd:restriction>
+   </xsd:simpleType>
+   
+   <!-- *********** -->
+   <!-- ** title ** -->
+   <!-- *********** -->
+   <xsd:simpleType name="titleType">
+      <xsd:restriction base="xsd:string">
+         <xsd:maxLength value="200"/>
+      </xsd:restriction>
+   </xsd:simpleType>
+
+</xsd:schema>

+ 573 - 573
main/newscorm/packaging/imsmd_rootv1p2p1.xsd → main/lp/packaging/imsmd_rootv1p2p1.xsd

@@ -1,573 +1,573 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- edited by Thomas Wason  -->
-<xsd:schema targetNamespace="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1" 
-            xmlns:xml="http://www.w3.org/XML/1998/namespace" 
-            xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
-            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-            xmlns="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1" 
-            elementFormDefault="qualified" 
-            version="1.2:1.1 IMS:MD1.2">
-
-   <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="ims_xml.xsd"/> 
-
-   <!-- ******************** -->
-   <!-- ** Change History ** -->
-   <!-- ******************** -->
-   <xsd:annotation>
-      <xsd:documentation>2001-04-26 T.D.Wason. IMS meta-data 1.2 XML-Schema.                                  </xsd:documentation>
-      <xsd:documentation>2001-06-07 S.E.Thropp. Changed the multiplicity on all elements to match the         </xsd:documentation>
-      <xsd:documentation>Final 1.2 Binding Specification.                                                     </xsd:documentation>
-      <xsd:documentation>Changed all elements that use the langstringType to a multiplicy of 1 or more        </xsd:documentation>
-      <xsd:documentation>Changed centity in the contribute element to have a multiplicity of 0 or more.       </xsd:documentation>
-      <xsd:documentation>Changed the requirement element to have a multiplicity of 0 or more.                 </xsd:documentation>
-      <xsd:documentation> 2001-07-25 Schawn Thropp.  Updates to bring the XSD up to speed with the W3C        </xsd:documentation>
-      <xsd:documentation> XML Schema Recommendation.  The following changes were made: Change the             </xsd:documentation>
-      <xsd:documentation> namespace to reference the 5/2/2001 W3C XML Schema Recommendation,the base          </xsd:documentation>
-      <xsd:documentation> type for the durtimeType, simpleType, was changed from timeDuration to duration.    </xsd:documentation>              
-      <xsd:documentation> Any attribute declarations that have use="default" had to change to use="optional"  </xsd:documentation>
-      <xsd:documentation> - attr.type.  Any attribute declarations that have value ="somevalue" had to change </xsd:documentation>
-      <xsd:documentation> to default = "somevalue" - attr.type (URI)                                          </xsd:documentation>
-      <xsd:documentation> 2001-09-04 Schawn Thropp                                                            </xsd:documentation>
-      <xsd:documentation> Changed the targetNamespace and namespace of schema to reflect version change       </xsd:documentation>
-   </xsd:annotation>
-
-   <!-- *************************** -->
-   <!-- ** Attribute Declaration ** -->
-   <!-- *************************** -->
-
-   <xsd:attributeGroup name="attr.type">
-      <xsd:attribute name="type" use="optional" default="URI">
-         <xsd:simpleType>
-            <xsd:restriction base="xsd:string">
-               <xsd:enumeration value="URI"/>
-               <xsd:enumeration value="TEXT"/>
-            </xsd:restriction>
-         </xsd:simpleType>
-      </xsd:attribute>
-   </xsd:attributeGroup>
-
-   <xsd:group name="grp.any">
-      <xsd:annotation>
-         <xsd:documentation>Any namespaced element from any namespace may be used for an &quot;any&quot; element.  The namespace for the imported element must be defined in the instance, and the schema must be imported.  </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-         <xsd:any namespace="##any" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:sequence>
-   </xsd:group>
-
-   <!-- ************************* -->
-   <!-- ** Element Declaration ** -->
-   <!-- ************************* -->
-
-   <xsd:element name="aggregationlevel" type="aggregationlevelType"/>
-   <xsd:element name="annotation" type="annotationType"/>
-   <xsd:element name="catalogentry" type="catalogentryType"/>
-   <xsd:element name="catalog" type="catalogType"/>
-   <xsd:element name="centity" type="centityType"/>
-   <xsd:element name="classification" type="classificationType"/>
-   <xsd:element name="context" type="contextType"/>
-   <xsd:element name="contribute" type="contributeType"/>
-   <xsd:element name="copyrightandotherrestrictions" type="copyrightandotherrestrictionsType"/>
-   <xsd:element name="cost" type="costType"/>
-   <xsd:element name="coverage" type="coverageType"/>
-   <xsd:element name="date" type="dateType"/>
-   <xsd:element name="datetime" type="datetimeType"/>
-   <xsd:element name="description" type="descriptionType"/>
-   <xsd:element name="difficulty" type="difficultyType"/>
-   <xsd:element name="educational" type="educationalType"/>
-   <xsd:element name="entry" type="entryType"/>
-   <xsd:element name="format" type="formatType"/>
-   <xsd:element name="general" type="generalType"/>
-   <xsd:element name="identifier" type="xsd:string"/>
-   <xsd:element name="intendedenduserrole" type="intendedenduserroleType"/>
-   <xsd:element name="interactivitylevel" type="interactivitylevelType"/>
-   <xsd:element name="interactivitytype" type="interactivitytypeType"/>
-   <xsd:element name="keyword" type="keywordType"/>
-   <xsd:element name="kind" type="kindType"/>
-   <xsd:element name="langstring" type="langstringType"/>
-   <xsd:element name="language" type="xsd:string"/>
-   <xsd:element name="learningresourcetype" type="learningresourcetypeType"/>
-   <xsd:element name="lifecycle" type="lifecycleType"/>
-   <xsd:element name="location" type="locationType"/>
-   <xsd:element name="lom" type="lomType"/>
-   <xsd:element name="maximumversion" type="minimumversionType"/>
-   <xsd:element name="metadatascheme" type="metadataschemeType"/>
-   <xsd:element name="metametadata" type="metametadataType"/>
-   <xsd:element name="minimumversion" type="maximumversionType"/>
-   <xsd:element name="name" type="nameType"/>
-   <xsd:element name="purpose" type="purposeType"/>
-   <xsd:element name="relation" type="relationType"/>
-   <xsd:element name="requirement" type="requirementType"/>
-   <xsd:element name="resource" type="resourceType"/>
-   <xsd:element name="rights" type="rightsType"/>
-   <xsd:element name="role" type="roleType"/>
-   <xsd:element name="semanticdensity" type="semanticdensityType"/>
-   <xsd:element name="size" type="sizeType"/>
-   <xsd:element name="source" type="sourceType"/>
-   <xsd:element name="status" type="statusType"/>
-   <xsd:element name="structure" type="structureType"/>
-   <xsd:element name="taxon" type="taxonType"/>
-   <xsd:element name="taxonpath" type="taxonpathType"/>
-   <xsd:element name="technical" type="technicalType"/>
-   <xsd:element name="title" type="titleType"/>
-   <xsd:element name="type" type="typeType"/>
-   <xsd:element name="typicalagerange" type="typicalagerangeType"/>
-   <xsd:element name="typicallearningtime" type="typicallearningtimeType"/>
-   <xsd:element name="value" type="valueType"/>
-   <xsd:element name="person" type="personType"/>
-   <xsd:element name="vcard" type="xsd:string"/>
-   <xsd:element name="version" type="versionType"/>
-   <xsd:element name="installationremarks" type="installationremarksType"/>
-   <xsd:element name="otherplatformrequirements" type="otherplatformrequirementsType"/>
-   <xsd:element name="duration" type="durationType"/>
-   <xsd:element name="id" type="idType"/>
-
-   <!-- ******************* -->
-   <!-- ** Complex Types ** -->
-   <!-- ******************* -->
-
-   <xsd:complexType name="aggregationlevelType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="annotationType" mixed="true">
-      <xsd:sequence>
-         <xsd:element ref="person" minOccurs="0"/>
-         <xsd:element ref="date" minOccurs="0"/>
-         <xsd:element ref="description" minOccurs="0"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="catalogentryType" mixed="true">
-      <xsd:sequence>
-         <xsd:element ref="catalog"/>
-         <xsd:element ref="entry"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="centityType">
-      <xsd:sequence>
-         <xsd:element ref="vcard"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="classificationType" mixed="true">
-      <xsd:sequence>
-         <xsd:element ref="purpose" minOccurs="0"/>
-         <xsd:element ref="taxonpath" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="description" minOccurs="0"/>
-         <xsd:element ref="keyword" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="contextType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="contributeType" mixed="true">
-      <xsd:sequence>
-         <xsd:element ref="role"/>
-         <xsd:element ref="centity" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="date" minOccurs="0"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="copyrightandotherrestrictionsType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="costType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="coverageType">
-      <xsd:sequence>
-         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="dateType">
-      <xsd:sequence>
-         <xsd:element ref="datetime" minOccurs="0"/>
-         <xsd:element ref="description" minOccurs="0"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="descriptionType">
-      <xsd:sequence>
-         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="difficultyType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="durationType">
-      <xsd:sequence>
-         <xsd:element ref="datetime" minOccurs="0"/>
-         <xsd:element ref="description" minOccurs="0"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="educationalType" mixed="true">
-      <xsd:sequence>
-         <xsd:element ref="interactivitytype" minOccurs="0"/>
-         <xsd:element ref="learningresourcetype" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="interactivitylevel" minOccurs="0"/>
-         <xsd:element ref="semanticdensity" minOccurs="0"/>
-         <xsd:element ref="intendedenduserrole" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="context" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="typicalagerange" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="difficulty" minOccurs="0"/>
-         <xsd:element ref="typicallearningtime" minOccurs="0"/>
-         <xsd:element ref="description" minOccurs="0"/>
-         <xsd:element ref="language" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="entryType">
-      <xsd:sequence>
-         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="generalType" mixed="true">
-      <xsd:sequence>
-         <xsd:element ref="identifier" minOccurs="0"/>
-         <xsd:element ref="title" minOccurs="0"/>
-         <xsd:element ref="catalogentry" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="language" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="description" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="keyword" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="coverage" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="structure" minOccurs="0"/>
-         <xsd:element ref="aggregationlevel" minOccurs="0"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="installationremarksType">
-      <xsd:sequence>
-         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="intendedenduserroleType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="interactivitylevelType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="interactivitytypeType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="keywordType">
-      <xsd:sequence>
-         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="kindType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="langstringType">
-      <xsd:simpleContent>
-         <xsd:extension base="xsd:string">
-            <xsd:attribute ref="xml:lang"/>
-         </xsd:extension>
-      </xsd:simpleContent>
-   </xsd:complexType>
-   
-   <xsd:complexType name="learningresourcetypeType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="lifecycleType" mixed="true">
-      <xsd:sequence>
-         <xsd:element ref="version" minOccurs="0"/>
-         <xsd:element ref="status" minOccurs="0"/>
-         <xsd:element ref="contribute" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="locationType">
-      <xsd:simpleContent>
-         <xsd:extension base="xsd:string">
-            <xsd:attributeGroup ref="attr.type"/>
-         </xsd:extension>
-      </xsd:simpleContent>
-   </xsd:complexType>
-   
-   <xsd:complexType name="lomType">
-      <xsd:sequence>
-         <xsd:element ref="general" minOccurs="0"/>
-         <xsd:element ref="lifecycle" minOccurs="0"/>
-         <xsd:element ref="metametadata" minOccurs="0"/>
-         <xsd:element ref="technical" minOccurs="0"/>
-         <xsd:element ref="educational" minOccurs="0"/>
-         <xsd:element ref="rights" minOccurs="0"/>
-         <xsd:element ref="relation" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="annotation" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="classification" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="metametadataType" mixed="true">
-      <xsd:sequence>
-         <xsd:element ref="identifier" minOccurs="0"/>
-         <xsd:element ref="catalogentry" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="contribute" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="metadatascheme" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="language" minOccurs="0"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="nameType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="otherplatformrequirementsType">
-      <xsd:sequence>
-         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="personType">
-      <xsd:sequence>
-         <xsd:element ref="vcard"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="purposeType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="relationType" mixed="true">
-      <xsd:sequence>
-         <xsd:element ref="kind" minOccurs="0"/>
-         <xsd:element ref="resource" minOccurs="0"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="requirementType" mixed="true">
-      <xsd:sequence>
-         <xsd:element ref="type" minOccurs="0"/>
-         <xsd:element ref="name" minOccurs="0"/>
-         <xsd:element ref="minimumversion" minOccurs="0"/>
-         <xsd:element ref="maximumversion" minOccurs="0"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="resourceType" mixed="true">
-      <xsd:sequence>
-         <xsd:element ref="identifier" minOccurs="0"/>
-         <xsd:element ref="description" minOccurs="0"/>
-         <xsd:element ref="catalogentry" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="rightsType" mixed="true">
-      <xsd:sequence>
-         <xsd:element ref="cost" minOccurs="0"/>
-         <xsd:element ref="copyrightandotherrestrictions" minOccurs="0"/>
-         <xsd:element ref="description" minOccurs="0"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="roleType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="semanticdensityType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="sourceType">
-      <xsd:sequence>
-         <xsd:element ref="langstring"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="statusType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="stringType">
-      <xsd:simpleContent>
-         <xsd:extension base="xsd:string">
-            <xsd:attribute ref="xml:lang"/>
-         </xsd:extension>
-      </xsd:simpleContent>
-   </xsd:complexType>
-   
-   <xsd:complexType name="structureType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="taxonpathType">
-      <xsd:sequence>
-         <xsd:element ref="source" minOccurs="0"/>
-         <xsd:element ref="taxon" minOccurs="0" maxOccurs="1"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="taxonType">
-      <xsd:sequence>
-         <xsd:element ref="id" minOccurs="0"/>
-         <xsd:element ref="entry" minOccurs="0"/>
-         <xsd:element ref="taxon" minOccurs="0" maxOccurs="1"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="technicalType" mixed="true">
-      <xsd:sequence>
-         <xsd:element ref="format" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="size" minOccurs="0"/>
-         <xsd:element ref="location" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="requirement" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element ref="installationremarks" minOccurs="0"/>
-         <xsd:element ref="otherplatformrequirements" minOccurs="0"/>
-         <xsd:element ref="duration" minOccurs="0"/>
-         <xsd:group ref="grp.any"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="titleType">
-      <xsd:sequence>
-         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="typeType">
-      <xsd:sequence>
-         <xsd:element ref="source"/>
-         <xsd:element ref="value"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="typicalagerangeType">
-      <xsd:sequence>
-         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="typicallearningtimeType">
-      <xsd:sequence>
-         <xsd:element ref="datetime" minOccurs="0"/>
-         <xsd:element ref="description" minOccurs="0"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="valueType">
-      <xsd:sequence>
-         <xsd:element ref="langstring"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <xsd:complexType name="versionType">
-      <xsd:sequence>
-         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
-      </xsd:sequence>
-   </xsd:complexType>
-   
-   <!-- ****************** -->
-   <!-- ** Simple Types ** -->
-   <!-- ****************** -->
-   
-   <xsd:simpleType name="formatType">
-      <xsd:restriction base="xsd:string"/>
-   </xsd:simpleType>
-   
-   <xsd:simpleType name="sizeType">
-      <xsd:restriction base="xsd:int"/>
-   </xsd:simpleType>
-   
-   <xsd:simpleType name="datetimeType">
-      <xsd:restriction base="xsd:string"/>
-   </xsd:simpleType>
-   
-   <xsd:simpleType name="idType">
-      <xsd:restriction base="xsd:string"/>
-   </xsd:simpleType>
-   
-   <xsd:simpleType name="metadataschemeType">
-      <xsd:restriction base="xsd:string"/>
-   </xsd:simpleType>
-   
-   <xsd:simpleType name="catalogType">
-      <xsd:restriction base="xsd:string"/>
-   </xsd:simpleType>
-   
-   <xsd:simpleType name="minimumversionType">
-      <xsd:restriction base="xsd:string"/>
-   </xsd:simpleType>
-   
-   <xsd:simpleType name="maximumversionType">
-      <xsd:restriction base="xsd:string"/>
-   </xsd:simpleType>
-
-</xsd:schema>
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited by Thomas Wason  -->
+<xsd:schema targetNamespace="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1" 
+            xmlns:xml="http://www.w3.org/XML/1998/namespace" 
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+            xmlns="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1" 
+            elementFormDefault="qualified" 
+            version="1.2:1.1 IMS:MD1.2">
+
+   <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="ims_xml.xsd"/> 
+
+   <!-- ******************** -->
+   <!-- ** Change History ** -->
+   <!-- ******************** -->
+   <xsd:annotation>
+      <xsd:documentation>2001-04-26 T.D.Wason. IMS meta-data 1.2 XML-Schema.                                  </xsd:documentation>
+      <xsd:documentation>2001-06-07 S.E.Thropp. Changed the multiplicity on all elements to match the         </xsd:documentation>
+      <xsd:documentation>Final 1.2 Binding Specification.                                                     </xsd:documentation>
+      <xsd:documentation>Changed all elements that use the langstringType to a multiplicy of 1 or more        </xsd:documentation>
+      <xsd:documentation>Changed centity in the contribute element to have a multiplicity of 0 or more.       </xsd:documentation>
+      <xsd:documentation>Changed the requirement element to have a multiplicity of 0 or more.                 </xsd:documentation>
+      <xsd:documentation> 2001-07-25 Schawn Thropp.  Updates to bring the XSD up to speed with the W3C        </xsd:documentation>
+      <xsd:documentation> XML Schema Recommendation.  The following changes were made: Change the             </xsd:documentation>
+      <xsd:documentation> namespace to reference the 5/2/2001 W3C XML Schema Recommendation,the base          </xsd:documentation>
+      <xsd:documentation> type for the durtimeType, simpleType, was changed from timeDuration to duration.    </xsd:documentation>              
+      <xsd:documentation> Any attribute declarations that have use="default" had to change to use="optional"  </xsd:documentation>
+      <xsd:documentation> - attr.type.  Any attribute declarations that have value ="somevalue" had to change </xsd:documentation>
+      <xsd:documentation> to default = "somevalue" - attr.type (URI)                                          </xsd:documentation>
+      <xsd:documentation> 2001-09-04 Schawn Thropp                                                            </xsd:documentation>
+      <xsd:documentation> Changed the targetNamespace and namespace of schema to reflect version change       </xsd:documentation>
+   </xsd:annotation>
+
+   <!-- *************************** -->
+   <!-- ** Attribute Declaration ** -->
+   <!-- *************************** -->
+
+   <xsd:attributeGroup name="attr.type">
+      <xsd:attribute name="type" use="optional" default="URI">
+         <xsd:simpleType>
+            <xsd:restriction base="xsd:string">
+               <xsd:enumeration value="URI"/>
+               <xsd:enumeration value="TEXT"/>
+            </xsd:restriction>
+         </xsd:simpleType>
+      </xsd:attribute>
+   </xsd:attributeGroup>
+
+   <xsd:group name="grp.any">
+      <xsd:annotation>
+         <xsd:documentation>Any namespaced element from any namespace may be used for an &quot;any&quot; element.  The namespace for the imported element must be defined in the instance, and the schema must be imported.  </xsd:documentation>
+      </xsd:annotation>
+      <xsd:sequence>
+         <xsd:any namespace="##any" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:sequence>
+   </xsd:group>
+
+   <!-- ************************* -->
+   <!-- ** Element Declaration ** -->
+   <!-- ************************* -->
+
+   <xsd:element name="aggregationlevel" type="aggregationlevelType"/>
+   <xsd:element name="annotation" type="annotationType"/>
+   <xsd:element name="catalogentry" type="catalogentryType"/>
+   <xsd:element name="catalog" type="catalogType"/>
+   <xsd:element name="centity" type="centityType"/>
+   <xsd:element name="classification" type="classificationType"/>
+   <xsd:element name="context" type="contextType"/>
+   <xsd:element name="contribute" type="contributeType"/>
+   <xsd:element name="copyrightandotherrestrictions" type="copyrightandotherrestrictionsType"/>
+   <xsd:element name="cost" type="costType"/>
+   <xsd:element name="coverage" type="coverageType"/>
+   <xsd:element name="date" type="dateType"/>
+   <xsd:element name="datetime" type="datetimeType"/>
+   <xsd:element name="description" type="descriptionType"/>
+   <xsd:element name="difficulty" type="difficultyType"/>
+   <xsd:element name="educational" type="educationalType"/>
+   <xsd:element name="entry" type="entryType"/>
+   <xsd:element name="format" type="formatType"/>
+   <xsd:element name="general" type="generalType"/>
+   <xsd:element name="identifier" type="xsd:string"/>
+   <xsd:element name="intendedenduserrole" type="intendedenduserroleType"/>
+   <xsd:element name="interactivitylevel" type="interactivitylevelType"/>
+   <xsd:element name="interactivitytype" type="interactivitytypeType"/>
+   <xsd:element name="keyword" type="keywordType"/>
+   <xsd:element name="kind" type="kindType"/>
+   <xsd:element name="langstring" type="langstringType"/>
+   <xsd:element name="language" type="xsd:string"/>
+   <xsd:element name="learningresourcetype" type="learningresourcetypeType"/>
+   <xsd:element name="lifecycle" type="lifecycleType"/>
+   <xsd:element name="location" type="locationType"/>
+   <xsd:element name="lom" type="lomType"/>
+   <xsd:element name="maximumversion" type="minimumversionType"/>
+   <xsd:element name="metadatascheme" type="metadataschemeType"/>
+   <xsd:element name="metametadata" type="metametadataType"/>
+   <xsd:element name="minimumversion" type="maximumversionType"/>
+   <xsd:element name="name" type="nameType"/>
+   <xsd:element name="purpose" type="purposeType"/>
+   <xsd:element name="relation" type="relationType"/>
+   <xsd:element name="requirement" type="requirementType"/>
+   <xsd:element name="resource" type="resourceType"/>
+   <xsd:element name="rights" type="rightsType"/>
+   <xsd:element name="role" type="roleType"/>
+   <xsd:element name="semanticdensity" type="semanticdensityType"/>
+   <xsd:element name="size" type="sizeType"/>
+   <xsd:element name="source" type="sourceType"/>
+   <xsd:element name="status" type="statusType"/>
+   <xsd:element name="structure" type="structureType"/>
+   <xsd:element name="taxon" type="taxonType"/>
+   <xsd:element name="taxonpath" type="taxonpathType"/>
+   <xsd:element name="technical" type="technicalType"/>
+   <xsd:element name="title" type="titleType"/>
+   <xsd:element name="type" type="typeType"/>
+   <xsd:element name="typicalagerange" type="typicalagerangeType"/>
+   <xsd:element name="typicallearningtime" type="typicallearningtimeType"/>
+   <xsd:element name="value" type="valueType"/>
+   <xsd:element name="person" type="personType"/>
+   <xsd:element name="vcard" type="xsd:string"/>
+   <xsd:element name="version" type="versionType"/>
+   <xsd:element name="installationremarks" type="installationremarksType"/>
+   <xsd:element name="otherplatformrequirements" type="otherplatformrequirementsType"/>
+   <xsd:element name="duration" type="durationType"/>
+   <xsd:element name="id" type="idType"/>
+
+   <!-- ******************* -->
+   <!-- ** Complex Types ** -->
+   <!-- ******************* -->
+
+   <xsd:complexType name="aggregationlevelType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="annotationType" mixed="true">
+      <xsd:sequence>
+         <xsd:element ref="person" minOccurs="0"/>
+         <xsd:element ref="date" minOccurs="0"/>
+         <xsd:element ref="description" minOccurs="0"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="catalogentryType" mixed="true">
+      <xsd:sequence>
+         <xsd:element ref="catalog"/>
+         <xsd:element ref="entry"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="centityType">
+      <xsd:sequence>
+         <xsd:element ref="vcard"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="classificationType" mixed="true">
+      <xsd:sequence>
+         <xsd:element ref="purpose" minOccurs="0"/>
+         <xsd:element ref="taxonpath" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="description" minOccurs="0"/>
+         <xsd:element ref="keyword" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="contextType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="contributeType" mixed="true">
+      <xsd:sequence>
+         <xsd:element ref="role"/>
+         <xsd:element ref="centity" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="date" minOccurs="0"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="copyrightandotherrestrictionsType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="costType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="coverageType">
+      <xsd:sequence>
+         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="dateType">
+      <xsd:sequence>
+         <xsd:element ref="datetime" minOccurs="0"/>
+         <xsd:element ref="description" minOccurs="0"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="descriptionType">
+      <xsd:sequence>
+         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="difficultyType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="durationType">
+      <xsd:sequence>
+         <xsd:element ref="datetime" minOccurs="0"/>
+         <xsd:element ref="description" minOccurs="0"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="educationalType" mixed="true">
+      <xsd:sequence>
+         <xsd:element ref="interactivitytype" minOccurs="0"/>
+         <xsd:element ref="learningresourcetype" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="interactivitylevel" minOccurs="0"/>
+         <xsd:element ref="semanticdensity" minOccurs="0"/>
+         <xsd:element ref="intendedenduserrole" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="context" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="typicalagerange" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="difficulty" minOccurs="0"/>
+         <xsd:element ref="typicallearningtime" minOccurs="0"/>
+         <xsd:element ref="description" minOccurs="0"/>
+         <xsd:element ref="language" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="entryType">
+      <xsd:sequence>
+         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="generalType" mixed="true">
+      <xsd:sequence>
+         <xsd:element ref="identifier" minOccurs="0"/>
+         <xsd:element ref="title" minOccurs="0"/>
+         <xsd:element ref="catalogentry" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="language" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="description" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="keyword" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="coverage" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="structure" minOccurs="0"/>
+         <xsd:element ref="aggregationlevel" minOccurs="0"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="installationremarksType">
+      <xsd:sequence>
+         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="intendedenduserroleType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="interactivitylevelType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="interactivitytypeType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="keywordType">
+      <xsd:sequence>
+         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="kindType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="langstringType">
+      <xsd:simpleContent>
+         <xsd:extension base="xsd:string">
+            <xsd:attribute ref="xml:lang"/>
+         </xsd:extension>
+      </xsd:simpleContent>
+   </xsd:complexType>
+   
+   <xsd:complexType name="learningresourcetypeType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="lifecycleType" mixed="true">
+      <xsd:sequence>
+         <xsd:element ref="version" minOccurs="0"/>
+         <xsd:element ref="status" minOccurs="0"/>
+         <xsd:element ref="contribute" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="locationType">
+      <xsd:simpleContent>
+         <xsd:extension base="xsd:string">
+            <xsd:attributeGroup ref="attr.type"/>
+         </xsd:extension>
+      </xsd:simpleContent>
+   </xsd:complexType>
+   
+   <xsd:complexType name="lomType">
+      <xsd:sequence>
+         <xsd:element ref="general" minOccurs="0"/>
+         <xsd:element ref="lifecycle" minOccurs="0"/>
+         <xsd:element ref="metametadata" minOccurs="0"/>
+         <xsd:element ref="technical" minOccurs="0"/>
+         <xsd:element ref="educational" minOccurs="0"/>
+         <xsd:element ref="rights" minOccurs="0"/>
+         <xsd:element ref="relation" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="annotation" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="classification" minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="metametadataType" mixed="true">
+      <xsd:sequence>
+         <xsd:element ref="identifier" minOccurs="0"/>
+         <xsd:element ref="catalogentry" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="contribute" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="metadatascheme" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="language" minOccurs="0"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="nameType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="otherplatformrequirementsType">
+      <xsd:sequence>
+         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="personType">
+      <xsd:sequence>
+         <xsd:element ref="vcard"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="purposeType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="relationType" mixed="true">
+      <xsd:sequence>
+         <xsd:element ref="kind" minOccurs="0"/>
+         <xsd:element ref="resource" minOccurs="0"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="requirementType" mixed="true">
+      <xsd:sequence>
+         <xsd:element ref="type" minOccurs="0"/>
+         <xsd:element ref="name" minOccurs="0"/>
+         <xsd:element ref="minimumversion" minOccurs="0"/>
+         <xsd:element ref="maximumversion" minOccurs="0"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="resourceType" mixed="true">
+      <xsd:sequence>
+         <xsd:element ref="identifier" minOccurs="0"/>
+         <xsd:element ref="description" minOccurs="0"/>
+         <xsd:element ref="catalogentry" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="rightsType" mixed="true">
+      <xsd:sequence>
+         <xsd:element ref="cost" minOccurs="0"/>
+         <xsd:element ref="copyrightandotherrestrictions" minOccurs="0"/>
+         <xsd:element ref="description" minOccurs="0"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="roleType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="semanticdensityType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="sourceType">
+      <xsd:sequence>
+         <xsd:element ref="langstring"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="statusType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="stringType">
+      <xsd:simpleContent>
+         <xsd:extension base="xsd:string">
+            <xsd:attribute ref="xml:lang"/>
+         </xsd:extension>
+      </xsd:simpleContent>
+   </xsd:complexType>
+   
+   <xsd:complexType name="structureType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="taxonpathType">
+      <xsd:sequence>
+         <xsd:element ref="source" minOccurs="0"/>
+         <xsd:element ref="taxon" minOccurs="0" maxOccurs="1"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="taxonType">
+      <xsd:sequence>
+         <xsd:element ref="id" minOccurs="0"/>
+         <xsd:element ref="entry" minOccurs="0"/>
+         <xsd:element ref="taxon" minOccurs="0" maxOccurs="1"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="technicalType" mixed="true">
+      <xsd:sequence>
+         <xsd:element ref="format" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="size" minOccurs="0"/>
+         <xsd:element ref="location" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="requirement" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element ref="installationremarks" minOccurs="0"/>
+         <xsd:element ref="otherplatformrequirements" minOccurs="0"/>
+         <xsd:element ref="duration" minOccurs="0"/>
+         <xsd:group ref="grp.any"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="titleType">
+      <xsd:sequence>
+         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="typeType">
+      <xsd:sequence>
+         <xsd:element ref="source"/>
+         <xsd:element ref="value"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="typicalagerangeType">
+      <xsd:sequence>
+         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="typicallearningtimeType">
+      <xsd:sequence>
+         <xsd:element ref="datetime" minOccurs="0"/>
+         <xsd:element ref="description" minOccurs="0"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="valueType">
+      <xsd:sequence>
+         <xsd:element ref="langstring"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <xsd:complexType name="versionType">
+      <xsd:sequence>
+         <xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
+      </xsd:sequence>
+   </xsd:complexType>
+   
+   <!-- ****************** -->
+   <!-- ** Simple Types ** -->
+   <!-- ****************** -->
+   
+   <xsd:simpleType name="formatType">
+      <xsd:restriction base="xsd:string"/>
+   </xsd:simpleType>
+   
+   <xsd:simpleType name="sizeType">
+      <xsd:restriction base="xsd:int"/>
+   </xsd:simpleType>
+   
+   <xsd:simpleType name="datetimeType">
+      <xsd:restriction base="xsd:string"/>
+   </xsd:simpleType>
+   
+   <xsd:simpleType name="idType">
+      <xsd:restriction base="xsd:string"/>
+   </xsd:simpleType>
+   
+   <xsd:simpleType name="metadataschemeType">
+      <xsd:restriction base="xsd:string"/>
+   </xsd:simpleType>
+   
+   <xsd:simpleType name="catalogType">
+      <xsd:restriction base="xsd:string"/>
+   </xsd:simpleType>
+   
+   <xsd:simpleType name="minimumversionType">
+      <xsd:restriction base="xsd:string"/>
+   </xsd:simpleType>
+   
+   <xsd:simpleType name="maximumversionType">
+      <xsd:restriction base="xsd:string"/>
+   </xsd:simpleType>
+
+</xsd:schema>

+ 0 - 0
main/newscorm/packaging/xml.xsd → main/lp/packaging/xml.xsd


+ 2 - 2
main/newscorm/resourcelinker.inc.php → main/lp/resourcelinker.inc.php

@@ -1638,7 +1638,7 @@ function rl_get_resource_link_for_learnpath($course_id, $learnpath_id, $id_in_pa
     $link = '';
     switch ($type) {
         case 'dokeos_chapter':
-            $link .= $main_dir_path.'newscorm/blank.php';
+            $link .= $main_dir_path . 'lp/blank.php';
         case TOOL_CALENDAR_EVENT:
             $link .= $main_dir_path.'calendar/agenda.php?origin='.$origin.'&agenda_id='.$id;
             break;
@@ -1732,7 +1732,7 @@ function rl_get_resource_link_for_learnpath($course_id, $learnpath_id, $id_in_pa
             Session::write('officedoc',$officedoc);
             break;
         case TOOL_LP_FINAL_ITEM:
-            $link .= api_get_path(WEB_CODE_PATH).'newscorm/lp_final_item.php?'.api_get_cidreq().'&id='.$id.'&lp_id='.$learnpath_id;
+            $link .= api_get_path(WEB_CODE_PATH) . 'lp/lp_final_item.php?'.api_get_cidreq().'&id='.$id.'&lp_id='.$learnpath_id;
             break;
         case 'assignments':
             $link .= $main_dir_path.'work/work.php?origin='.$origin;

+ 2 - 2
main/newscorm/resourcelinker.php → main/lp/resourcelinker.php

@@ -410,8 +410,8 @@ if ($from_learnpath != 'yes') {
 
     $from_learnpath = 'yes';
     session_register('from_learnpath');
-    $interbreadcrumb[] = array ('url' => "../newscorm/lp_controller.php?action=list", 'name' => get_lang('LearningPath'));
-    $interbreadcrumb[] = array ('url' => "../newscorm/lp_controller.php?action=admin_view&lp_id=$learnpath_id", 'name' => stripslashes("{$therow['name']}"));
+    $interbreadcrumb[] = array ('url' => "../lp/lp_controller.php?action=list", 'name' => get_lang('LearningPath'));
+    $interbreadcrumb[] = array ('url' => "../lp/lp_controller.php?action=admin_view&lp_id=$learnpath_id", 'name' => stripslashes("{$therow['name']}"));
     $interbreadcrumb[] = array ('url' => api_get_self()."?action=$action&lp_id=$learnpath_id&parent_item_id=$chapter_id&originalresource=no", 'name' => "{$therow2['title']}");
 }
 

+ 0 - 0
main/newscorm/scorm.class.php → main/lp/scorm.class.php


+ 0 - 0
main/newscorm/scormItem.class.php → main/lp/scormItem.class.php


+ 0 - 0
main/newscorm/scormMetadata.class.php → main/lp/scormMetadata.class.php


+ 0 - 0
main/newscorm/scormOrganization.class.php → main/lp/scormOrganization.class.php


+ 0 - 0
main/newscorm/scormResource.class.php → main/lp/scormResource.class.php


+ 0 - 0
main/newscorm/scorm_api.php → main/lp/scorm_api.php


Some files were not shown because too many files changed in this diff