[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
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 > 0 and ../asi:fieldentry < 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']) < 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']) < 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']) < 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']) < 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']) < 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']) < 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']) < 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']) < 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']) < 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 > 0 and ../asi:fieldentry < 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']) < 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']) < 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']) < 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) < 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>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |