[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/backup/cc/schemas11/ -> ccv1p1_qtiasiv1p2p1_v1p0.xsd (source)

   1  <?xml version = "1.0" encoding = "UTF-8"?>
   2  <xs:schema xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2"
   3      targetNamespace="http://www.imsglobal.org/xsd/ims_qtiasiv1p2"
   4      xmlns:xs="http://www.w3.org/2001/XMLSchema"
   5      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
   6      version="IMS CC 1.1 QTI ASI 1.2.1"
   7      elementFormDefault="qualified"
   8      attributeFormDefault="unqualified">
   9      <xs:import namespace = "http://www.w3.org/XML/1998/namespace" schemaLocation = "xml.xsd"/>
  10      <xs:annotation>
  11          <xs:documentation>
  12              XSD Data File Information
  13              -------------------------
  14              Author:         Colin Smythe
  15              Date:           31st October, 2010
  16              Version:        1.1
  17              Status:         Final Release
  18              Description:    This model forms part of the IMS Common Cartridge v1.1 specification.  This model is the 
  19                              profile of the IMS QTI v1.2.1 specification.  The changes made to the original specification 
  20                              to create this profile are:
  21                              
  22                              Root
  23                              (a) Only one Assessment or one ObjectBank can be exchanged i.e. not Sections or Items;
  24                              (b) The qticomment attribute has been removed.
  25                              
  26                              Assessment
  27                              (a) Only a single Section must be contained in the Assessment;
  28                              (b) The metadata is mandatory (see the specification for the fields that must be defined) with a multiplicity of 1;
  29                              (c) All of the other Assessment fields have been removed apart from the optional PresentationMaterial;
  30                              (d) The title attribute has been made mandatory.
  31                              
  32                              Object Bank
  33                              (a) Only Items can be containd in the object bank;
  34                              (b) The Qticomment structure has been removed.
  35                              
  36                              Section
  37                              (a) All of the internal structure has been removed except the containment of Items (at least one is required);
  38                              (b) The language attribute has been removed.
  39                              
  40                              Item
  41                              (a) The deprecated attributes have been removed from the ItemMetadata class;
  42                              (b) All qticomment attributes have been removed from various classes;
  43                              (c) The Item pre and post condition attributes have been removed from the Item class;
  44                              (d) The itemproc_extension structure has been removed from the Item class;
  45                              (e) The reference structure has been removed from the Item class;
  46                              (f) The objectives attribute has been removed from the Item class;
  47                              (g) The itemcontrol attribute has been removed from the Item class;
  48                              (h) The item rubric attribute and its associated classes have been removed from the Item class;
  49                              (i) The duration attribute has been removed from the Item class;
  50                              (j) The itemmetadata attribute has been made mandatory in the Item class;
  51                              (k) The label, language and maxattempts attributes have been removed from the Item class;
  52                              (l) The interpretvar attribute has been removed frm the Outcomes class;
  53                              (m) The response_xy, response_num, response_grp and response_extension attributes have
  54                                  been removed from the Presentation class;
  55                              (n) All extension attributes have been removed from various classes;
  56                              (o) The ItemType, LevelofDifficulty, RenderingType, ResponseMultiplicity, Status and TypeofSolution 
  57                                  have been deleted;
  58                              (p) The ItemFeedback Class has been restructured as only flow_mat is used;
  59                              (q) A single decvar is required i.e. for the default variable SCORE.
  60                              
  61                              Item-Response
  62                              (a) The Rrange and Rarea attributes have been removed from the ResponseLabel Class.
  63                              
  64                              Item-Render
  65                              (a) The render_hotspot attributes and the RenderHotspot class have been removed;
  66                              (b) The render_slider attributes and the RenderSlider class have been removed;
  67                              (c) The render_extension attribute has been removed from the ResponseType class;
  68                              (d) The response_na attribute has been removed;
  69                              (e) The qticomment attribute has been removed from the ResponseLabel class;
  70                              
  71                              Item-General
  72                              (a) The Interpretvar class has been removed;
  73                              (b) The DurationBase class has been removed and all derived attributes from the Conditionvar and CompositionLogic classes;
  74                              (c) The var_extension attribute has been removed from the Conditionvar class;
  75                              (d) The qticomment attributes have been removed from the Hint and Solution classes;
  76                              (e) Setvar is restricted to the Set action;
  77                              (f) Variable types are restricted to 'Integer' and 'Decimal';
  78                              (g) The defaultval and cutvalue, attributes for decvar have been removed;
  79                              (h) Outcomes is limtied to a single decvar which must have only the variable "SCORE" declared;
  80                              (i) The classes or, varlt, varlte, vargt, vargte, varinside, varsubset and unanswered have been removed;
  81                              (j) The classes 'and', 'not' and 'conditionvar' have been significantly simplied i.e. see clause above for detail;
  82                              (k) The feedbacktype attribute for the displayfeedback element is now mandatory with no default value.
  83                              
  84                              Selection and Ordering
  85                              (a) The entire Selection and Ordering (Package) has been removed.
  86                              
  87                              Outcomes
  88                              (a) The entire Outcomes Processing (Package) has been removed.
  89                              
  90                              Material
  91                              (a) The Reference Class has been removed as this is not required;
  92                              (b) All entityref attributes have been removed;
  93                              (c) Extensions have been removed;
  94                              (d) Only 'mattext', 'matref' and 'matbreak' are permitted as types of material.
  95                              
  96                              Common
  97                              (a) The Rubric class has been removed Items and Sections and it is only permitted to contain a single instance of material;
  98                              (b) The ContextControl class has been removed i.e. no Control switches required;
  99                              (c) The QtiComment Class has been removed;
 100                              (d) The MetadataRule Class has been removed;
 101                              (e) the Parameterization Class has been removed;
 102                              (f) The 'view' attribute has been removed;
 103                              (g) The Vocabulary Class has been removed and its attribute in the QtiMetadata Class also removed.
 104  
 105              History:        Version 1.0: This profile is taken from the UML description of the QTIv1.2.1 specification.
 106                              Version 1.1: Material has been returned as an alternative to flow_mat in ItemFeedback, 
 107                              SolutionMaterial and HintMaterial.  Also, Assessment Rubric has been permitted but it must 
 108                              only contain a single instance of material.
 109  
 110              License:        IPR, License and Distribution Notices
 111  
 112                              This machine readable file is derived from IMS Global Learning Consortium (GLC) specification IMS Common Cartridge Version 1.1
 113                              found at http://www.imsglobal.org/cc and the original IMS GLC schema binding or code base
 114                              http://www.imsglobal.org/cc.
 115  
 116                              Recipients of this document are requested to submit, with their comments, notification of any
 117                              relevant patent claims or other intellectual property rights of which they may be aware that might be
 118                              infringed by the schema binding contained in this document.
 119  
 120                              IMS GLC takes no position regarding the validity or scope of any intellectual property or other
 121                              rights that might be claimed to pertain to the implementation or use of the technology described in this
 122                              document or the extent to which any license under such rights might or might not be available; neither
 123                              does it represent that it has made any effort to identify any such rights. Information on IMS GLCs
 124                              procedures with respect to rights in IMS GLC specifications can be found at the IMS GLC Intellectual Property
 125                              Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
 126  
 127                              Copyright (c) IMS Global Learning Consortium 1999-2011. All Rights Reserved.
 128  
 129                              License Notice for Users
 130  
 131                              Users of products or services that include this document are hereby granted a worldwide, royalty-free, 
 132                              non-exclusive license to use this document. 
 133  
 134                              Distribution Notice for Developers
 135  
 136                              Developers of products or services that are not original incorporators of this document and 
 137                              have not changed this document, that is, are distributing a software product that incorporates this 
 138                              document as is from a third-party source other than IMS, are hereby granted permission to copy,
 139                              display and distribute the contents of this document in any medium for any purpose without fee or 
 140                              royalty provided that you include this IPR, License and Distribution notice in its entirety on ALL
 141                              copies, or portions thereof.
 142  
 143                              Developers of products or services that are original incorporators of this document and wish 
 144                              to provide distribution of this document as is or with modifications and developers of products and 
 145                              services that are not original incorporators of this document and have changed this document, are
 146                              required to register with the IMS GLC community on the IMS GLC website as described in the following two
 147                              paragraphs:-
 148  
 149                              *  If you wish to distribute this document as is, with no modifications, you are hereby granted 
 150                                 permission to copy, display and distribute the contents of this document in any medium for any 
 151                                 purpose without fee or royalty provided that you include this IPR, License and Distribution notice in
 152                                 its entirety on ALL copies, or portions thereof, that you make and you complete a valid license 
 153                                 registration with IMS and receive an email from IMS granting the license. To register, follow the 
 154                                 instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. Once 
 155                                 registered you are granted permission to transfer unlimited distribution rights of this document for the 
 156                                 purposes of third-party or other distribution of your product or service that incorporates this 
 157                                 document as long as this IPR, License and Distribution notice remains in place in its entirety; 
 158  
 159                              *  If you wish to create and distribute a derived work from this document, you are hereby 
 160                                 granted permission to copy, display and distribute the contents of the derived work in any medium for 
 161                                 any purpose without fee or royalty provided that you include this IPR, License and Distribution 
 162                                 notice in its entirety on ALL copies, or portions thereof, that you make and you complete a valid 
 163                                 profile registration with IMS GLC and receive an email from IMS GLC granting the license. To register, follow
 164                                 the instructions on the IMS GLC website: http://www.imsglobal.org/profile/. Once registered you are 
 165                                 granted permission to transfer unlimited distribution rights of the derived work for the purposes of 
 166                                 third-party or other distribution of your product or service that incorporates the derived work as long 
 167                                 as this IPR, License and Distribution notice remains in place in its entirety. 
 168  
 169                              The limited permissions granted above are perpetual and will not be revoked by IMS GLC or its 
 170                              successors or assigns.
 171  
 172                              THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS
 173                              EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE CONSORTIUM
 174                              NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF
 175                              ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
 176  
 177              Source UML File Information
 178              ---------------------------
 179              The source file information must be supplied as an XMI file (without diagram layout information).
 180              The supported UML authoring tools are:
 181              (a) Poseidon – v6 (and later)
 182  
 183              Source XSLT File Information
 184              ----------------------------
 185              XSL Generator:    UMLtoXSDTransformv0p9.xsl
 186              XSLT Processor:   Xalan
 187              Release:          1.0 Beta 3
 188              Date:             31st May, 2009
 189  
 190              IMS GLC Auto-generation Binding Tool-kit (I-BAT)
 191              ------------------------------------------------
 192              This file was auto-generated using the IMS GLC Binding Auto-generation Tool-kit (I-BAT).  While every
 193              attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
 194              that this is an experimental tool.  Permission is given to make use of this tool.  IMS GLC makes no
 195              claim on the materials created by third party users of this tool.  Details on how to use this tool
 196              are contained in the IMS GLC "I-BAT" Documentation available at the IMS GLC web-site.
 197  
 198              Tool Copyright:  2005-2010 (c) IMS Global Learning Consortium Inc.  All Rights Reserved.
 199          </xs:documentation>
 200      </xs:annotation>
 201      
 202          <xs:annotation>
 203          <xs:documentation>
 204              Schematron Validation Rules Information
 205              ---------------------------------------
 206              Author:         Colin Smythe
 207              Date:           5th January, 2011
 208              Version:        1.1
 209              Status:         Final Release
 210              
 211              Description:    This set of schematron rules have been created to increase the validation capability of the QTIv1.2.1 XSD.
 212                              A total of 12 rule sets have been created to ensure that:
 213                              [1]  Only valid Assessment metadata is defined;
 214                              [2]  Only valid Question types are defined in the Itemmetatadata fields;
 215                              [3]  The structure of a True/False question is correct;
 216                              [4]  The structure of a Multiple-Choice (Single Response) question is correct;
 217                              [5]  The structure of a Multiple-Choice (Multiple Response) question is correct;
 218                              [6]  The structure of a Fill In Blank question is correct;
 219                              [7]  The structure of a Pattern Match question is correct;
 220                              [8]  The structure of an Essay question is correct;
 221                              [9]  The structures of the response processing/response-label are correct;
 222                              [10] The structure of a Hint in an Item is correct;
 223                              [11] The structure of a Solution in an Item is correct;
 224                              [12] The structure of the response processing feedback structure in an Item is correct;
 225                              [13] Generic features of an Item are correctly implemented.
 226              
 227              Rule Set:       [1]  The set of rules to ensure that only valid Assessment metadata is defined. 
 228                                   The rules are:
 229                                   (a) Only valid entries are defined for the Assessment metadata fieldlabel values;
 230                                   (b) Only valid entries are defined for the Assessment metadata fieldentry values for fieldlabel = 'qmd_assessmenttype';
 231                                   (c) Only valid entries are defined for the Assessment metadata fieldentry values for fieldlabel = 'qmd_scoretype';
 232                                   (d) Only valid entries are defined for the Assessment metadata fieldentry values for fieldlabel = 'qmd_feedbackpermitted';
 233                                   (e) Only valid entries are defined for the Assessment metadata fieldentry values for fieldlabel = 'qmd_hintspermitted';
 234                                   (f) Only valid entries are defined for the Assessment metadata fieldentry values for fieldlabel = 'qmd_solutionspermitted';
 235                                   (g) Only valid entries are defined for the Assessment metadata fieldentry values for fieldlabel = 'qmd_timelimit';
 236                                   (h) Only valid entries are defined for the Assessment metadata fieldentry values for fieldlabel = 'cc_allow_late_submission';
 237                                   (i) Only valid entries are defined for the Assessment metadata fieldentry values for fieldlabel = 'cc_maxattempts';
 238                                   (j) Only valid entries are defined for the Assessment metadata fieldentry values for fieldlabel = 'cc_profile';
 239                                   (k) There must be no more than one Assessment metadata field with fieldlabel='cc_profile';
 240                                   (l) There must be no more than one Assessment metadata field with fieldlabel='qmd_assessmenttype';
 241                                   (m) There must be no more than one Assessment metadata field with fieldlabel='qmd_scoretype';
 242                                   (n) There must be no more than one Assessment metadata field with fieldlabel='qmd_feedbackpermitted';
 243                                   (o) There must be no more than one Assessment metadata field with fieldlabel='qmd_hintspermitted';
 244                                   (p) There must be no more than one Assessment metadata field with fieldlabel='qmd_solutionspermitted';
 245                                   (q) There must be no more than one Assessment metadata field with fieldlabel='qmd_timelimit';
 246                                   (r) There must be no more than one Assessment metadata field with fieldlabel='cc_allow_late_submission';
 247                                   (s) There must be no more than one Assessment metadata field with fieldlabel='cc_maxattempts'.
 248              
 249                              [2]  The set of rules to ensure that only valid Question types are defined in the Itemmetatadata fields.
 250                                   The rules are:
 251                                   (a) Only valid entries are defined for the Itemmetadata fieldlabel values;
 252                                   (b) Only valid entries are defined for the Itemmetadata fieldentry values for fieldlabel = 'cc_profile';
 253                                   (c) Only valid entries are defined for the Itemmetadata fieldentry values for fieldlabel = 'cc_weighting';
 254                                   (d) Only valid entries are defined for the Itemmetadata fieldentry values for fieldlabel = 'qmd_scoringpermitted';
 255                                   (e) Only valid entries are defined for the Itemmetadata fieldentry values for fieldlabel = 'qmd_computerscored';
 256                                   (f) The Item metadata field with fieldlabel='cc_profile' must be present;
 257                                   (g) There must only be one Item metadata fields with fieldlabel='cc_profile'for each Item;
 258                                   (h) There must be no more than one Item metadata field with fieldlabel='cc_weighting'for each Item;
 259                                   (i) There must be no more than one Item metadata field with fieldlabel='qmd_scoringpermitted' for each Item;
 260                                   (j) There must be no more than one Item metadata field with fieldlabel='qmd_computerscored'for each Item.
 261                                  
 262                              [3]  The set of rules to ensure that the structure of a True/False question is correct.
 263                                   The rules are:
 264                                   (a) That @rcardinality='Single';
 265                                   (b) The element 'response_str' is not used;
 266                                   (c) The element 'render_fib' is not used;
 267                                   (d) That there are zero or two response labels;
 268                                   (e) That the response processing uses the correct identifiers i.e. varequal/@respident value is equal to the response_lid/@ident;
 269                                   (f) The varsubstring element must not be used.
 270                              
 271                              [4]  The set of rules to ensure that the structure of a Multiple-Choice (Single Response) question is correct.
 272                                   The rules are:
 273                                   (a) That @rcardinality='Single';
 274                                   (b) The element 'response_str' is not used;
 275                                   (c) The element 'render_fib' is not used;
 276                                   (d) That there are at least three response labels;
 277                                   (e) That the response processing uses the correct identifiers i.e. varequal/@respident value is equal to the response_lid/@ident; 
 278                                   (f) The varsubstring element must not be used.
 279                              
 280                              [5]  The set of rules to ensure that the structure of a Multiple-Choice (Multiple Response) question is correct.
 281                                   The rules are:
 282                                   (a) That @rcardinality='Multiple';
 283                                   (b) The element 'response_str' is not used;
 284                                   (c) The element 'render_fib' is not used;
 285                                   (d) That there are at least two response labels;
 286                                   (e) That the response processing uses the correct identifiers i.e. varequal/@respident value is equal to the response_lid/@ident;
 287                                   (f) The varsubstring element must not be used..
 288                                  
 289                              [6]  The set of rules to ensure that the structure of a Fill-in-Blank question is correct.
 290                                   The rules are:
 291                                   (a) The element 'response_lid' is not used;
 292                                   (b) The element 'render_choice' is not used;
 293                                   (c) That the response processing uses the correct identifiers i.e. varequal/@respident value is equal to the response_str/@ident;
 294                                   (d) There is no use of the 'varsubstring' element.
 295                                  
 296                              [7]  The set of rules to ensure that the structure of a Pattern Match question is correct.
 297                                   The rules are:
 298                                   (a) The element 'response_lid' is not used;
 299                                   (b) The element 'render_choice' is not used;
 300                                   (c) That the response processing uses the correct identifiers i.e. varequal/@respident value is equal to the response_str/@ident.
 301                                  
 302                              [8]  The set of rules to ensure that the structure of an Essay question is correct.
 303                                   The rules are:
 304                                   (a) The element 'response_lid' is not used;
 305                                   (b) The element 'render_choice' is not used;
 306                                   (c) There is no use of the 'varequal' element;
 307                                   (d) There is no use of the 'varsubstring' element;
 308                                   (e) No more than a single Solution feedback can be supplied;
 309                                   (f) The fieldentry Item metadata for an Essay question with the fieldlabel='qmd_computerscored' must be set as 'No'.                                
 310                                  
 311                              [9]  The set of rules to ensure that the Response Processing/Response-Label structures are valid.
 312                                   The rules are:
 313                                   (a) There are no invalid response labels used in the 'varequal' element for T/F and MC questions. 
 314                              
 315                              [10] The set of rules to ensure that the structure of a Hint in an Item is correct.
 316                                   The rules are:
 317                                   (a) The element 'displayfeedback@feedbacktype=Hint' is accompanied by the @linkrefid='hint' attribute;
 318                                   (b) The element 'itemfeedback@ident=hint' is not followed by the 'solution' element;
 319                                   (c) The element 'itemfeedback@ident=hint' is not followed by the 'flow_mat' element;
 320                                   (d) If the element 'displayfeedback@feedbacktype=Hint' is used it must be accompanied by hint feedback.
 321                                  
 322                              [11] The set of rules to ensure that the structure of a Solution in an Item is correct.
 323                                   The rules are:
 324                                   (a) The element 'displayfeedback@feedbacktype=Solution' is accompanied by the @linkrefid='solution' attribute;
 325                                   (b) The element 'itemfeedback@ident=solution' is not followed by the 'hint' element;
 326                                   (c) The element 'itemfeedback@ident=solution' is not followed by the 'flow_mat' element;
 327                                   (d) If the element 'displayfeedback@feedbacktype=Solution' is used it must be accompanied by solution feedback.
 328                                   
 329                              [12] The set of rules to ensure that the general structure of the Response Processing in an Item is correct.
 330                                   The rules are:
 331                                   (a) The element 'displayfeedback@feedbacktype=Response' is not accompanied by the @linkrefid='solution' attribute;
 332                                   (b) The element 'displayfeedback@feedbacktype=Response' is not accompanied by the @linkrefid='hint' attribute;
 333                                   (c) To check that for each element 'displayfeedback@feedbacktype=Response' the corresponding 'itemfeedback' element exists;
 334                                   (d) To check that a given response processing itemfeedback identifier there is a corresponding displayfeedback trigger for that identifier.
 335                                   
 336                              [13] The set of rules to ensure that the general features in an Item are correct.
 337                                   The rules are:
 338                                   (a) To ensure that each Item has a unique @ident attribute.
 339          </xs:documentation>
 340          <xs:appinfo>
 341              <sch:ns uri="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" prefix="asi"/>
 342              <sch:title>Schematron validation rules for the Common Cartridge v1p1 profile of QTI v1.2.1</sch:title>
 343              
 344  <!-- RULE 1: Assessment Metadata Fields Validation -->
 345              <sch:pattern abstract="false" name="RULE SET 1">
 346                  <sch:title>RULE SET 1: Ensure that only valid metadata is defined in the Assessment metadata fields</sch:title>
 347                  
 348                  <sch:rule abstract="false" context="asi:assessment/asi:qtimetadata/asi:qtimetadatafield">
 349                      <sch:assert test="asi:fieldlabel='cc_profile' or asi:fieldlabel='qmd_assessmenttype' 
 350                                                                    or asi:fieldlabel='qmd_scoretype'
 351                                                                    or asi:fieldlabel='qmd_feedbackpermitted'
 352                                                                    or asi:fieldlabel='qmd_hintspermitted'
 353                                                                    or asi:fieldlabel='qmd_solutionspermitted'
 354                                                                    or asi:fieldlabel='qmd_timelimit'
 355                                                                    or asi:fieldlabel='cc_allow_late_submission'
 356                                                                    or asi:fieldlabel='cc_maxattempts'">
 357                          [RULE 1a] Invalid Assessment metadata fieldlabel value: <sch:value-of select="asi:fieldlabel"/>.
 358                      </sch:assert>
 359                  </sch:rule>              
 360                  
 361                  <sch:rule abstract="false" context="asi:assessment/asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel[.='qmd_assessmenttype']">
 362                      <sch:assert test="../asi:fieldentry='Examination'">
 363                          [RULE 1b] Invalid fieldentry Assessment metadata for the fieldlabel='qmd_assessmenttype' value: <sch:value-of select="../asi:fieldentry"/>.
 364                      </sch:assert>
 365                  </sch:rule>
 366                  
 367                  <sch:rule abstract="false" context="asi:assessment/asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel[.='qmd_scoretype']">
 368                      <sch:assert test="../asi:fieldentry='Percentage'">
 369                          [RULE 1c] Invalid fieldentry Assessment metadata for the fieldlabel='qmd_scoretype' value: <sch:value-of select="../asi:fieldentry"/>.
 370                      </sch:assert>
 371                  </sch:rule>
 372                  
 373                  <sch:rule abstract="false" context="asi:assessment/asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel[.='qmd_feedbackpermitted']">
 374                      <sch:assert test="../asi:fieldentry='No' or ../asi:fieldentry='Yes'">
 375                          [RULE 1d] Invalid fieldentry Assessment metadata for the fieldlabel='qmd_feedbackpermitted' value: <sch:value-of select="../asi:fieldentry"/>.
 376                      </sch:assert>
 377                  </sch:rule>
 378                  
 379                  <sch:rule abstract="false" context="asi:assessment/asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel[.='qmd_hintspermitted']">
 380                      <sch:assert test="../asi:fieldentry='No' or ../asi:fieldentry='Yes'">
 381                          [RULE 1e] Invalid fieldentry Assessment metadata for the fieldlabel='qmd_hintspermitted' value: <sch:value-of select="../asi:fieldentry"/>.
 382                      </sch:assert>
 383                  </sch:rule>
 384                  
 385                  <sch:rule abstract="false" context="asi:assessment/asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel[.='qmd_solutionspermitted']">
 386                      <sch:assert test="../asi:fieldentry='No' or ../asi:fieldentry='Yes'">
 387                          [RULE 1f] Invalid fieldentry Assessment metadata for the fieldlabel='qmd_solutionspermitted' value: <sch:value-of select="../asi:fieldentry"/>.
 388                      </sch:assert>
 389                  </sch:rule>
 390                  
 391                  <sch:rule abstract="false" context="asi:assessment/asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel[.='qmd_timelimit']">
 392                      <sch:assert test="not(contains(../asi:fieldentry, '.')) and ../asi:fieldentry &gt; 0 and ../asi:fieldentry &lt; 527041">
 393                          [RULE 1g] Invalid fieldentry Assessment metadata for the fieldlabel='qmd_timelimit' i.e. not a valid integer with value: <sch:value-of select="../asi:fieldentry"/>.
 394                      </sch:assert>
 395                  </sch:rule>
 396                  
 397                  <sch:rule abstract="false" context="asi:assessment/asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel[.='cc_allow_late_submission']">
 398                      <sch:assert test="../asi:fieldentry='No' or ../asi:fieldentry='Yes'">
 399                          [RULE 1h] Invalid fieldentry Assessment metadata for the fieldlabel='cc_allow_late_submission' value: <sch:value-of select="../asi:fieldentry"/>.
 400                      </sch:assert>
 401                  </sch:rule>
 402                  
 403                  <sch:rule abstract="false" context="asi:assessment/asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel[.='cc_maxattempts']">
 404                      <sch:assert test="../asi:fieldentry='Examination'
 405                          or ../asi:fieldentry='1' or ../asi:fieldentry='2'
 406                          or ../asi:fieldentry='3' or ../asi:fieldentry='4'
 407                          or ../asi:fieldentry='5' or ../asi:fieldentry='unlimited'">
 408                          [RULE 1i] Invalid fieldentry Assessment metadata for the fieldlabel='cc_maxattempts' value: <sch:value-of select="../asi:fieldentry"/>.
 409                      </sch:assert>
 410                  </sch:rule>
 411                  
 412                  <sch:rule abstract="false" context="asi:assessment/asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel[.='cc_profile']">
 413                      <sch:assert test="../asi:fieldentry='cc.exam.v0p1'">
 414                          [RULE 1j] Invalid fieldentry Assessment metadata for the fieldlabel='cc_profile' value: <sch:value-of select="../asi:fieldentry"/>.
 415                      </sch:assert>
 416                  </sch:rule>
 417  
 418                  <sch:rule abstract="false" context="asi:assessment/asi:qtimetadata">
 419                      
 420                      <sch:assert test="count(asi:qtimetadatafield/asi:fieldlabel[.='cc_profile']) &lt; 2">
 421                          [RULE 1k] There are repeated assessment metadata fields of fieldlabel='cc_profile' with count=<sch:value-of select="count(asi:qtimetadatafield/asi:fieldlabel[.='cc_profile'])"/>.
 422                      </sch:assert>
 423                      
 424                      <sch:assert test="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_assessmenttype']) &lt; 2">
 425                          [RULE 1l] There are repeated assessment metadata fields of fieldlabel='qmd_assessmenttype' with count=<sch:value-of select="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_assessmenttype'])"/>.
 426                      </sch:assert>
 427                      
 428                      <sch:assert test="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_scoretype']) &lt; 2">
 429                          [RULE 1m] There are repeated assessment metadata fields of fieldlabel='qmd_scoretype' with count=<sch:value-of select="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_scoretype'])"/>.
 430                      </sch:assert>
 431                      
 432                      <sch:assert test="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_feedbackpermitted']) &lt; 2">
 433                          [RULE 1n] There are repeated assessment metadata fields of fieldlabel='qmd_feedbackpermitted' with count=<sch:value-of select="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_feedbackpermitted'])"/>.
 434                      </sch:assert>
 435                      
 436                      <sch:assert test="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_hintspermitted']) &lt; 2">
 437                          [RULE 1o] There are repeated assessment metadata fields of fieldlabel='qmd_hintspermitted' with count=<sch:value-of select="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_hintspermitted'])"/>.
 438                      </sch:assert>
 439                      
 440                      <sch:assert test="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_solutionspermitted']) &lt; 2">
 441                          [RULE 1p] There are repeated assessment metadata fields of fieldlabel='qmd_solutionspermitted' with count=<sch:value-of select="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_solutionspermitted'])"/>.
 442                      </sch:assert>
 443                      
 444                      <sch:assert test="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_timelimit']) &lt; 2">
 445                          [RULE 1q] There are repeated assessment metadata fields of fieldlabel='qmd_timelimit' with count=<sch:value-of select="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_timelimit'])"/>.
 446                      </sch:assert>
 447                      
 448                      <sch:assert test="count(asi:qtimetadatafield/asi:fieldlabel[.='cc_allow_late_submission']) &lt; 2">
 449                          [RULE 1r] There are repeated assessment metadata fields of fieldlabel='cc_allow_late_submission' with count=<sch:value-of select="count(asi:qtimetadatafield/asi:fieldlabel[.='cc_allow_late_submission'])"/>.
 450                      </sch:assert>
 451                      
 452                      <sch:assert test="count(asi:qtimetadatafield/asi:fieldlabel[.='cc_maxattempts']) &lt; 2">
 453                          [RULE 1s] There are repeated assessment metadata fields of fieldlabel='cc_maxattempts' with count=<sch:value-of select="count(asi:qtimetadatafield/asi:fieldlabel[.='cc_maxattempts'])"/>.
 454                      </sch:assert>
 455                      
 456                  </sch:rule>
 457                  
 458              </sch:pattern>
 459  <!-- **************************************************************************** -->
 460              
 461  <!-- RULE 2: Item Metadata Fields Validation -->
 462              <sch:pattern abstract="false" name="RULE SET 2">
 463                  <sch:title>RULE SET 2: Ensure that only valid metadata is defined in the Itemmetatadata fields</sch:title>
 464                  
 465                  <sch:rule abstract="false" context="asi:itemmetadata/asi:qtimetadata/asi:qtimetadatafield">
 466                      <sch:assert test="asi:fieldlabel='cc_profile'
 467                                        or asi:fieldlabel='cc_question_category' 
 468                                        or asi:fieldlabel='cc_weighting'
 469                                        or asi:fieldlabel='qmd_scoringpermitted'
 470                                        or asi:fieldlabel='qmd_computerscored'">
 471                          [RULE 2a] Invalid Itemmetadata fieldlabel value: <sch:value-of select="../asi:fieldlabel"/>.
 472                      </sch:assert>
 473                  </sch:rule>
 474                  
 475                  <sch:rule abstract="false" context="asi:itemmetadata/asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel[.='cc_profile']">
 476                      <sch:assert test="../asi:fieldentry='cc.multiple_choice.v0p1'
 477                                        or ../asi:fieldentry='cc.multiple_response.v0p1' 
 478                                        or ../asi:fieldentry='cc.true_false.v0p1'
 479                                        or ../asi:fieldentry='cc.fib.v0p1'
 480                                        or ../asi:fieldentry='cc.pattern_match.v0p1'
 481                                        or ../asi:fieldentry='cc.essay.v0p1'">
 482                          [RULE 2b] Invalid fieldentry Question Type (fieldlabel='cc_profile') value: <sch:value-of select="../asi:fieldentry"/>.
 483                      </sch:assert>
 484                  </sch:rule>
 485                  
 486                  <sch:rule abstract="false" context="asi:itemmetadata/asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel[.='cc_weighting']">
 487                      <sch:assert test="not(contains(../asi:fieldentry, '.')) and ../asi:fieldentry &gt; 0 and ../asi:fieldentry &lt; 100">
 488                          [RULE 2c] Invalid fieldentry Item metadata weighting for the fieldlabel='cc_weighting' i.e. not an integer in the range 1..99, with value: <sch:value-of select="../asi:fieldentry"/>.
 489                      </sch:assert>
 490                  </sch:rule>
 491                  
 492                  <sch:rule abstract="false" context="asi:itemmetadata/asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel[.='qmd_scoringpermitted']">
 493                      <sch:assert test="../asi:fieldentry = 'Yes'">
 494                          [RULE 2d] Invalid fieldentry Item metadata for the fieldlabel='qmd_scoringpermitted' with value: <sch:value-of select="../asi:fieldentry"/>.
 495                      </sch:assert>
 496                  </sch:rule>
 497                  
 498                  <sch:rule abstract="false" context="asi:itemmetadata/asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel[.='qmd_computerscored']">
 499                      <sch:assert test="../asi:fieldentry = 'No' or ../asi:fieldentry = 'Yes'">
 500                          [RULE 2e] Invalid fieldentry Item metadata for the fieldlabel='qmd_computerscored' with value: <sch:value-of select="../asi:fieldentry"/>.
 501                      </sch:assert>
 502                  </sch:rule>
 503                  
 504                  <sch:rule abstract="false" context="asi:itemmetadata/asi:qtimetadata">
 505                      
 506                      <sch:assert test="count(asi:qtimetadatafield/asi:fieldlabel[.='cc_profile']) > 0">
 507                          [RULE 2f] The Item metadata field with fieldlabel='cc_profile' is missing.
 508                      </sch:assert>
 509                      
 510                      <sch:assert test="count(asi:qtimetadatafield/asi:fieldlabel[.='cc_profile'])=0 or count(asi:qtimetadatafield/asi:fieldlabel[.='cc_profile'])=1">
 511                          [RULE 2g] There are too many Item metadata fields with fieldlabel='cc_profile' i.e. count=<sch:value-of select="count(asi:qtimetadatafield/asi:fieldlabel[.='cc_profile'])"/>.
 512                      </sch:assert>
 513                      
 514                      <sch:assert test="count(asi:qtimetadatafield/asi:fieldlabel[.='cc_weighting']) &lt; 2">
 515                          [RULE 2h] There are too many Item metadata fields with fieldlabel='cc_weighting' i.e. count=<sch:value-of select="count(asi:qtimetadatafield/asi:fieldlabel[.='cc_weighting'])"/>.
 516                      </sch:assert>
 517                      
 518                      <sch:assert test="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_scoringpermitted']) &lt; 2">
 519                          [RULE 2i] There are too many Item metadata fields with fieldlabel='qmd_scoringpermitted' i.e. count=<sch:value-of select="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_scoringpermitted'])"/>.
 520                      </sch:assert>
 521                      
 522                      <sch:assert test="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_computerscored']) &lt; 2">
 523                          [RULE 2j] There are too many Item metadata fields with fieldlabel='qmd_computerscored' i.e. count=<sch:value-of select="count(asi:qtimetadatafield/asi:fieldlabel[.='qmd_computerscored'])"/>.
 524                      </sch:assert>
 525                      
 526                  </sch:rule>
 527                  
 528              </sch:pattern>            
 529  <!-- **************************************************************************** -->
 530              
 531  <!-- RULE 3: True/False Question Structure Fields Validation -->
 532              <sch:pattern name="RULE SET 3">
 533                  <sch:title>RULE SET 3: Ensure that the structure of a True/False question is correct</sch:title>
 534                  
 535                  <sch:rule abstract="false" context="asi:fieldentry[.='cc.true_false.v0p1']">
 536                      <sch:assert test="../../../../asi:presentation/asi:response_lid[@rcardinality='Single']">
 537                          [RULE 3a] Incorrect cardinality attribute value for the T/F question: <sch:value-of select="../../../../asi:presentation/asi:response_lid/@rcardinality"/>
 538                      </sch:assert>
 539                      
 540                      <sch:assert test="count(../../../../asi:presentation/asi:response_str) = 0">
 541                          [RULE 3b] The invalid 'response_str' element has been used for a T/F question.
 542                      </sch:assert>
 543                      
 544                      <sch:assert test="count(../../../../asi:presentation/asi:response_lid/asi:render_fib) = 0">
 545                          [RULE 3c] The invalid 'render_fib' element has been used for a T/F question.
 546                      </sch:assert>
 547                      
 548                      <sch:assert test="count(../../../../asi:presentation/asi:response_lid/asi:render_choice/asi:response_label) = 2">
 549                          [RULE 3d] There are too many or too few response labels for the T/F question.
 550                      </sch:assert>
 551                      
 552                      <sch:assert test="../../../../asi:presentation/asi:response_lid/@ident = ../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varequal/@respident">
 553                          [RULE 3e] The T/F response processing Varequal respident attribute 
 554                          (<sch:value-of select="../../../../asi:presentation/asi:response_lid/@ident"/>)
 555                          value is not equal to the corresonding Response_lid ident 
 556                          (<sch:value-of select="../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varequal/@respident"/>)
 557                          attribute for the True/False question.                  
 558                      </sch:assert>
 559                      
 560                      <sch:assert test="count(../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varsubstring) = 0">
 561                          [RULE 3f] There is an invalid use of the varsubstring element in a T/F question.
 562                      </sch:assert>
 563                      
 564                  </sch:rule>
 565                  
 566              </sch:pattern>           
 567  <!-- **************************************************************************** -->
 568  
 569  <!-- RULE 4: Multiple Choice-Single Response Question Structure Fields Validation -->
 570              <sch:pattern name="RULE SET 4">
 571                  <sch:title>RULE SET 4: Ensure that the structure of a MC-SR question is correct</sch:title>
 572                  
 573                  <sch:rule abstract="false" context="asi:fieldentry[.='cc.multiple_choice.v0p1']">
 574                      <sch:assert test="../../../../asi:presentation/asi:response_lid[@rcardinality='Single']">
 575                          [RULE 4a] Incorrect cardinality attribute value for the MC-SR question: <sch:value-of select="../../../../asi:presentation/asi:response_lid/@rcardinality"/>.
 576                      </sch:assert>
 577                      
 578                      <sch:assert test="count(../../../../asi:presentation/asi:response_str) = 0">
 579                          [RULE 4b] The invalid 'response_str' element has been used for a MC-SR question.
 580                      </sch:assert>
 581                      
 582                      <sch:assert test="count(../../../../asi:presentation/asi:response_lid/asi:render_fib) = 0">
 583                          [RULE 4c] The invalid 'render_fib' element has been used for a MC-SR question.
 584                      </sch:assert>
 585                      
 586                      <sch:assert test="count(../../../../asi:presentation/asi:response_lid/asi:render_choice/asi:response_label) > 2">
 587                          [RULE 4d] There are too too few response labels for the MC-SR question.
 588                      </sch:assert>
 589                      
 590                      <sch:assert test="../../../../asi:presentation/asi:response_lid/@ident = ../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varequal/@respident">
 591                          [RULE 4e] The MC-SR response processing Varequal respident attribute 
 592                          (<sch:value-of select="../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varequal/@respident"/>)                        
 593                          value is not equal to the corresonding Response_lid ident 
 594                          (<sch:value-of select="../../../../asi:presentation/asi:response_lid/@ident"/>)
 595                          attribute for the Multiple Choice single response question.                  
 596                      </sch:assert>
 597                      
 598                      <sch:assert test="count(../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/descendant::asi:varsubstring) = 0">
 599                          [RULE 4f] There is an invalid use of the varsubstring element in a MC-SR question.
 600                      </sch:assert>
 601                      
 602                  </sch:rule>
 603                  
 604              </sch:pattern>
 605  <!-- **************************************************************************** -->
 606  
 607  <!-- RULE 5: Multiple Choice-Multiple Response Question Structure Fields Validation -->
 608              <sch:pattern name="RULE SET 5">
 609                  <sch:title>RULE SET 5: Ensure that the structure of a MC-MR question is correct</sch:title>
 610                  
 611                  <sch:rule abstract="false" context="asi:fieldentry[.='cc.multiple_response.v0p1']">
 612                      
 613                      <sch:assert test="../../../../asi:presentation/asi:response_lid[@rcardinality='Multiple']">
 614                          [RULE 5a] Incorrect cardinality attribute value for the MC-MR question: <sch:value-of select="../../../../asi:presentation/asi:response_lid/@rcardinality"/>.
 615                      </sch:assert>
 616                      
 617                      <sch:assert test="count(../../../../asi:presentation/asi:response_str) = 0">
 618                          [RULE 5b] The invalid 'response_str' element has been used for a MC-MR question.
 619                      </sch:assert>
 620                      
 621                      <sch:assert test="count(../../../../asi:presentation/asi:response_lid/asi:render_fib) = 0">
 622                          [RULE 5c] The invalid 'render_fib' element has been used for a MC-MR question.
 623                      </sch:assert>
 624                                         
 625                      <sch:assert test="count(../../../../asi:presentation/asi:response_lid/asi:render_choice/asi:response_label) > 1">
 626                          [RULE 5d] There are too too few response labels for the MC-MR question.
 627                      </sch:assert>
 628                      
 629                      <sch:assert test="../../../../asi:presentation/asi:response_lid/@ident = ../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varequal/@respident or ../../../../asi:presentation/asi:response_lid/@ident = ../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:and/asi:varequal/@respident">
 630                          [RULE 5e] The MC-MR response processing Varequal respident attribute 
 631                          (<sch:value-of select="../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varequal/@respident"/>)
 632                          value is not equal to the corresonding Response_lid ident 
 633                          (<sch:value-of select="../../../../asi:presentation/asi:response_lid/@ident"/>)
 634                          attribute for the Multiple Choice multiple response question.                  
 635                      </sch:assert>
 636                      
 637                      <sch:assert test="count(../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varsubstring) = 0">
 638                          [RULE 5f] There is an invalid use of the varsubstring element in a MC-MR question.
 639                      </sch:assert>
 640                      
 641                  </sch:rule>
 642                  
 643              </sch:pattern>            
 644  <!-- **************************************************************************** -->
 645              
 646  <!-- RULE 6: Fill-in-Blank Question Structure Fields Validation -->
 647              <sch:pattern name="RULE SET 6">
 648                  <sch:title>RULE SET 6: Ensure that the structure of a FIB question is correct</sch:title>
 649                  
 650                  <sch:rule abstract="false" context="asi:fieldentry[.='cc.fib.v0p1']">
 651                      
 652                      <sch:assert test="count(../../../../asi:presentation/asi:response_lid) = 0">
 653                          [RULE 6a] The invalid 'response_lid' element has been used for a FIB question.
 654                      </sch:assert>
 655                      
 656                      <sch:assert test="count(../../../../asi:presentation/asi:response_str/asi:render_choice) = 0">
 657                          [RULE 6b] The invalid 'render_choice' element has been used for a FIB question.
 658                      </sch:assert>
 659                      
 660                      <sch:assert test="../../../../asi:presentation/asi:response_str/@ident = ../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varequal/@respident">
 661                          [RULE 6c] The FIB response processing Varequal respident attribute 
 662                          (<sch:value-of select="../../../../asi:presentation/asi:response_str/@ident"/>)
 663                          value is not equal to the corresonding Response_str ident 
 664                          (<sch:value-of select="../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varequal/@respident"/>)
 665                          attribute for the FIB question.                  
 666                      </sch:assert>
 667                      
 668                      <sch:assert test="count(../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varsubstring) = 0">
 669                          [RULE 6d] There is an invalid use of the 'varsubstring' element in the FIB question.
 670                      </sch:assert>
 671                      
 672                  </sch:rule>
 673                  
 674              </sch:pattern>            
 675  <!-- **************************************************************************** -->
 676              
 677  <!-- RULE 7: Pattern Match Question Structure Fields Validation -->
 678              <sch:pattern name="RULE SET 7">
 679                  <sch:title>RULE SET 7: Ensure that the structure of a Pattern Match question is correct</sch:title>
 680                  
 681                  <sch:rule abstract="false" context="asi:fieldentry[.='cc.pattern_match.v0p1']">
 682                      
 683                      <sch:assert test="count(../../../../asi:presentation/asi:response_lid) = 0">
 684                          [RULE 7a] The invalid 'response_lid' element has been used for a Pattern Match question.
 685                      </sch:assert>
 686                      
 687                      <sch:assert test="count(../../../../asi:presentation/asi:response_str/asi:render_choice) = 0">
 688                          [RULE 7b] The invalid 'render_choice' element has been used for a Pattern Match question.
 689                      </sch:assert>
 690                      
 691                      <sch:assert test="../../../../asi:presentation/asi:response_str/@ident = ../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varequal/@respident">
 692                          [RULE 7c] The FIB response processing Varequal respident attribute 
 693                          (<sch:value-of select="../../../../asi:presentation/asi:response_str/@ident"/>)
 694                          value is not equal to the corresonding Response_str ident 
 695                          (<sch:value-of select="../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varequal/@respident"/>)
 696                          attribute for the Pattern Match question.                  
 697                      </sch:assert>
 698                      
 699                  </sch:rule>
 700                  
 701              </sch:pattern>            
 702  <!-- **************************************************************************** -->
 703              
 704  <!-- RULE 8: Essay Question Structure Fields Validation -->
 705              <sch:pattern name="RULE SET 8">
 706                  <sch:title>RULE SET 8: Ensure that the structure of a Essay question is correct</sch:title>
 707                  
 708                  <sch:rule abstract="false" context="asi:fieldentry[.='cc.essay.v0p1']">
 709                      
 710                      <sch:assert test="count(../../../../asi:presentation/asi:response_lid) = 0">
 711                          [RULE 8a] The invalid 'response_lid' element has been used for an Essay question.
 712                      </sch:assert>
 713                      
 714                      <sch:assert test="count(../../../../asi:presentation/asi:response_str/asi:render_choice) = 0">
 715                          [RULE 8b] The invalid 'render_choice' element has been used for an Essay question.
 716                      </sch:assert>
 717                      
 718                      <sch:assert test="count(../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/descendant::asi:varequal) = 0">
 719                          [RULE 8c] There is an invalid use of the 'varequal' element in an Essay question.
 720                      </sch:assert>
 721                      
 722                      <sch:assert test="count(../../../../asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varsubstring) = 0">
 723                          [RULE 8d] There is an invalid use of the 'varsubstring' element in an Essay question.
 724                      </sch:assert>
 725                      
 726                      <sch:assert test="count(../../../../asi:itemfeedback/asi:solution) &lt; 2">
 727                          [RULE 8e] Too many Solution feedback structures are supplied.
 728                      </sch:assert>
 729                      
 730                      <sch:assert test="../../../asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel='qmd_computerscored' and ../../../asi:qtimetadata/asi:qtimetadatafield/asi:fieldentry = 'No'">
 731                          [RULE 8f] Invalid fieldentry Item metadata for an Essay question with the fieldlabel='qmd_computerscored' with value: <sch:value-of select="../../../asi:qtimetadata/asi:qtimetadatafield/asi:fieldlabel[.='qmd_computerscored']/../asi:fieldentry"/>.
 732                      </sch:assert>
 733                      
 734                  </sch:rule>
 735                  
 736              </sch:pattern>            
 737  <!-- **************************************************************************** -->
 738              
 739  <!-- RULE 9: General Response Processing/Response-Label structure validation -->
 740  <!--
 741              <sch:pattern name="RULE SET 9">
 742                  <sch:title>RULE SET 9: Ensure that the response processing operates on valid response labels</sch:title>
 743                  
 744                  <sch:rule abstract="false" context="asi:item">
 745                      
 746                      <sch:let name="ResponseLidIdent" value="asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varequal/@respident"/>
 747                      <sch:let name="VarEqualValue" value="asi:resprocessing/asi:respcondition/asi:conditionvar/asi:varequal[@respident=$ResponseLidIdent]"/>
 748                      <sch:assert test="count(asi:presentation/asi:response_lid[@ident = $ResponseLidIdent]/asi:render_choice/asi:response_label[@ident=$VarEqualValue]) = count(asi:presentation/asi:response_lid[@ident = $ResponseLidIdent]/asi:render_choice/asi:response_label)">
 749                          [RULE 9a] At least <sch:value-of select="count(asi:presentation/asi:response_lid[@ident = $ResponseLidIdent]/asi:render_choice/asi:response_label)-count(asi:presentation/asi:response_lid[@ident = $ResponseLidIdent]/asi:render_choice/asi:response_label[@ident=$VarEqualValue])"/> of the varequal response label values (<sch:value-of select="$VarEqualValue"/>) is/are invalid in a T/F or MC question.
 750                      </sch:assert>
 751                      
 752                  </sch:rule>
 753                  
 754              </sch:pattern>
 755  -->            
 756  <!-- **************************************************************************** -->
 757              
 758  <!-- RULE 10: Hint structure validation -->
 759              <sch:pattern name="RULE SET 10">
 760                  <sch:title>RULE SET 10: Ensure that the structure of a Hint in an Item is correct</sch:title>
 761                  
 762                  <sch:rule abstract="false" context="asi:item">
 763                      
 764                      <sch:assert test="count(asi:resprocessing/asi:respcondition/asi:displayfeedback[@feedbacktype='Solution' and @linkrefid='hint']) = 0">
 765                          [RULE 10a] The displayfeedback@feedbacktype='Solution' has been used to identify a Hint.
 766                      </sch:assert>
 767                                         
 768                      <sch:assert test="count(asi:itemfeedback[@ident='hint']/asi:solution)=0">
 769                          [RULE 10b] The itemfeedback@ident='hint' has been used to identify a Solution.
 770                      </sch:assert>
 771                      
 772                      <sch:assert test="count(asi:itemfeedback[@ident='hint']/asi:flow_mat)=0">
 773                          [RULE 10c] The itemfeedback@ident='hint' has been used to identify Response feedback.
 774                      </sch:assert>
 775                      
 776                  </sch:rule>
 777                  
 778                  <sch:rule abstract="false" context="asi:item/asi:resprocessing/asi:respcondition/asi:displayfeedback[@feedbacktype='Hint']">
 779                      <sch:assert test="count(../../../asi:itemfeedback[@ident='hint']) = 1">
 780                          [RULE 10d] A displayfeedback[@feedbacktype='Hint'] trigger has no accompanying hint feedback.
 781                      </sch:assert>
 782                  </sch:rule>
 783                  
 784              </sch:pattern>            
 785  <!-- **************************************************************************** -->
 786              
 787  <!-- RULE 11: Solution structure validation (in this Rule any type of Item is permitted support for solutions) -->
 788              <sch:pattern name="RULE SET 11">
 789                  <sch:title>RULE SET 11: Ensure that the structure of a Solution in an Item is correct</sch:title>
 790                  
 791                  <sch:rule abstract="false" context="asi:item">
 792                      
 793                      <sch:assert test="count(asi:resprocessing/asi:respcondition/asi:displayfeedback[@feedbacktype='Hint' and @linkrefid='solution']) = 0">
 794                          [RULE 11a] The displayfeedback@feedbacktype='Hint' has been used to identify a Solution.
 795                      </sch:assert>
 796                      
 797                      <sch:assert test="count(asi:itemfeedback[@ident='solution']/asi:hint) = 0">
 798                          [RULE 11b] The itemfeedback@ident='solution' has been used to identify a Hint.
 799                      </sch:assert>
 800                      
 801                      <sch:assert test="count(asi:itemfeedback[@ident='solution']/asi:flow_mat) = 0">
 802                          [RULE 11c] The itemfeedback@ident='solution' has been used to identify Response feedback.
 803                      </sch:assert>
 804                      
 805                  </sch:rule>
 806                  
 807                  <sch:rule abstract="false" context="asi:item/asi:resprocessing/asi:respcondition/asi:displayfeedback[@feedbacktype='Solution']">
 808                      <sch:assert test="count(../../../asi:itemfeedback[@ident='solution']) = 1">
 809                          [RULE 11d] A displayfeedback[@feedbacktype='Solution'] trigger has no accompanying solution feedback.
 810                      </sch:assert>
 811                  </sch:rule>
 812                  
 813              </sch:pattern>            
 814  <!-- **************************************************************************** -->
 815              
 816  <!-- RULE 12: General Response Processing Feedback structure validation -->
 817              <sch:pattern name="RULE SET 12">
 818                  <sch:title>RULE SET 12: Ensure that the structure of the response processing feedback structure in an Item is correct</sch:title>
 819                  
 820                  <sch:rule abstract="false" context="asi:item">
 821                      
 822                      <sch:assert test="count(asi:resprocessing/asi:respcondition/asi:displayfeedback[@feedbacktype='Response' and @linkrefid='solution']) = 0">
 823                          [RULE 12a] The displayfeedback@feedbacktype='Response' has been used to identify a Solution.
 824                      </sch:assert>
 825                      
 826                      <sch:assert test="count(asi:resprocessing/asi:respcondition/asi:displayfeedback[@feedbacktype='Response' and @linkrefid='hint']) = 0">
 827                          [RULE 12b] The displayfeedback@feedbacktype='Response' has been used to identify a Hint.
 828                      </sch:assert>
 829                      
 830                  </sch:rule>
 831                  
 832                  <sch:rule abstract="false" context="asi:item/asi:resprocessing/asi:respcondition/asi:displayfeedback[@feedbacktype='Response']">
 833                      <sch:assert test="../../../asi:itemfeedback/@ident = @linkrefid">
 834                          [RULE 12c] For the given displayfeedback identifier (<sch:value-of select="@linkrefid"/>) there is no itemfeedback with the correct identifier (<sch:value-of select="../../../asi:itemfeedback/@ident"/>).
 835                      </sch:assert>                   
 836                  </sch:rule>
 837                  
 838                  <sch:rule abstract="false" context="asi:item/asi:itemfeedback/asi:flow_mat">
 839                      <sch:assert test="../@ident = ../../asi:resprocessing/asi:respcondition/asi:displayfeedback[@feedbacktype='Response']/@linkrefid">
 840                          [RULE 12d] For the given response processing itemfeedback identifier (<sch:value-of select="../@ident"/>) there is no displayfeedback trigger with the correct identifier (<sch:value-of select="../../asi:resprocessing/asi:respcondition/asi:displayfeedback[@feedbacktype='Response']/@linkrefid"/>).
 841                      </sch:assert>                   
 842                  </sch:rule>
 843                  
 844              </sch:pattern>            
 845  <!-- **************************************************************************** -->
 846              
 847  <!-- RULE 13: The generic features of an Item must be correct -->
 848              <sch:pattern name="RULE SET 13">
 849                  <sch:title>RULE SET 13: Ensure that the generic features of an Item are correct</sch:title>
 850                  
 851                  <sch:rule abstract="false" context="asi:item">
 852                      
 853                      <sch:assert test="not(@ident=preceding-sibling::asi:item/@ident)">
 854                          [RULE 13a] There are Items that have common identifiers: <sch:value-of select="@ident"/>.
 855                      </sch:assert>
 856                      
 857                  </sch:rule>
 858                  
 859              </sch:pattern>            
 860  <!-- **************************************************************************** -->
 861              
 862          </xs:appinfo>
 863      </xs:annotation>
 864  
 865      <!-- Generate Global Attributes *********************************************************************** -->
 866  
 867      <!-- ================================================================================================== -->
 868  
 869      <!-- Generate Namespaced extension Group  ************************************************************* -->
 870  
 871      <!-- ================================================================================================== -->
 872  
 873      <!-- Generate Special DataTypes  ********************************************************************** -->
 874  
 875      <xs:complexType name="EmptyPrimitiveTypeType">
 876          <xs:complexContent>
 877              <xs:restriction base="xs:anyType"/>
 878          </xs:complexContent>
 879      </xs:complexType>
 880  
 881      <!-- ================================================================================================== -->
 882  
 883      <!-- Generate the enumerated simpleType declarations ************************************************** -->
 884  
 885      <!-- ================================================================================================== -->
 886  
 887      <!-- Generate the simpleType elements based IMS data-types  ******************************************* -->
 888  
 889      <xs:element name="matbreak" type="EmptyPrimitiveTypeType"/>
 890  
 891      <xs:element name="other" type="EmptyPrimitiveTypeType"/>
 892  
 893      <!-- ================================================================================================== -->
 894  
 895      <!-- Generate the derived data-type elements based upon simpleType ************************************ -->
 896  
 897      <!-- ================================================================================================== -->
 898  
 899      <!-- Generate the derived data-type elements based upon derived simpleType **************************** -->
 900  
 901      <!-- ================================================================================================== -->
 902  
 903      <!-- Generate the data-type ComplexTypes ************************************************************** -->
 904  
 905      <xs:complexType name="questestinteropType">
 906          <xs:annotation>
 907              <xs:documentation source="umlcommentbox">
 908                  The root structure can consist of either:
 909                  
 910                  * A single object bank;
 911                  * An assessment;
 912                  * A set of item(s);
 913                  * A set of section(s);
 914                  * Any combination of items and sections.
 915                  
 916                  As the root this is mandatory and can 
 917                  occur once.
 918                  
 919                  Common Cartridge Profile
 920                  
 921                  A Commn Cartridge is allowed to contain 
 922                  only an objectbank or an assessement. 
 923              </xs:documentation>
 924          </xs:annotation>
 925          <xs:sequence>
 926              <xs:choice minOccurs = "1" maxOccurs = "1">
 927                  <xs:element name="objectbank" type="objectbankType" minOccurs = "1" maxOccurs = "1"/>
 928                  <xs:element name="assessment" type="assessmentType" minOccurs = "1" maxOccurs = "1"/>
 929              </xs:choice>
 930          </xs:sequence>
 931      </xs:complexType>
 932  
 933      <xs:complexType name="assessmentType">
 934          <xs:annotation>
 935              <xs:documentation source="umlcommentbox">
 936                  QTI General
 937                  
 938                  An Assessment object is the logical construction of the test.  An Assessment must 
 939                  contain at least one Section which in turn will contain Items and/or Sections.  An 
 940                  Assessment must eventually be constructed from a set of Items i.e. questions
 941                  that are to be offered in the test.  An Assessment object contains all of the information 
 942                  to make the use of individual Items meaningful i.e. apart from the Sections the object 
 943                  includes the relationships between the Sections, the group evaluation processing and 
 944                  the corresponding feedback.
 945                  
 946                  Common Cartridge Profile
 947                  
 948                  The Assessment must consist of only one Section.  The only other permitted attributes 
 949                  are the mandatory identifier and title.  Optional language, metadata, rubric and 
 950                  presentation_material is also supported.
 951              </xs:documentation>
 952          </xs:annotation>
 953          <xs:sequence>
 954              <xs:element name="qtimetadata" type="qtimetadataType" minOccurs = "0" maxOccurs = "1"/>
 955              <xs:element name="rubric" type="rubricType" minOccurs = "0" maxOccurs = "1"/>
 956              <xs:element name="presentation_material" type="presentation_materialType" minOccurs = "0" maxOccurs = "1"/>
 957              <xs:element name="section" type="sectionType" minOccurs = "1" maxOccurs = "1"/>
 958          </xs:sequence>
 959          <xs:attribute name="ident" use="required" type="xs:string"/>
 960          <xs:attribute name="title" use="required" type="xs:string"/>
 961          <xs:attribute ref="xml:lang" use="optional"/>
 962      </xs:complexType>
 963  
 964      <xs:complexType name="objectbankType">
 965          <xs:annotation>
 966              <xs:documentation source="umlcommentbox">
 967                  QTI General
 968                  
 969                  An object bank is an unordered set of items and sections.  It is recommended
 970                  that there is a metadata description for the object bank as a whole.  The object 
 971                  bank should have a globally unique identifier.
 972                  
 973                  Common Cartridge Profile
 974                  
 975                  In the Common Cartridge the object-bank can only contain Items.  Meta-data 
 976                  support is available but the profile has no mandated entries.
 977              </xs:documentation>
 978          </xs:annotation>
 979          <xs:sequence>
 980              <xs:element name="qtimetadata" type="qtimetadataType" minOccurs = "0" maxOccurs = "1"/>
 981              <xs:element name="item" type="itemType" minOccurs = "1" maxOccurs = "unbounded"/>
 982          </xs:sequence>
 983          <xs:attribute name="ident" use="required" type="xs:string"/>
 984      </xs:complexType>
 985  
 986      <xs:complexType name="sectionType">
 987          <xs:annotation>
 988              <xs:documentation source="umlcommentbox">
 989                  QTI General
 990                  
 991                  A Section is the core grouping concept within QTI.  A Section consists of one or more Items or Sections (or
 992                  references to Items and Sections).  In general, the objects contained within a Secton will have some relationship 
 993                  either in terms of content or content delivery.  The Section data structure is used to define arbitrarily complex 
 994                  hierarchical section and item data structures.  It may contain meta-data, objectives, rubric control switches, 
 995                  assessment-level processing, feedback and selection and sequencing information for sections and items.
 996                  
 997                  Common Cartridge Profile
 998                  
 999                  In Common Cartridge the Section can only contain a list of Items.  No metadata is permitted.  The identifier is 
1000                  mandatory but the title and language are optional.
1001                  
1002              </xs:documentation>
1003          </xs:annotation>
1004          <xs:sequence>
1005              <xs:element name="item" type="itemType" minOccurs = "1" maxOccurs = "unbounded"/>
1006          </xs:sequence>
1007          <xs:attribute name="ident" use="required" type="xs:string"/>
1008          <xs:attribute name="title" use="optional" type="xs:string"/>
1009          <xs:attribute ref="xml:lang" use="optional"/>
1010      </xs:complexType>
1011  
1012      <xs:complexType name="itemType">
1013          <xs:annotation>
1014              <xs:documentation source="umlcommentbox">
1015                  An Item the smallest exchangeable object within QTI-XML.  An Item is more than a 
1016                  ‘Question’ in that it contains the ‘Question’, the presentation/rendering instructions, 
1017                  the response processing to be applied to the participant’s response(s), the feedback 
1018                  that may be presented (including hints and solutions) and the meta-data describing 
1019                  the Item.
1020              </xs:documentation>
1021          </xs:annotation>
1022          <xs:sequence>
1023              <xs:element name="itemmetadata" type="itemmetadataType" minOccurs = "0" maxOccurs = "1"/>
1024              <xs:element name="presentation" type="presentationType" minOccurs = "0" maxOccurs = "1"/>
1025              <xs:element name="resprocessing" type="resprocessingType" minOccurs = "0" maxOccurs = "unbounded"/>
1026              <xs:element name="itemfeedback" type="itemfeedbackType" minOccurs = "0" maxOccurs = "unbounded"/>
1027          </xs:sequence>
1028          <xs:attribute name="ident" use="required" type="xs:string"/>
1029          <xs:attribute name="title" use="optional" type="xs:string"/>
1030          <xs:attribute ref="xml:lang" use="optional"/>
1031      </xs:complexType>
1032  
1033      <xs:complexType name="itemmetadataType">
1034          <xs:annotation>
1035              <xs:documentation source="umlcommentbox">
1036                  Contains all of the QTI-specific metada-data 
1037                  to be applied to the Item.  This meta-data can 
1038                  consist of either entries defined using an 
1039                  external vocabulary or the individually named 
1040                  entries.  Usage of the contained attributes are 
1041                  deprecated apart from the 'qtimetadata' attribute.
1042              </xs:documentation>
1043          </xs:annotation>
1044          <xs:sequence>
1045              <xs:element name="qtimetadata" type="qtimetadataType" minOccurs = "1" maxOccurs = "unbounded"/>
1046          </xs:sequence>
1047      </xs:complexType>
1048  
1049      <xs:complexType name="presentationType">
1050          <xs:annotation>
1051              <xs:documentation source="umlcommentbox">
1052                  Contains all of the instructions for the presentation of the question 
1053                  during an evaluation.  This information includes the actual material 
1054                  to be presented.  The labels for the possible responses are also
1055                   identified and these are used by the response processing element 
1056                  defined elsewhere in the Item.
1057              </xs:documentation>
1058          </xs:annotation>
1059          <xs:sequence>
1060              <xs:choice minOccurs = "1" maxOccurs = "1">
1061                  <xs:element name="flow" type="flowType" minOccurs = "1" maxOccurs = "1"/>
1062                  <xs:choice minOccurs = "1" maxOccurs = "unbounded">
1063                      <xs:element name="material" type="materialType" minOccurs = "1" maxOccurs = "1"/>
1064                      <xs:element name="response_lid" type="response_lidType" minOccurs = "1" maxOccurs = "1"/>
1065                      <xs:element name="response_str" type="response_strType" minOccurs = "1" maxOccurs = "1"/>
1066                  </xs:choice>
1067              </xs:choice>
1068          </xs:sequence>
1069          <xs:attribute name="label" use="optional" type="xs:string"/>
1070          <xs:attribute ref="xml:lang" use="optional"/>
1071          <xs:attribute name="x0" use="optional" type="xs:string"/>
1072          <xs:attribute name="y0" use="optional" type="xs:string"/>
1073          <xs:attribute name="width" use="optional" type="xs:string"/>
1074          <xs:attribute name="height" use="optional" type="xs:string"/>
1075      </xs:complexType>
1076  
1077      <xs:complexType name="resprocessingType">
1078          <xs:annotation>
1079              <xs:documentation source="umlcommentbox">
1080                  This contains all of the instructions for the response 
1081                  processing.  This includes the scoring variables to contain 
1082                  the associated scores and the set of response condition 
1083                  tests that are to be applied to the received user response.
1084              </xs:documentation>
1085          </xs:annotation>
1086          <xs:sequence>
1087              <xs:element name="outcomes" type="outcomesType" minOccurs = "1" maxOccurs = "1"/>
1088              <xs:choice minOccurs = "1" maxOccurs = "unbounded">
1089                  <xs:element name="respcondition" type="respconditionType" minOccurs = "1" maxOccurs = "1"/>
1090              </xs:choice>
1091          </xs:sequence>
1092      </xs:complexType>
1093  
1094      <xs:complexType name="outcomesType">
1095          <xs:annotation>
1096              <xs:documentation source="umlcommentbox">
1097                  Contains all of the variable declarations that are to be 
1098                  made available to the scoring algorithm.  Each variable 
1099                  is declared using the 'decvar' structure apart from the 
1100                  default variable called ‘SCORE’ that is an integer and 
1101                  has a default value of zero (0).
1102                  
1103                  Common Cartridge Profile
1104                  
1105                  A single variable is permitted.  This is "SCORE".
1106              </xs:documentation>
1107          </xs:annotation>
1108          <xs:sequence>
1109              <xs:element name="decvar" type="decvarType" minOccurs = "1" maxOccurs = "1"/>
1110          </xs:sequence>
1111      </xs:complexType>
1112  
1113      <xs:complexType name="itemfeedbackType">
1114          <xs:annotation>
1115              <xs:documentation source="umlcommentbox">
1116                  The container for the feedback that is to be presented as a result of the 
1117                  user’s responses.  The feedback can include hints and solutions and 
1118                  both of these can be revealed in a variety of different ways.
1119              </xs:documentation>
1120          </xs:annotation>
1121          <xs:sequence>
1122              <xs:choice minOccurs = "1" maxOccurs = "unbounded">
1123                  <xs:choice minOccurs = "1" maxOccurs = "1">
1124                      <xs:element name="flow_mat" type="flow_matType" minOccurs = "1" maxOccurs = "1"/>
1125                      <xs:element name="material" type="materialType" minOccurs = "1" maxOccurs = "1"/>
1126                  </xs:choice>
1127                  <xs:element name="solution" type="solutionType" minOccurs = "1" maxOccurs = "1"/>
1128                  <xs:element name="hint" type="hintType" minOccurs = "1" maxOccurs = "1"/>
1129              </xs:choice>
1130          </xs:sequence>
1131          <xs:attribute name="ident" use="required" type="xs:string"/>
1132          <xs:attribute name="title" use="optional" type="xs:string"/>
1133      </xs:complexType>
1134  
1135      <xs:complexType name="respconditionType">
1136          <xs:annotation>
1137              <xs:documentation source="umlcommentbox">
1138                  Contains the actual test to be applied to the user responses 
1139                  to determine their correctness or otherwise.  Each 'respcondition' 
1140                  contains an actual test, the assignment of a value to the associate 
1141                  scoring variables and the identification of the feedback to be 
1142                  associated with the test.
1143              </xs:documentation>
1144          </xs:annotation>
1145          <xs:sequence>
1146              <xs:element name="conditionvar" type="conditionvarType" minOccurs = "1" maxOccurs = "1"/>
1147              <xs:element name="setvar" type="setvarType" minOccurs = "0" maxOccurs = "unbounded"/>
1148              <xs:element name="displayfeedback" type="displayfeedbackType" minOccurs = "0" maxOccurs = "unbounded"/>
1149          </xs:sequence>
1150          <xs:attribute name="title" use="optional" type="xs:string"/>
1151          <xs:attribute name="continue" use="optional" default="No">
1152              <xs:simpleType>
1153                  <xs:restriction base="xs:string">
1154                      <xs:enumeration value="Yes"/>
1155                      <xs:enumeration value="No"/>
1156                  </xs:restriction>
1157              </xs:simpleType>
1158          </xs:attribute>
1159      </xs:complexType>
1160  
1161      <xs:complexType name="presentation_materialType">
1162          <xs:annotation>
1163              <xs:documentation source="umlcommentbox">
1164                  This is the information that is to be presented to set the context for the 
1165                  contained objects.  This can be used to contain question-based material 
1166                  that is common to all of the child objects.  This is used in Assessment and 
1167                  Section objects. 
1168              </xs:documentation>
1169              <xs:documentation source="umlcommentbox">
1170                  This is the information that is used to describe the solution. 
1171              </xs:documentation>
1172          </xs:annotation>
1173          <xs:sequence>
1174              <xs:element name="flow_mat" type="flow_matType" minOccurs = "1" maxOccurs = "unbounded"/>
1175          </xs:sequence>
1176      </xs:complexType>
1177  
1178      <xs:complexType name="flow_matType">
1179          <xs:annotation>
1180              <xs:documentation source="umlcommentbox">
1181                  This allows the materials to be displayed to the users to be grouped together 
1182                  using flows.  The manner in which these flows are handled is dependent upon 
1183                  the display-engine.
1184              </xs:documentation>
1185          </xs:annotation>
1186          <xs:sequence>
1187              <xs:choice minOccurs = "1" maxOccurs = "unbounded">
1188                  <xs:element name="flow_mat" type="flow_matType" minOccurs = "1" maxOccurs = "1"/>
1189                  <xs:element name="material" type="materialType" minOccurs = "1" maxOccurs = "1"/>
1190                  <xs:element name="material_ref" type="material_refType" minOccurs = "1" maxOccurs = "1"/>
1191              </xs:choice>
1192          </xs:sequence>
1193          <xs:attribute name="class" use="optional" default="Block" type="xs:string"/>
1194      </xs:complexType>
1195  
1196      <xs:complexType name="materialType">
1197          <xs:annotation>
1198              <xs:documentation source="umlcommentbox">
1199                  This is the container for any content that is to be displayed by the question-engine. 
1200                  The supported content types are text (emphasised or not), images, audio, video, 
1201                  application and applet.  The content can be internally referenced to avoid the need 
1202                  for duplicate copies.  Alternative information can be defined – this is used if the 
1203                  primary content cannot be displayed.
1204                  
1205                  Common Cartridge Profile
1206                  
1207                  Only the 'mattext', 'matref' and 'matbreak' types are permitted.
1208              </xs:documentation>
1209          </xs:annotation>
1210          <xs:sequence>
1211              <xs:choice minOccurs = "1" maxOccurs = "unbounded">
1212                  <xs:element name="mattext" type="mattextType" minOccurs = "1" maxOccurs = "1"/>
1213                  <xs:element name="matref" type="matrefType" minOccurs = "1" maxOccurs = "1"/>
1214                  <xs:element ref="matbreak" minOccurs = "1" maxOccurs = "1"/>
1215              </xs:choice>
1216              <xs:element name="altmaterial" type="altmaterialType" minOccurs = "0" maxOccurs = "unbounded"/>
1217          </xs:sequence>
1218          <xs:attribute name="label" use="optional" type="xs:string"/>
1219          <xs:attribute ref="xml:lang" use="optional"/>
1220      </xs:complexType>
1221  
1222      <xs:complexType name="altmaterialType">
1223          <xs:annotation>
1224              <xs:documentation source="umlcommentbox">
1225                  This is the container for alternative content.  This content is to be 
1226                  displayed if, for whatever reason, the primary content cannot be 
1227                  rendered.  Alternative language implementations of the host 'material' 
1228                  element are also supported using this structure.
1229              </xs:documentation>
1230          </xs:annotation>
1231          <xs:sequence>
1232              <xs:choice minOccurs = "1" maxOccurs = "unbounded">
1233                  <xs:element name="mattext" type="mattextType" minOccurs = "1" maxOccurs = "1"/>
1234                  <xs:element name="matref" type="matrefType" minOccurs = "1" maxOccurs = "1"/>
1235                  <xs:element ref="matbreak" minOccurs = "1" maxOccurs = "1"/>
1236              </xs:choice>
1237          </xs:sequence>
1238          <xs:attribute ref="xml:lang" use="optional"/>
1239      </xs:complexType>
1240  
1241      <xs:complexType name="flowType">
1242          <xs:annotation>
1243              <xs:documentation source="umlcommentbox">
1244                  This is the container for all of the instructions for the presentation with flow 
1245                  blocking of the question during a test.  This information includes the actual 
1246                  material to be presented.  The labels for the possible responses are also 
1247                  identified and these are used by the response processing element defined 
1248                  elsewhere in the Item.
1249              </xs:documentation>
1250          </xs:annotation>
1251          <xs:sequence>
1252              <xs:choice minOccurs = "1" maxOccurs = "unbounded">
1253                  <xs:element name="flow" type="flowType" minOccurs = "1" maxOccurs = "1"/>
1254                  <xs:element name="material" type="materialType" minOccurs = "1" maxOccurs = "1"/>
1255                  <xs:element name="material_ref" type="material_refType" minOccurs = "1" maxOccurs = "1"/>
1256                  <xs:element name="response_lid" type="response_lidType" minOccurs = "1" maxOccurs = "1"/>
1257                  <xs:element name="response_str" type="response_strType" minOccurs = "1" maxOccurs = "1"/>
1258              </xs:choice>
1259          </xs:sequence>
1260          <xs:attribute name="class" use="optional" default="Block" type="xs:string"/>
1261      </xs:complexType>
1262  
1263      <xs:complexType name="render_choiceType">
1264          <xs:annotation>
1265              <xs:documentation source="umlcommentbox">
1266                  Contains the instructions for the question-engine to render the question 
1267                  using a classical multiple choice format.  The number of possible responses 
1268                  is determined by the 'response_label' structures contained.  Both flowed and 
1269                  non-flowed formats are supported
1270              </xs:documentation>
1271          </xs:annotation>
1272          <xs:sequence>
1273              <xs:choice minOccurs = "0" maxOccurs = "unbounded">
1274                  <xs:element name="material" type="materialType" minOccurs = "1" maxOccurs = "1"/>
1275                  <xs:element name="material_ref" type="material_refType" minOccurs = "1" maxOccurs = "1"/>
1276                  <xs:element name="response_label" type="response_labelType" minOccurs = "1" maxOccurs = "1"/>
1277                  <xs:element name="flow_label" type="flow_labelType" minOccurs = "1" maxOccurs = "1"/>
1278              </xs:choice>
1279          </xs:sequence>
1280          <xs:attribute name="shuffle" use="optional" default="No">
1281              <xs:simpleType>
1282                  <xs:restriction base="xs:string">
1283                      <xs:enumeration value="Yes"/>
1284                      <xs:enumeration value="No"/>
1285                  </xs:restriction>
1286              </xs:simpleType>
1287          </xs:attribute>
1288          <xs:attribute name="minnumber" use="optional" type="xs:string"/>
1289          <xs:attribute name="maxnumber" use="optional" type="xs:string"/>
1290      </xs:complexType>
1291  
1292      <xs:complexType name="render_fibType">
1293          <xs:annotation>
1294              <xs:documentation source="umlcommentbox">
1295                  Contains the instructions for the question-engine to render the question 
1296                  using a classical fill-in blank format.  The number of possible responses 
1297                  is determined by the 'response_label' structures contained.  Both flowed 
1298                  and non-flowed formats are supported.
1299              </xs:documentation>
1300          </xs:annotation>
1301          <xs:sequence>
1302              <xs:choice minOccurs = "0" maxOccurs = "unbounded">
1303                  <xs:element name="material" type="materialType" minOccurs = "1" maxOccurs = "1"/>
1304                  <xs:element name="material_ref" type="material_refType" minOccurs = "1" maxOccurs = "1"/>
1305                  <xs:element name="response_label" type="response_labelType" minOccurs = "1" maxOccurs = "1"/>
1306                  <xs:element name="flow_label" type="flow_labelType" minOccurs = "1" maxOccurs = "1"/>
1307              </xs:choice>
1308          </xs:sequence>
1309          <xs:attribute name="encoding" use="optional" default="utf-8" type="xs:string"/>
1310          <xs:attribute name="charset" use="optional" default="ascii-us" type="xs:string"/>
1311          <xs:attribute name="rows" use="optional" type="xs:string"/>
1312          <xs:attribute name="columns" use="optional" type="xs:string"/>
1313          <xs:attribute name="maxchars" use="optional" type="xs:string"/>
1314          <xs:attribute name="minnumber" use="optional" type="xs:string"/>
1315          <xs:attribute name="maxnumber" use="optional" type="xs:string"/>
1316          <xs:attribute name="prompt" use="optional" default="Box">
1317              <xs:simpleType>
1318                  <xs:restriction base="xs:string">
1319                      <xs:enumeration value="Asterisk"/>
1320                      <xs:enumeration value="Box"/>
1321                      <xs:enumeration value="Dashline"/>
1322                      <xs:enumeration value="Underline"/>
1323                  </xs:restriction>
1324              </xs:simpleType>
1325          </xs:attribute>
1326          <xs:attribute name="fibtype" use="optional" default="String">
1327              <xs:simpleType>
1328                  <xs:restriction base="xs:string">
1329                      <xs:enumeration value="Decimal"/>
1330                      <xs:enumeration value="Integer"/>
1331                      <xs:enumeration value="Scientific"/>
1332                      <xs:enumeration value="String"/>
1333                  </xs:restriction>
1334              </xs:simpleType>
1335          </xs:attribute>
1336      </xs:complexType>
1337  
1338      <xs:complexType name="qtimetadataType">
1339          <xs:annotation>
1340              <xs:documentation source="umlcommentbox">
1341                  QTI General
1342                  
1343                  The QTI-specific meta-data assigned to the parent object i.e.
1344                  Assessment, Section, Item or Object-bank.  This approach 
1345                  requires that the approriate external vocabulary is defined and
1346                  referenced in label/field tuple.
1347                  
1348                  Common Cartridge Profile
1349                  
1350                  The Vocabulary structure has been removed.
1351              </xs:documentation>
1352          </xs:annotation>
1353          <xs:sequence>
1354              <xs:element name="qtimetadatafield" type="qtimetadatafieldType" minOccurs = "1" maxOccurs = "unbounded"/>
1355          </xs:sequence>
1356      </xs:complexType>
1357  
1358      <xs:complexType name="qtimetadatafieldType">
1359          <xs:annotation>
1360              <xs:documentation source="umlcommentbox">
1361                  The structure responsible for containing each of 
1362                  the QTI-specific meta-data fields.  The label should 
1363                  appear in the vocabulary.  If no vocabulary is used 
1364                  then external validation cannot take place.
1365              </xs:documentation>
1366          </xs:annotation>
1367          <xs:sequence>
1368              <xs:element name="fieldlabel" type="xs:string" minOccurs = "1" maxOccurs = "1"/>
1369              <xs:element name="fieldentry" type="xs:string" minOccurs = "1" maxOccurs = "1"/>
1370          </xs:sequence>
1371          <xs:attribute ref="xml:lang" use="optional"/>
1372      </xs:complexType>
1373  
1374      <xs:complexType name="rubricType">
1375          <xs:annotation>
1376              <xs:documentation source="umlcommentbox">
1377                  This is used to contain contextual information i.e. rubric that 
1378                  is important to the object e.g. it could contain standard data 
1379                  values that might or might not be useful for answering the 
1380                  question.
1381                  
1382                  Common Cartridge Profile
1383                  
1384                  This is used in assessments to provide instructions.  Only a 
1385                  single mattext is permitted in the material.
1386              </xs:documentation>
1387          </xs:annotation>
1388          <xs:sequence>
1389              <xs:element name="material" type="materialType" minOccurs = "1" maxOccurs = "1"/>
1390          </xs:sequence>
1391      </xs:complexType>
1392  
1393      <xs:complexType name="response_labelType">
1394          <xs:annotation>
1395              <xs:documentation source="umlcommentbox">
1396                  This contains the possible response choices that are presented 
1397                  to the user.  This information includes the material to be shown 
1398                  to the user and the logical label that is associated with that 
1399                  response.  The label is used in the response processing.  Flow 
1400                  and non-flow approaches are supported.
1401              </xs:documentation>
1402          </xs:annotation>
1403          <xs:sequence>
1404              <xs:choice minOccurs = "0" maxOccurs = "unbounded">
1405                  <xs:element name="material" type="materialType" minOccurs = "1" maxOccurs = "1"/>
1406                  <xs:element name="material_ref" type="material_refType" minOccurs = "1" maxOccurs = "1"/>
1407                  <xs:element name="flow_mat" type="flow_matType" minOccurs = "1" maxOccurs = "1"/>
1408              </xs:choice>
1409          </xs:sequence>
1410          <xs:attribute name="ident" use="required" type="xs:string"/>
1411          <xs:attribute name="labelrefid" use="optional" type="xs:string"/>
1412          <xs:attribute name="rshuffle" use="optional" default="Yes">
1413              <xs:simpleType>
1414                  <xs:restriction base="xs:string">
1415                      <xs:enumeration value="Yes"/>
1416                      <xs:enumeration value="No"/>
1417                  </xs:restriction>
1418              </xs:simpleType>
1419          </xs:attribute>
1420          <xs:attribute name="match_group" use="optional" type="xs:string"/>
1421          <xs:attribute name="match_max" use="optional" type="xs:string"/>
1422      </xs:complexType>
1423  
1424      <xs:complexType name="flow_labelType">
1425          <xs:annotation>
1426              <xs:documentation source="umlcommentbox">
1427                  This is the blocking/paragraph equivalent to the 'response_label'
1428                  structure.  This structure shold always be used to encapsulate the
1429                  'response_label construct.
1430              </xs:documentation>
1431          </xs:annotation>
1432          <xs:sequence>
1433              <xs:choice minOccurs = "1" maxOccurs = "unbounded">
1434                  <xs:element name="flow_label" type="flow_labelType" minOccurs = "1" maxOccurs = "1"/>
1435                  <xs:element name="response_label" type="response_labelType" minOccurs = "1" maxOccurs = "1"/>
1436              </xs:choice>
1437          </xs:sequence>
1438          <xs:attribute name="class" use="optional" default="Block" type="xs:string"/>
1439      </xs:complexType>
1440  
1441      <xs:complexType name="response_lidType">
1442          <xs:annotation>
1443              <xs:documentation source="umlcommentbox">
1444                  QTI General
1445                  
1446                  This contains the instructions for the presentation of questions whose response will be either a 'response_lid' (logical identifier), 
1447                  'response_xy' (xy-co-ordinate), 'response_str' (a string), 'response_num' (a number) and 'response_grp' ( a group of logical
1448                  identifiers).  The question can be rendered in a variety of ways depending on the way in which the material is to be presented to the 
1449                  participant.
1450                  
1451                  Common Cartridge Profile
1452                  
1453                  Only the response_lid and response_str response types are supported with render_choice and render_fib rendering.
1454              </xs:documentation>
1455          </xs:annotation>
1456          <xs:sequence>
1457              <xs:choice minOccurs = "0" maxOccurs = "1">
1458                  <xs:element name="material" type="materialType" minOccurs = "1" maxOccurs = "1"/>
1459                  <xs:element name="material_ref" type="material_refType" minOccurs = "1" maxOccurs = "1"/>
1460              </xs:choice>
1461              <xs:choice minOccurs = "1" maxOccurs = "1">
1462                  <xs:element name="render_choice" type="render_choiceType" minOccurs = "1" maxOccurs = "1"/>
1463                  <xs:element name="render_fib" type="render_fibType" minOccurs = "1" maxOccurs = "1"/>
1464              </xs:choice>
1465              <xs:choice minOccurs = "0" maxOccurs = "1">
1466                  <xs:element name="material" type="materialType" minOccurs = "1" maxOccurs = "1"/>
1467                  <xs:element name="material_ref" type="material_refType" minOccurs = "1" maxOccurs = "1"/>
1468              </xs:choice>
1469          </xs:sequence>
1470          <xs:attribute name="rcardinality" use="optional" default="Single">
1471              <xs:simpleType>
1472                  <xs:restriction base="xs:string">
1473                      <xs:enumeration value="Single"/>
1474                      <xs:enumeration value="Multiple"/>
1475                      <xs:enumeration value="Ordered"/>
1476                  </xs:restriction>
1477              </xs:simpleType>
1478          </xs:attribute>
1479          <xs:attribute name="rtiming" use="optional" default="No">
1480              <xs:simpleType>
1481                  <xs:restriction base="xs:string">
1482                      <xs:enumeration value="Yes"/>
1483                      <xs:enumeration value="No"/>
1484                  </xs:restriction>
1485              </xs:simpleType>
1486          </xs:attribute>
1487          <xs:attribute name="ident" use="required" type="xs:string"/>
1488      </xs:complexType>
1489  
1490      <xs:complexType name="response_strType">
1491          <xs:annotation>
1492              <xs:documentation source="umlcommentbox">
1493                  QTI General
1494                  
1495                  This contains the instructions for the presentation of questions whose response will be either a 'response_lid' (logical identifier), 
1496                  'response_xy' (xy-co-ordinate), 'response_str' (a string), 'response_num' (a number) and 'response_grp' ( a group of logical
1497                  identifiers).  The question can be rendered in a variety of ways depending on the way in which the material is to be presented to the 
1498                  participant.
1499                  
1500                  Common Cartridge Profile
1501                  
1502                  Only the response_lid and response_str response types are supported with render_choice and render_fib rendering.
1503              </xs:documentation>
1504          </xs:annotation>
1505          <xs:sequence>
1506              <xs:choice minOccurs = "0" maxOccurs = "1">
1507                  <xs:element name="material" type="materialType" minOccurs = "1" maxOccurs = "1"/>
1508                  <xs:element name="material_ref" type="material_refType" minOccurs = "1" maxOccurs = "1"/>
1509              </xs:choice>
1510              <xs:choice minOccurs = "1" maxOccurs = "1">
1511                  <xs:element name="render_choice" type="render_choiceType" minOccurs = "1" maxOccurs = "1"/>
1512                  <xs:element name="render_fib" type="render_fibType" minOccurs = "1" maxOccurs = "1"/>
1513              </xs:choice>
1514              <xs:choice minOccurs = "0" maxOccurs = "1">
1515                  <xs:element name="material" type="materialType" minOccurs = "1" maxOccurs = "1"/>
1516                  <xs:element name="material_ref" type="material_refType" minOccurs = "1" maxOccurs = "1"/>
1517              </xs:choice>
1518          </xs:sequence>
1519          <xs:attribute name="rcardinality" use="optional" default="Single">
1520              <xs:simpleType>
1521                  <xs:restriction base="xs:string">
1522                      <xs:enumeration value="Single"/>
1523                      <xs:enumeration value="Multiple"/>
1524                      <xs:enumeration value="Ordered"/>
1525                  </xs:restriction>
1526              </xs:simpleType>
1527          </xs:attribute>
1528          <xs:attribute name="rtiming" use="optional" default="No">
1529              <xs:simpleType>
1530                  <xs:restriction base="xs:string">
1531                      <xs:enumeration value="Yes"/>
1532                      <xs:enumeration value="No"/>
1533                  </xs:restriction>
1534              </xs:simpleType>
1535          </xs:attribute>
1536          <xs:attribute name="ident" use="required" type="xs:string"/>
1537      </xs:complexType>
1538  
1539      <xs:complexType name="solutionType">
1540          <xs:annotation>
1541              <xs:documentation source="umlcommentbox">
1542                  QTI General
1543                  
1544                  Contains the solution(s) that are to be revealed to the participant.  When these solutions are revealed is outside the scope of the 
1545                  specification.  The information can be revealed in several manners.  The default mode is to show the 'Complete' solution.
1546                  
1547                  Common Cartridge Profile
1548                  
1549                  The material is presented in the form of flow_mat only.  The only form of feedback is 'Complete'.
1550              </xs:documentation>
1551          </xs:annotation>
1552          <xs:sequence>
1553              <xs:element name="solutionmaterial" type="solutionmaterialType" minOccurs = "1" maxOccurs = "unbounded"/>
1554          </xs:sequence>
1555          <xs:attribute name="feedbackstyle" use="optional" default="Complete">
1556              <xs:simpleType>
1557                  <xs:restriction base="xs:string">
1558                      <xs:enumeration value="Complete"/>
1559                  </xs:restriction>
1560              </xs:simpleType>
1561          </xs:attribute>
1562      </xs:complexType>
1563  
1564      <xs:complexType name="hintType">
1565          <xs:annotation>
1566              <xs:documentation source="umlcommentbox">
1567                  QTI General
1568                  
1569                  Contains the hints(s) that are to be revealed to the participant.  When these hints are revealed is outside the scope of the 
1570                  specification.  The information can be revealed in several manners.  The default mode is to show the 'Complete' hint.
1571                  
1572                  Common Cartridge Profile
1573                  
1574                  The material is presented in the form of flow_mat only.  The only form of feedback is 'Complete'.
1575              </xs:documentation>
1576          </xs:annotation>
1577          <xs:sequence>
1578              <xs:element name="hintmaterial" type="hintmaterialType" minOccurs = "1" maxOccurs = "unbounded"/>
1579          </xs:sequence>
1580          <xs:attribute name="feedbackstyle" use="optional" default="Complete">
1581              <xs:simpleType>
1582                  <xs:restriction base="xs:string">
1583                      <xs:enumeration value="Complete"/>
1584                  </xs:restriction>
1585              </xs:simpleType>
1586          </xs:attribute>
1587      </xs:complexType>
1588  
1589      <xs:complexType name="conditionvarType">
1590          <xs:annotation>
1591              <xs:documentation source="umlcommentbox">
1592                  QTI General
1593                  
1594                  The conditional test that is to be applied to the user’s response.  
1595                  A wide range of separate and combinatorial tests can be applied.
1596                  
1597                  Common Cartridge Profile
1598                  
1599                  The extension has been removed.  All of the conditions operating 
1600                  on duration have been removed.  The only permited conditions are 
1601                  'varequal', 'varsubstring', 'and', 'other'.
1602              </xs:documentation>
1603          </xs:annotation>
1604          <xs:sequence>
1605              <xs:choice minOccurs = "1" maxOccurs = "unbounded">
1606                  <xs:element name="and" type="andType" minOccurs = "1" maxOccurs = "1"/>
1607                  <xs:element ref="other" minOccurs = "1" maxOccurs = "1"/>
1608                  <xs:element name="varequal" type="varequalType" minOccurs = "1" maxOccurs = "1"/>
1609                  <xs:element name="varsubstring" type="varsubstringType" minOccurs = "1" maxOccurs = "1"/>
1610              </xs:choice>
1611          </xs:sequence>
1612      </xs:complexType>
1613  
1614      <xs:complexType name="solutionmaterialType">
1615          <xs:annotation>
1616              <xs:documentation source="umlcommentbox">
1617                  This is the information that is used to describe the solution. 
1618              </xs:documentation>
1619          </xs:annotation>
1620          <xs:choice>
1621              <xs:element name="flow_mat" type="flow_matType" minOccurs = "1" maxOccurs = "unbounded"/>
1622              <xs:element name="material" type="materialType" minOccurs = "1" maxOccurs = "unbounded"/>
1623          </xs:choice>
1624      </xs:complexType>
1625  
1626      <xs:complexType name="hintmaterialType">
1627          <xs:annotation>
1628              <xs:documentation source="umlcommentbox">
1629                  This is the information that is presented as a hint.
1630              </xs:documentation>
1631          </xs:annotation>
1632          <xs:choice>
1633              <xs:element name="flow_mat" type="flow_matType" minOccurs = "1" maxOccurs = "unbounded"/>
1634              <xs:element name="material" type="materialType" minOccurs = "1" maxOccurs = "unbounded"/>
1635          </xs:choice>
1636      </xs:complexType>
1637  
1638      <xs:complexType name="andType">
1639          <xs:annotation>
1640              <xs:documentation source="umlcommentbox">
1641                  QTI General
1642                  
1643                  This defines the set of clauses that can be used within the 
1644                  logic statements of 'and', 'or' and 'not'.  These logic statements
1645                  enable the construction of complex conditional tests.
1646                  
1647                  Common Cartridge Profile
1648                  
1649                  The extension has been removed.  All of the conditions operating 
1650                  on duration have been removed.  The 'or' conditional has been removed 
1651                  and 'and' and 'not' have been considerably simplified.
1652              </xs:documentation>
1653          </xs:annotation>
1654          <xs:sequence>
1655              <xs:choice minOccurs = "1" maxOccurs = "unbounded">
1656                  <xs:element name="not" type="notType" minOccurs = "1" maxOccurs = "1"/>
1657                  <xs:element name="varequal" type="varequalType" minOccurs = "1" maxOccurs = "1"/>
1658              </xs:choice>
1659          </xs:sequence>
1660      </xs:complexType>
1661  
1662      <xs:complexType name="notType">
1663          <xs:annotation>
1664              <xs:documentation source="umlcommentbox">
1665                  QTI General
1666                  
1667                  This defines the set of clauses that can be used within the 
1668                  logic statements of 'and', 'or' and 'not'.  These logic statements
1669                  enable the construction of complex conditional tests.
1670                  
1671                  Common Cartridge Profile
1672                  
1673                  The extension has been removed.  All of the conditions operating 
1674                  on duration have been removed.  The 'or' conditional has been removed 
1675                  and 'and' and 'not' have been considerably simplified.
1676              </xs:documentation>
1677          </xs:annotation>
1678          <xs:sequence>
1679              <xs:choice minOccurs = "1" maxOccurs = "unbounded">
1680                  <xs:element name="varequal" type="varequalType" minOccurs = "1" maxOccurs = "1"/>
1681              </xs:choice>
1682          </xs:sequence>
1683      </xs:complexType>
1684  
1685      <xs:complexType name="mattextType">
1686          <xs:annotation>
1687              <xs:documentation source="umlcommentbox">
1688                  This is the container of any text that is to be displayed to the users.
1689                  It is the base type for normal and emphasised text.
1690              </xs:documentation>
1691          </xs:annotation>
1692          <xs:simpleContent>
1693              <xs:extension base="xs:string">
1694                  <xs:attribute name="texttype" use="optional" default="text/plain" type="xs:string"/>
1695                  <xs:attribute name="charset" use="optional" default="ascii-us" type="xs:string"/>
1696                  <xs:attribute name="label" use="optional" type="xs:string"/>
1697                  <xs:attribute name="uri" use="optional" type="xs:string"/>
1698                  <xs:attribute name="width" use="optional" type="xs:string"/>
1699                  <xs:attribute name="height" use="optional" type="xs:string"/>
1700                  <xs:attribute name="x0" use="optional" type="xs:string"/>
1701                  <xs:attribute name="y0" use="optional" type="xs:string"/>
1702                  <xs:attribute ref="xml:lang" use="optional"/>
1703                  <xs:attribute ref="xml:space" use="optional" default="default"/>
1704              </xs:extension>
1705          </xs:simpleContent>
1706      </xs:complexType>
1707  
1708      <xs:complexType name="material_refType">
1709          <xs:annotation>
1710              <xs:documentation source="umlcommentbox">
1711                  This is used to contain a reference to the required full material block.  This 
1712                  material will have had an identifier assigned to enable such a reference to 
1713                  be reconciled when the instance is parsed into the system.
1714              </xs:documentation>
1715          </xs:annotation>
1716          <xs:complexContent>
1717              <xs:extension base="EmptyPrimitiveTypeType">
1718                  <xs:attribute name="linkrefid" use="required" type="xs:string"/>
1719              </xs:extension>
1720          </xs:complexContent>
1721      </xs:complexType>
1722  
1723      <xs:complexType name="matrefType">
1724          <xs:annotation>
1725              <xs:documentation source="umlcommentbox">
1726                  This is used to contain a reference to the required full material block.  This 
1727                  material will have had an identifier assigned to enable such a reference to 
1728                  be reconciled when the instance is parsed into the system.
1729              </xs:documentation>
1730          </xs:annotation>
1731          <xs:complexContent>
1732              <xs:extension base="EmptyPrimitiveTypeType">
1733                  <xs:attribute name="linkrefid" use="required" type="xs:string"/>
1734              </xs:extension>
1735          </xs:complexContent>
1736      </xs:complexType>
1737  
1738      <xs:complexType name="decvarType">
1739          <xs:annotation>
1740              <xs:documentation source="umlcommentbox">
1741                  QTI General
1742                  
1743                  This is used  for the declaration of the scoring variables.
1744                  The name of the variable that is to be declared.  The default 
1745                  name is ‘SCORE’.  All numeric variables have the associated
1746                   ‘x.min’, ‘x.max’ and ‘x.normalised’ variables declared.
1747                  Several of the optional attributes depend upon the type of
1748                  variable that is declared.
1749                  
1750                  Common Cartridge Profile
1751                  
1752                  Only the variable types of decimal and integer are permitted.
1753                  Only a single "SCORE" variable is permitted.
1754              </xs:documentation>
1755          </xs:annotation>
1756          <xs:simpleContent>
1757              <xs:extension base="xs:string">
1758                  <xs:attribute name="varname" use="required" fixed="SCORE" type="xs:string"/>
1759                  <xs:attribute name="vartype" use="optional" default="Integer">
1760                      <xs:simpleType>
1761                          <xs:restriction base="xs:string">
1762                              <xs:enumeration value="Decimal"/>
1763                              <xs:enumeration value="Integer"/>
1764                          </xs:restriction>
1765                      </xs:simpleType>
1766                  </xs:attribute>
1767                  <xs:attribute name="minvalue" use="optional" type="xs:string"/>
1768                  <xs:attribute name="maxvalue" use="optional" type="xs:string"/>
1769              </xs:extension>
1770          </xs:simpleContent>
1771      </xs:complexType>
1772  
1773      <xs:complexType name="setvarType">
1774          <xs:annotation>
1775              <xs:documentation source="umlcommentbox">
1776                  QTI General
1777                  
1778                  This is responsible for changing the value of the scoring 
1779                  variable as a result of the associated response processing test.
1780                  The default action is to 'Set' the 'SCORE' variable to the value
1781                  given in the string.
1782                  
1783                  Common Cartridge Profile
1784                  
1785                  Only the actons Set, Add and Subtract are premitted.
1786              </xs:documentation>
1787          </xs:annotation>
1788          <xs:simpleContent>
1789              <xs:extension base="xs:string">
1790                  <xs:attribute name="varname" use="optional" default="SCORE" type="xs:string"/>
1791                  <xs:attribute name="action" use="optional" default="Set">
1792                      <xs:simpleType>
1793                          <xs:restriction base="xs:string">
1794                              <xs:enumeration value="Set"/>
1795                          </xs:restriction>
1796                      </xs:simpleType>
1797                  </xs:attribute>
1798              </xs:extension>
1799          </xs:simpleContent>
1800      </xs:complexType>
1801  
1802      <xs:complexType name="varequalType">
1803          <xs:annotation>
1804              <xs:documentation source="umlcommentbox">
1805                  This is the test of equivalence.  The data for the test is 
1806                  contained as a string.  The accompanying attributes are
1807                  the identifier for the associated 'response_label', the 
1808                  ordinal 'index' of the response and whether or not the
1809                  value is case-sensitive when processing strings.
1810              </xs:documentation>
1811          </xs:annotation>
1812          <xs:simpleContent>
1813              <xs:extension base="xs:string">
1814                  <xs:attribute name="respident" use="required" type="xs:string"/>
1815                  <xs:attribute name="case" use="optional" default="No">
1816                      <xs:simpleType>
1817                          <xs:restriction base="xs:string">
1818                              <xs:enumeration value="No"/>
1819                              <xs:enumeration value="Yes"/>
1820                          </xs:restriction>
1821                      </xs:simpleType>
1822                  </xs:attribute>
1823              </xs:extension>
1824          </xs:simpleContent>
1825      </xs:complexType>
1826  
1827      <xs:complexType name="displayfeedbackType">
1828          <xs:annotation>
1829              <xs:documentation source="umlcommentbox">
1830                  This is used for assigning an associated feedback to the 
1831                  aggregated scoring if the ‘True’ state results.  Feedback
1832                  for hints, solutions and response processing are supported.
1833                  The feedback is identified using the pointer 'linkrefid'.
1834              </xs:documentation>
1835          </xs:annotation>
1836          <xs:simpleContent>
1837              <xs:extension base="xs:string">
1838                  <xs:attribute name="feedbacktype" use="required">
1839                      <xs:simpleType>
1840                          <xs:restriction base="xs:string">
1841                              <xs:enumeration value="Response"/>
1842                              <xs:enumeration value="Solution"/>
1843                              <xs:enumeration value="Hint"/>
1844                          </xs:restriction>
1845                      </xs:simpleType>
1846                  </xs:attribute>
1847                  <xs:attribute name="linkrefid" use="required" type="xs:string"/>
1848              </xs:extension>
1849          </xs:simpleContent>
1850      </xs:complexType>
1851  
1852      <xs:complexType name="varsubstringType">
1853          <xs:annotation>
1854              <xs:documentation source="umlcommentbox">
1855                  This is the test for a contained substring. 
1856                  The data for comparison is presented as a 
1857                  string.  The associated attributes are the 
1858                  response label identifier, the ordinal index of 
1859                  the response and whether or not the value is 
1860                  case-sensitive when processing the strings.
1861              </xs:documentation>
1862          </xs:annotation>
1863          <xs:simpleContent>
1864              <xs:extension base="xs:string">
1865                  <xs:attribute name="respident" use="required" type="xs:string"/>
1866                  <xs:attribute name="case" use="optional" default="No">
1867                      <xs:simpleType>
1868                          <xs:restriction base="xs:string">
1869                              <xs:enumeration value="No"/>
1870                              <xs:enumeration value="Yes"/>
1871                          </xs:restriction>
1872                      </xs:simpleType>
1873                  </xs:attribute>
1874              </xs:extension>
1875          </xs:simpleContent>
1876      </xs:complexType>
1877  
1878      <!-- ================================================================================================== -->
1879  
1880      <!-- Declaration of the elements ********************************************************************** -->
1881  
1882      <!-- ================================================================================================== -->
1883  
1884      <!-- Declaration of the root element(s) *************************************************************** -->
1885  
1886      <xs:element name="questestinterop" type="questestinteropType"/>
1887  
1888      <!-- ================================================================================================== -->
1889  
1890  </xs:schema>


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1