IMS Final Release

# IMS Question and Test Interoperability (QTI): Assessment, Section and Item Information Model Version 2.2.2

# IMS Final Release
Version Final 1.0

Date Issued: | 27th November, 2017
Latest version: | http://www.imsglobal.org/question/

IPR and Distribution Notices

Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.

IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS's procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.

Copyright © 2017 IMS Global Learning Consortium. All Rights Reserved.

Use of this specification to develop products or services is governed by the license with IMS found on the IMS website: http://www.imsglobal.org/speclicense.html.

Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.

The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.

THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.

Public contributions, comments and questions can be posted here: www.imsglobal.org/forums/ims-glc-public-forums-and-resources.

© 2017 IMS Global Learning Consortium, Inc.
All Rights Reserved.

Trademark information: http://www.imsglobal.org/copyright.html

Document Name: IMS Question and Test Interoperability (QTI): Assessment, Section and Item Information Model v2.2.2

Revision: 27th November, 2017

toc | top

# Table of Contents

1. Introduction

1.1 Overview of the Data Model

1.2 Scope and Context

1.3 Structure of this Document

1.4 Nomenclature and Definitions

1.5 References

2. Key Data Model Features

2.1 The Structure of the Data Model

2.1.1 Assessments, Sections and Tests

2.1.2 Metadata

2.1.3 Usage Data

2.1.4 Results Reporting

2.2 Items

2.2.1 The Item Session Lifecycle

2.2.2 Item Variables

2.2.2.1 Response Variable

2.2.2.2 Outcomes Variable

2.3 The Content Model

2.3.1 Basic Classes

2.3.2 XHTML Elements

2.3.2.1 Text Elements

2.3.2.2 List Elements

2.3.2.3 Object Elements

2.3.2.4 Presentation Elements

2.3.2.5 Table Elements

2.3.2.6 Image Elements

2.3.2.7 Hypertext Element

2.3.2.8 HTML5 Elements

2.3.3 MathML

2.3.4 Variable Content

2.3.5 Formatting Items with Stylesheets

2.3.6 Accessibility

2.3.7 Internationalization

2.4 Interactions

2.4.1 Simple Interactions

2.4.1.1 Choice Interaction

2.4.1.2 Order Interaction

2.4.1.3 Associate Interaction

2.4.1.4 Match Interaction

2.4.1.5 Gap Match Interaction

2.4.2 Text-based Interactions

2.4.2.1 Inline Choice Interaction

2.4.2.2 Text Interaction

2.4.2.3 Extended Text Interaction

2.4.2.4 Hot Text Interaction

2.4.3 Graphical Interactions

2.4.3.1 Hotspot Interaction

2.4.3.2 Graphic Order Interaction

2.4.3.3 Graphic Associate Interaction

2.4.3.4 Graphic Gap Match Interaction

2.4.3.5 Select Point Interaction

2.4.3.6 Position Object Interaction

2.4.4 Miscellaneous Interactions

2.4.4.1 Slider Interaction

2.4.4.2 Media Interaction

2.4.4.3 Drawing Interaction

2.4.4.4 Upload Interaction

2.4.4.5 Custom Interaction

2.4.5 Alternative Ways to End an Attempt

2.4.6 Alternative Ways to Provide Hints and Other Supplementary Material

2.5 Response Processing

2.5.1 Response Processing Templates

2.5.2 Generalized Response Resprocessing

2.6 Modal Feedback

2.7 Item Templates

2.7.1 Using Template Variables in an Item's Body

2.7.2 Using Template Variables in Operator Attributes Values

2.7.3 Template Processing

2.8 Tests, Testparts and Sections

2.8.1 Navigation and Submission

2.8.2 The Structure of a Test

2.8.3 Time Limits

2.9 Outcome Processing

2.10 Test-level Feedback

2.11 Pre-conditions and Branching

2.11.1 Pre-conditions

2.11.2 Branching

2.12 Expressions

2.12.1 Builtin General Expressions

2.12.1.1 BaseValue Expression

2.12.1.2 Variable Expression

2.12.1.3 Default Expression

2.12.1.4 Correct Expression

2.12.1.5 Map Response Exprssion

2.12.1.6 Map Response Point Expression

2.12.1.7 Math Constant Expression

2.12.2 Expressions Used only in Outcomes Processing

2.12.2.1 Number Correct Expression

2.12.2.2 Number Incorrect Expression

2.12.2.3 Number Presented Expression

2.12.2.4 Number Responded Expresson

2.12.2.5 Number Selected Expression

2.12.2.6 Outcome Minimum Expression

2.12.2.7 Outcome Maximum Expression

2.12.2.8 Test Variables Expression

2.12.3 Operators

2.12.3.1 AnyN Expression

2.12.3.2 Custom Operator Expression

2.12.3.3 Equal Expression

2.12.3.4 Equal Rounded Expression

2.12.3.5 Field Value Expression

2.12.3.6 Index Expression

2.12.3.7 Inside Expression

2.12.3.8 Multiple Expression

2.12.3.9 Ordered Expression

2.12.3.10 And Expression

2.12.3.11 GCD Expression

2.12.3.12 LCM Expression

2.12.3.13 Min Expression

2.12.3.14 Max Expression

2.12.3.15 Or Expression

2.12.3.16 Product Expression

2.12.3.17 Contains Expression

2.12.3.18 Delete Expression

2.12.3.19 Divide Expression

2.12.3.20 Duration Expression

2.12.3.21 Duration LT Expression

2.12.3.22 GT Expression

2.12.3.23 GTE Expression

2.12.3.24 Integer Divide Expression

2.12.3.25 Integer Modulus Expression

2.12.3.26 LT Expression

2.12.3.27 LTE Expression

2.12.3.28 Match Expression

2.12.3.29 Member Expression

2.12.3.30 Power Expression

2.12.3.31 Subcontract Expression

2.12.3.32 Container Expression

2.12.3.33 Integer to Float Expression

2.12.3.34 IsNull Expression

2.12.3.35 Not Expression

2.12.3.36 Random Expression

2.12.3.37 Round Expression

2.12.3.38 Truncate Expression

2.12.3.39 Math Operator Expression

2.12.3.40 Sum Expression

2.12.3.41 Pattern Match Expression

2.12.3.42 Repeat Expression

2.12.3.43 RoundTo Expression

2.12.3.44 Stats Operator Expression

2.12.3.45 String Match Expression

2.12.3.46 Substring Expression

2.13 Items and Test Fragments

2.14 The Accessibility Features

2.14.1 APIP Accessibility Functionality

2.14.2 Support for Speech Synthesis Markup Language

2.14.3 Support for WAI-ARIA

2.15 The Internationalization Features

2.15.1 Support for Bidirectional Text

2.15.2 Support for Ruby

3. Root Attribute Descriptions

3.1 "assessmentItem" Root Attribute Description

3.2 "assessmentSection" Root Attribute Description

3.3 "assessmentStimulus" Root Attribute Description

3.4 "assessmentTest" Root Attribute Description

3.5 "outcomeDeclaration" Root Attribute Description

3.6 "responseProcessing" Root Attribute Description

4. Root Class Descriptions

4.1 "AssessmentItem" Root Class Description

4.1.1 "identifier" Characteristic Description

4.1.2 "title" Characteristic Description

4.1.3 "label" Characteristic Description

4.1.4 "language" Characteristic Description

4.1.5 "toolName" Characteristic Description

4.1.6 "toolVersion" Characteristic Description

4.1.7 "adaptive" Characteristic Description

4.1.8 "timeDependent" Characteristic Description

4.1.9 "responseDeclaration" Attribute Description

4.1.10 "outcomeDeclaration" Attribute Description

4.1.11 "templateDeclaration" Attribute Description

4.1.12 "templateProcessing" Attribute Description

4.1.13 "assessmentStimulusRef" Attribute Description

4.1.14 "stylesheet" Attribute Description

4.1.15 "itemBody" Attribute Description

4.1.16 "responseProcessing" Attribute Description

4.1.17 "modalFeedback" Attribute Description

4.1.18 "apipAccessibility" Attribute Description

4.2 "AssessmentSection" Root Class Description

4.2.1 "identifier" Characteristic Description

4.2.2 "required" Characteristic Description

4.2.3 "fixed" Characteristic Description

4.2.4 "title" Characteristic Description

4.2.5 "visible" Characteristic Description

4.2.6 "keepTogether" Characteristic Description

4.2.7 "preCondition" Attribute Description

4.2.8 "branchRule" Attribute Description

4.2.9 "itemSessionControl" Attribute Description

4.2.10 "timeLimits" Attribute Description

4.2.11 "selection" Attribute Description

4.2.12 "ordering" Attribute Description

4.2.13 "rubricBlock" Attribute Description

4.2.14 "sectionPart" Attribute Description

4.3 "AssessmentStimulus" Root Class Description

4.3.1 "identifier" Characteristic Description

4.3.2 "title" Characteristic Description

4.3.3 "label" Characteristic Description

4.3.4 "language" Characteristic Description

4.3.5 "toolName" Characteristic Description

4.3.6 "toolVersion" Characteristic Description

4.3.7 "stylesheet" Attribute Description

4.3.8 "stimulusBody" Attribute Description

4.3.9 "apipAccessibility" Attribute Description

4.4 "AssessmentTest" Root Class Description

4.4.1 "identifier" Characteristic Description

4.4.2 "title" Characteristic Description

4.4.3 "toolName" Characteristic Description

4.4.4 "toolVersion" Characteristic Description

4.4.5 "outcomeDeclaration" Attribute Description

4.4.6 "timeLimits" Attribute Description

4.4.7 "stylesheet" Attribute Description

4.4.8 "testPart" Attribute Description

4.4.9 "outcomeProcessing" Attribute Description

4.4.10 "testFeedback" Attribute Description

4.5 "OutcomeDeclaration" Root Class Description

4.5.1 "identifier" Characteristic Description

4.5.2 "cardinality" Characteristic Description

4.5.3 "baseType" Characteristic Description

4.5.4 "view" Characteristic Description

4.5.5 "interpretation" Characteristic Description

4.5.6 "longInterpretation" Characteristic Description

4.5.7 "normalMaximum" Characteristic Description

4.5.8 "normalMinimum" Characteristic Description

4.5.9 "masteryValue" Characteristic Description

4.5.10 "externalScored" Characteristic Description

4.5.11 "variableIdentifierRef" Characteristic Description

4.5.12 "defaultValue" Attribute Description

4.5.13 "lookupTable" Attribute Description

4.6 "ResponseProcessing" Root Class Description

4.6.1 "template" Characteristic Description

4.6.2 "templateLocation" Characteristic Description

4.6.3 "responseRuleGroup" Attribute Description

5. Data Class Descriptions

5.1 "A" Class Description

5.1.1 "href" Characteristic Description

5.1.2 "type" Characteristic Description

5.1.3 "inlineGroup" Attribute Description

5.2 "AnyN" Class Description

5.2.1 "min" Characteristic Description

5.2.2 "max" Characteristic Description

5.2.3 "logic" Attribute Description

5.3 "AreaMapping" Class Description

5.3.1 "lowerBound" Characteristic Description

5.3.2 "upperBound" Characteristic Description

5.3.3 "defaultValue" Characteristic Description

5.3.4 "areaMapEntry" Attribute Description

5.4 "AssessmentItemRef" Class Description

5.4.1 "identifier" Characteristic Description

5.4.2 "required" Characteristic Description

5.4.3 "fixed" Characteristic Description

5.4.4 "href" Characteristic Description

5.4.5 "category" Characteristic Description

5.4.6 "preCondition" Attribute Description

5.4.7 "branchRule" Attribute Description

5.4.8 "itemSessionControl" Attribute Description

5.4.9 "timeLimits" Attribute Description

5.4.10 "variableMapping" Attribute Description

5.4.11 "weight" Attribute Description

5.4.12 "templateDefault" Attribute Description

5.5 "AssociableHotspot" Class Description

5.5.1 "identifier" Characteristic Description

5.5.2 "templateIdentifier" Characteristic Description

5.5.3 "showHide" Characteristic Description

5.5.4 "matchGroup" Characteristic Description

5.5.5 "shape" Characteristic Description

5.5.6 "coords" Characteristic Description

5.5.7 "hotspotLabel" Characteristic Description

5.5.8 "matchMax" Characteristic Description

5.5.9 "matchMin" Characteristic Description

5.6 "AssociateInteraction" Class Description

5.6.1 "shuffle" Characteristic Description

5.6.2 "maxAssociations" Characteristic Description

5.6.3 "minAssociations" Characteristic Description

5.6.4 "simpleAssociableChoice" Attribute Description

5.7 "BDO" Class Description

5.7.1 "title" Characteristic Description

5.7.2 "inlineContentModel" Attribute Description

5.8 "BR" Class Description

5.9 "BasePromptInteraction" Class Description

5.9.1 "id" Characteristic Description

5.9.2 "class" Characteristic Description

5.9.3 "language" Characteristic Description

5.9.4 "label" Characteristic Description

5.9.5 "base" Characteristic Description

5.9.6 "responseIdentifier" Characteristic Description

5.9.7 "dir" Characteristic Description

5.9.8 "role" Characteristic Description

5.9.9 "aria-controls" Characteristic Description

5.9.10 "aria-describedby" Characteristic Description

5.9.11 "aria-flowsto" Characteristic Description

5.9.12 "aria-label" Characteristic Description

5.9.13 "aria-labelledby" Characteristic Description

5.9.14 "aria-level" Characteristic Description

5.9.15 "aria-live" Characteristic Description

5.9.16 "aria-orientation" Characteristic Description

5.9.17 "aria-owns" Characteristic Description

5.9.18 "dataExtension" Characteristic Description

5.9.19 "prompt" Attribute Description

5.10 "BaseSequence" Class Description

5.10.1 "id" Characteristic Description

5.10.2 "class" Characteristic Description

5.10.3 "language" Characteristic Description

5.10.4 "label" Characteristic Description

5.10.5 "dir" Characteristic Description

5.10.6 "role" Characteristic Description

5.10.7 "aria-controls" Characteristic Description

5.10.8 "aria-describedby" Characteristic Description

5.10.9 "aria-flowto" Characteristic Description

5.10.10 "aria-label" Characteristic Description

5.10.11 "aria-labelledby" Characteristic Description

5.10.12 "aria-level" Characteristic Description

5.10.13 "aria-live" Characteristic Description

5.10.14 "aria-orientation" Characteristic Description

5.10.15 "aria-owns" Characteristic Description

5.10.16 "dataExtension" Characteristic Description

5.11 "BaseSequenceFull" Class Description

5.11.1 "id" Characteristic Description

5.11.2 "class" Characteristic Description

5.11.3 "language" Characteristic Description

5.11.4 "label" Characteristic Description

5.11.5 "responseIdentifier" Characteristic Description

5.11.6 "base" Characteristic Description

5.11.7 "dir" Characteristic Description

5.11.8 "role" Characteristic Description

5.11.9 "aria-controls" Characteristic Description

5.11.10 "aria-describedby" Characteristic Description

5.11.11 "aria-flowto" Characteristic Description

5.11.12 "aria-label" Characteristic Description

5.11.13 "aria-labelledby" Characteristic Description

5.11.14 "aria-level" Characteristic Description

5.11.15 "aria-live" Characteristic Description

5.11.16 "aria-orientation" Characteristic Description

5.11.17 "aria-owns" Characteristic Description

5.11.18 "dataExtension" Characteristic Description

5.12 "BaseSequenceRIdent" Class Description

5.12.1 "id" Characteristic Description

5.12.2 "class" Characteristic Description

5.12.3 "language" Characteristic Description

5.12.4 "label" Characteristic Description

5.12.5 "responseIdentifier" Characteristic Description

5.12.6 "dir" Characteristic Description

5.12.7 "role" Characteristic Description

5.12.8 "aria-controls" Characteristic Description

5.12.9 "aria-describedby" Characteristic Description

5.12.10 "aria-flowto" Characteristic Description

5.12.11 "aria-label" Characteristic Description

5.12.12 "aria-labelledby" Characteristic Description

5.12.13 "aria-level" Characteristic Description

5.12.14 "aria-live" Characteristic Description

5.12.15 "aria-orientation" Characteristic Description

5.12.16 "aria-owns" Characteristic Description

5.12.17 "dataExtension" Characteristic Description

5.13 "BaseSequenceXBase" Class Description

5.13.1 "id" Characteristic Description

5.13.2 "class" Characteristic Description

5.13.3 "language" Characteristic Description

5.13.4 "label" Characteristic Description

5.13.5 "base" Characteristic Description

5.13.6 "dir" Characteristic Description

5.13.7 "role" Characteristic Description

5.13.8 "aria-controls" Characteristic Description

5.13.9 "aria-describedby" Characteristic Description

5.13.10 "aria-flowto" Characteristic Description

5.13.11 "aria-label" Characteristic Description

5.13.12 "aria-labelledby" Characteristic Description

5.13.13 "aria-level" Characteristic Description

5.13.14 "aria-live" Characteristic Description

5.13.15 "aria-orientation" Characteristic Description

5.13.16 "aria-owns" Characteristic Description

5.13.17 "dataExtension" Characteristic Description

5.14 "BlockQuote" Class Description

5.14.1 "cite" Characteristic Description

5.14.2 "blockGroup" Attribute Description

5.15 "BranchRule" Class Description

5.15.1 "target" Characteristic Description

5.15.2 "logic" Attribute Description

5.16 "Caption" Class Description

5.16.1 "inlineGroup" Attribute Description

5.17 "ChoiceInteraction" Class Description

5.17.1 "shuffle" Characteristic Description

5.17.2 "maxChoices" Characteristic Description

5.17.3 "minChoices" Characteristic Description

5.17.4 "orientation" Characteristic Description

5.17.5 "simpleChoice" Attribute Description

5.18 "Col" Class Description

5.18.1 "span" Characteristic Description

5.19 "ColGroup" Class Description

5.19.1 "span" Characteristic Description

5.19.2 "col" Attribute Description

5.20 "CorrectResponse" Class Description

5.20.1 "interpretation" Characteristic Description

5.20.2 "value" Attribute Description

5.21 "CustomInteraction" Class Description

5.21.1 "extension" Characteristic Description

5.21.2 "extension" Attribute Description

5.22 "CustomOperator" Class Description

5.22.1 "class" Characteristic Description

5.22.2 "definition" Characteristic Description

5.22.3 "extension" Characteristic Description

5.22.4 "logic" Attribute Description

5.22.5 "extension" Attribute Description

5.23 "DD" Class Description

5.23.1 "flowGroup" Attribute Description

5.24 "DL" Class Description

5.24.1 "dlSelection" Attribute Description

5.25 "DT" Class Description

5.25.1 "inlineGroup" Attribute Description

5.26 "DefaultValue" Class Description

5.26.1 "interpretation" Characteristic Description

5.26.2 "value" Attribute Description

5.27 "Div" Class Description

5.27.1 "divSelection" Attribute Description

5.28 "DrawingInteraction" Class Description

5.28.1 "object" Attribute Description

5.29 "EndAttemptInteraction" Class Description

5.29.1 "responseIdentifier" Characteristic Description

5.29.2 "title" Characteristic Description

5.29.3 "countAttempt" Characteristic Description

5.30 "Equal" Class Description

5.30.1 "toleranceMode" Characteristic Description

5.30.2 "tolerance" Characteristic Description

5.30.3 "includeLowerBound" Characteristic Description

5.30.4 "includeUpperBound" Characteristic Description

5.30.5 "logic" Attribute Description

5.31 "EqualRounded" Class Description

5.31.1 "roundingMode" Characteristic Description

5.31.2 "figures" Characteristic Description

5.31.3 "logic" Attribute Description

5.32 "ExtendedTextInteraction" Class Description

5.32.1 "base" Characteristic Description

5.32.2 "stringIdentifier" Characteristic Description

5.32.3 "expectedLength" Characteristic Description

5.32.4 "patternMask" Characteristic Description

5.32.5 "placeholderText" Characteristic Description

5.32.6 "maxStrings" Characteristic Description

5.32.7 "minStrings" Characteristic Description

5.32.8 "expectedLines" Characteristic Description

5.32.9 "format" Characteristic Description

5.33 "FeedbackBlock" Class Description

5.33.1 "outcomeIdentifier" Characteristic Description

5.33.2 "identifier" Characteristic Description

5.33.3 "showHide" Characteristic Description

5.33.4 "feedbackBlockStatic" Attribute Description

5.33.5 "stylesheet" Attribute Description

5.33.6 "apipAccessibility" Attribute Description

5.34 "FeedbackInline" Class Description

5.34.1 "outcomeIdentifier" Characteristic Description

5.34.2 "identifier" Characteristic Description

5.34.3 "showHide" Characteristic Description

5.34.4 "feedbackInlineGroup" Attribute Description

5.35 "FieldValue" Class Description

5.35.1 "fieldIdentifier" Characteristic Description

5.35.2 "logic" Attribute Description

5.36 "Gap" Class Description

5.36.1 "identifier" Characteristic Description

5.36.2 "templateIdentifier" Characteristic Description

5.36.3 "showHide" Characteristic Description

5.36.4 "matchGroup" Characteristic Description

5.36.5 "required" Characteristic Description

5.37 "GapImg" Class Description

5.37.1 "identifier" Characteristic Description

5.37.2 "templateIdentifier" Characteristic Description

5.37.3 "showHide" Characteristic Description

5.37.4 "matchGroup" Characteristic Description

5.37.5 "matchMax" Characteristic Description

5.37.6 "matchMin" Characteristic Description

5.37.7 "objectLabel" Characteristic Description

5.37.8 "top" Characteristic Description

5.37.9 "left" Characteristic Description

5.37.10 "object" Attribute Description

5.38 "GapMatchInteraction" Class Description

5.38.1 "shuffle" Characteristic Description

5.38.2 "minAssociations" Characteristic Description

5.38.3 "maxAssociations" Characteristic Description

5.38.4 "gapChoice" Attribute Description

5.38.5 "blockStaticGroup" Attribute Description

5.39 "GapText" Class Description

5.39.1 "identifier" Characteristic Description

5.39.2 "templateIdentifier" Characteristic Description

5.39.3 "showHide" Characteristic Description

5.39.4 "matchGroup" Characteristic Description

5.39.5 "matchMax" Characteristic Description

5.39.6 "matchMin" Characteristic Description

5.39.7 "inlineChoiceGroup" Attribute Description

5.40 "GraphicAssociateInteraction" Class Description

5.40.1 "minAssociations" Characteristic Description

5.40.2 "maxAssociations" Characteristic Description

5.40.3 "object" Attribute Description

5.40.4 "associableHotspot" Attribute Description

5.41 "GraphicGapMatchInteraction" Class Description

5.41.1 "minAssociations" Characteristic Description

5.41.2 "maxAssociations" Characteristic Description

5.41.3 "prompt" Attribute Description

5.41.4 "object" Attribute Description

5.41.5 "gapChoice" Attribute Description

5.41.6 "associableHotspot" Attribute Description

5.42 "GraphicOrderInteraction" Class Description

5.42.1 "minChoices" Characteristic Description

5.42.2 "maxChoices" Characteristic Description

5.42.3 "prompt" Attribute Description

5.42.4 "object" Attribute Description

5.42.5 "hotspotChoice" Attribute Description

5.43 "HR" Class Description

5.44 "HTMLText" Class Description

5.44.1 "inlineGroup" Attribute Description

5.45 "HotText" Class Description

5.45.1 "identifier" Characteristic Description

5.45.2 "templateIdentifier" Characteristic Description

5.45.3 "showHide" Characteristic Description

5.45.4 "inlineChoiceGroup" Attribute Description

5.46 "HotTextInteraction" Class Description

5.46.1 "maxChoices" Characteristic Description

5.46.2 "minChoices" Characteristic Description

5.46.3 "blockStaticGroup" Attribute Description

5.47 "HotspotChoice" Class Description

5.47.1 "identifier" Characteristic Description

5.47.2 "templateIdentifier" Characteristic Description

5.47.3 "showHide" Characteristic Description

5.47.4 "shape" Characteristic Description

5.47.5 "coords" Characteristic Description

5.47.6 "hotspotLabel" Characteristic Description

5.48 "HotspotInteraction" Class Description

5.48.1 "minChoices" Characteristic Description

5.48.2 "maxChoices" Characteristic Description

5.48.3 "object" Attribute Description

5.48.4 "hotspotChoice" Attribute Description

5.49 "Img" Class Description

5.49.1 "src" Characteristic Description

5.49.2 "alt" Characteristic Description

5.49.3 "longdesc" Characteristic Description

5.49.4 "height" Characteristic Description

5.49.5 "width" Characteristic Description

5.50 "Index" Class Description

5.50.1 "n" Characteristic Description

5.50.2 "logic" Attribute Description

5.51 "InfoControl" Class Description

5.51.1 "title" Characteristic Description

5.51.2 "flowStaticGroup" Attribute Description

5.52 "InlineChoice" Class Description

5.52.1 "identifier" Characteristic Description

5.52.2 "fixed" Characteristic Description

5.52.3 "templateIdentifier" Characteristic Description

5.52.4 "showHide" Characteristic Description

5.52.5 "inlineChoiceGroup" Attribute Description

5.53 "InlineChoiceInteraction" Class Description

5.53.1 "shuffle" Characteristic Description

5.53.2 "required" Characteristic Description

5.53.3 "label" Attribute Description

5.53.4 "inlineChoice" Attribute Description

5.54 "Inside" Class Description

5.54.1 "shape" Characteristic Description

5.54.2 "coords" Characteristic Description

5.54.3 "logic" Attribute Description

5.55 "InterpolationTable" Class Description

5.55.1 "defaultValue" Characteristic Description

5.55.2 "interpolationTableEntry" Attribute Description

5.56 "ItemBody" Class Description

5.56.1 "id" Characteristic Description

5.56.2 "class" Characteristic Description

5.56.3 "language" Characteristic Description

5.56.4 "label" Characteristic Description

5.56.5 "dir" Characteristic Description

5.56.6 "itemBodySelect" Attribute Description

5.57 "LI" Class Description

5.57.1 "flowGroup" Attribute Description

5.58 "Label" Class Description

5.58.1 "inlineChoiceGroup" Attribute Description

5.59 "Logic0toMany" Class Description

5.59.1 "logic" Attribute Description

5.60 "Logic1toMany" Class Description

5.60.1 "logic" Attribute Description

5.61 "LogicPair" Class Description

5.61.1 "logic" Attribute Description

5.62 "LogicSingle" Class Description

5.62.1 "logic" Attribute Description

5.63 "LookupOutcomeValue" Class Description

5.63.1 "identifier" Characteristic Description

5.63.2 "expressionGroup" Attribute Description

5.64 "Mapping" Class Description

5.64.1 "lowerBound" Characteristic Description

5.64.2 "upperBound" Characteristic Description

5.64.3 "defaultValue" Characteristic Description

5.64.4 "mapEntry" Attribute Description

5.65 "MatchInteraction" Class Description

5.65.1 "shuffle" Characteristic Description

5.65.2 "maxAssociations" Characteristic Description

5.65.3 "minAssociations" Characteristic Description

5.65.4 "simpleMatchSet" Attribute Description

5.66 "MatchTable" Class Description

5.66.1 "defaultValue" Characteristic Description

5.66.2 "matchTableEntry" Attribute Description

5.67 "MathOperator" Class Description

5.67.1 "name" Characteristic Description

5.67.2 "logic" Attribute Description

5.68 "MediaInteraction" Class Description

5.68.1 "autostart" Characteristic Description

5.68.2 "minPlays" Characteristic Description

5.68.3 "maxPlays" Characteristic Description

5.68.4 "loop" Characteristic Description

5.68.5 "coords" Characteristic Description

5.68.6 "object" Attribute Description

5.68.7 "audio" Attribute Description

5.68.8 "video" Attribute Description

5.69 "ModalFeedback" Class Description

5.69.1 "outcomeIdentifier" Characteristic Description

5.69.2 "showHide" Characteristic Description

5.69.3 "identifier" Characteristic Description

5.69.4 "title" Characteristic Description

5.69.5 "feedbackFlowStaticGroup" Attribute Description

5.69.6 "stylesheet" Attribute Description

5.69.7 "apipAccessibility" Attribute Description

5.70 "NumericLogic1toMany" Class Description

5.70.1 "logic" Attribute Description

5.71 "OUL" Class Description

5.71.1 "li" Attribute Description

5.72 "Object" Class Description

5.72.1 "data" Characteristic Description

5.72.2 "type" Characteristic Description

5.72.3 "width" Characteristic Description

5.72.4 "height" Characteristic Description

5.72.5 "objectFlowGroup" Attribute Description

5.73 "OrderInteraction" Class Description

5.73.1 "shuffle" Characteristic Description

5.73.2 "minChoices" Characteristic Description

5.73.3 "maxChoices" Characteristic Description

5.73.4 "orientation" Characteristic Description

5.73.5 "simpleChoice" Attribute Description

5.74 "Ordering" Class Description

5.74.1 "shuffle" Characteristic Description

5.74.2 "extension" Characteristic Description

5.74.3 "extensions" Attribute Description

5.75 "OutcomeCondition" Class Description

5.75.1 "outcomeIf" Attribute Description

5.75.2 "outcomeElseIf" Attribute Description

5.75.3 "outcomeElse" Attribute Description

5.76 "OutcomeElse" Class Description

5.76.1 "outcomeRule" Attribute Description

5.77 "OutcomeIf" Class Description

5.77.1 "expressionGroup" Attribute Description

5.77.2 "outcomeRule" Attribute Description

5.78 "OutcomeProcessing" Class Description

5.78.1 "outcomeRule" Attribute Description

5.79 "OutcomeProcessingFragment" Class Description

5.79.1 "outcomeRule" Attribute Description

5.80 "PatternMatch" Class Description

5.80.1 "pattern" Characteristic Description

5.80.2 "logic" Attribute Description

5.81 "PositionObjectInteraction" Class Description

5.81.1 "centerPoint" Characteristic Description

5.81.2 "minChoices" Characteristic Description

5.81.3 "maxChoices" Characteristic Description

5.81.4 "object" Attribute Description

5.82 "PositionObjectStage" Class Description

5.82.1 "id" Characteristic Description

5.82.2 "object" Attribute Description

5.82.3 "positionObjectInteraction" Attribute Description

5.83 "Prompt" Class Description

5.83.1 "promptStaticGroup" Attribute Description

5.84 "Q" Class Description

5.84.1 "cite" Characteristic Description

5.84.2 "inlineGroup" Attribute Description

5.85 "Repeat" Class Description

5.85.1 "numberRepeats" Characteristic Description

5.85.2 "logic" Attribute Description

5.86 "ResponseCondition" Class Description

5.86.1 "responseIf" Attribute Description

5.86.2 "responseElseIf" Attribute Description

5.86.3 "responseElse" Attribute Description

5.87 "ResponseDeclaration" Class Description

5.87.1 "identifier" Characteristic Description

5.87.2 "cardinality" Characteristic Description

5.87.3 "baseType" Characteristic Description

5.87.4 "defaultValue" Attribute Description

5.87.5 "correctResponse" Attribute Description

5.87.6 "mapping" Attribute Description

5.87.7 "areaMapping" Attribute Description

5.88 "ResponseElse" Class Description

5.88.1 "responseRuleGroup" Attribute Description

5.89 "ResponseIf" Class Description

5.89.1 "expressionGroup" Attribute Description

5.89.2 "responseRuleGroup" Attribute Description

5.90 "ResponseProcessingFragment" Class Description

5.90.1 "responseRuleGroup" Attribute Description

5.91 "RoundTo" Class Description

5.91.1 "roundingMode" Characteristic Description

5.91.2 "figures" Characteristic Description

5.91.3 "logic" Attribute Description

5.92 "RubricBlock" Class Description

5.92.1 "use" Characteristic Description

5.92.2 "view" Characteristic Description

5.92.3 "contentModel" Attribute Description

5.92.4 "stylesheet" Attribute Description

5.92.5 "apipAccessibility" Attribute Description

5.93 "RubricBlockTemplateBlock" Class Description

5.93.1 "templateIdentifier" Characteristic Description

5.93.2 "showHide" Characteristic Description

5.93.3 "identifier" Characteristic Description

5.93.4 "rtBlockContentModel" Attribute Description

5.93.5 "stylesheet" Attribute Description

5.93.6 "apipAccessibility" Attribute Description

5.94 "RubricBlockTemplateInline" Class Description

5.94.1 "templateIdentifier" Characteristic Description

5.94.2 "showHide" Characteristic Description

5.94.3 "identifier" Characteristic Description

5.94.4 "rtInlineStaticGroup" Attribute Description

5.95 "SelectPointInteraction" Class Description

5.95.1 "minChoices" Characteristic Description

5.95.2 "maxChoices" Characteristic Description

5.95.3 "object" Attribute Description

5.96 "Selection" Class Description

5.96.1 "select" Characteristic Description

5.96.2 "withReplacement" Characteristic Description

5.96.3 "extension" Characteristic Description

5.96.4 "extensions" Attribute Description

5.97 "SetValue" Class Description

5.97.1 "identifier" Characteristic Description

5.97.2 "expressionGroup" Attribute Description

5.98 "SimpleAssociableChoice" Class Description

5.98.1 "identifier" Characteristic Description

5.98.2 "fixed" Characteristic Description

5.98.3 "templateIdentifier" Characteristic Description

5.98.4 "showHide" Characteristic Description

5.98.5 "matchGroup" Characteristic Description

5.98.6 "matchMax" Characteristic Description

5.98.7 "matchMin" Characteristic Description

5.98.8 "flowStaticGroup" Attribute Description

5.99 "SimpleChoice" Class Description

5.99.1 "identifier" Characteristic Description

5.99.2 "fixed" Characteristic Description

5.99.3 "templateIdentifier" Characteristic Description

5.99.4 "showHide" Characteristic Description

5.99.5 "flowStaticGroup" Attribute Description

5.100 "SimpleMatchSet" Class Description

5.100.1 "id" Characteristic Description

5.100.2 "simpleAssociableChoice" Attribute Description

5.101 "SliderInteraction" Class Description

5.101.1 "lowerBound" Characteristic Description

5.101.2 "upperBound" Characteristic Description

5.101.3 "step" Characteristic Description

5.101.4 "stepLabel" Characteristic Description

5.101.5 "orientation" Characteristic Description

5.101.6 "reverse" Characteristic Description

5.102 "StatsOperator" Class Description

5.102.1 "name" Characteristic Description

5.102.2 "logic" Attribute Description

5.103 "StimulusBody" Class Description

5.103.1 "blockGroup" Attribute Description

5.104 "StringMatch" Class Description

5.104.1 "caseSensitive" Characteristic Description

5.104.2 "substring" Characteristic Description

5.104.3 "logic" Attribute Description

5.105 "Substring" Class Description

5.105.1 "caseSensitive" Characteristic Description

5.105.2 "logic" Attribute Description

5.106 "TDH" Class Description

5.106.1 "headers" Characteristic Description

5.106.2 "scope" Characteristic Description

5.106.3 "abbr" Characteristic Description

5.106.4 "axis" Characteristic Description

5.106.5 "rowspan" Characteristic Description

5.106.6 "colspan" Characteristic Description

5.106.7 "align" Characteristic Description

5.106.8 "valign" Characteristic Description

5.106.9 "flowGroup" Attribute Description

5.107 "TR" Class Description

5.107.1 "tableCellGroup" Attribute Description

5.108 "Table" Class Description

5.108.1 "summary" Characteristic Description

5.108.2 "caption" Attribute Description

5.108.3 "col" Attribute Description

5.108.4 "colgroup" Attribute Description

5.108.5 "thead" Attribute Description

5.108.6 "tfoot" Attribute Description

5.108.7 "tbody" Attribute Description

5.109 "TablePart" Class Description

5.109.1 "tr" Attribute Description

5.110 "TemplateBlock" Class Description

5.110.1 "templateIdentifier" Characteristic Description

5.110.2 "showHide" Characteristic Description

5.110.3 "identifier" Characteristic Description

5.110.4 "fatBlockStatic" Attribute Description

5.110.5 "stylesheet" Attribute Description

5.110.6 "apipAccessibility" Attribute Description

5.111 "TemplateBlockFeedbackBlock" Class Description

5.111.1 "outcomeIdentifier" Characteristic Description

5.111.2 "showHide" Characteristic Description

5.111.3 "identifier" Characteristic Description

5.111.4 "fatBlockStatic" Attribute Description

5.111.5 "stylesheet" Attribute Description

5.111.6 "apipAccessibility" Attribute Description

5.112 "TemplateCondition" Class Description

5.112.1 "templateIf" Attribute Description

5.112.2 "templateElseIf" Attribute Description

5.112.3 "templateElse" Attribute Description

5.113 "TemplateConstraint" Class Description

5.113.1 "expressionGroup" Attribute Description

5.114 "TemplateDeclaration" Class Description

5.114.1 "identifier" Characteristic Description

5.114.2 "cardinality" Characteristic Description

5.114.3 "baseType" Characteristic Description

5.114.4 "paramVariable" Characteristic Description

5.114.5 "mathVariable" Characteristic Description

5.114.6 "defaultValue" Attribute Description

5.115 "TemplateDefault" Class Description

5.115.1 "templateIdentifier" Characteristic Description

5.115.2 "expressionGroup" Attribute Description

5.116 "TemplateElse" Class Description

5.116.1 "templateRuleGroup" Attribute Description

5.117 "TemplateIf" Class Description

5.117.1 "expressionGroup" Attribute Description

5.117.2 "templateRuleGroup" Attribute Description

5.118 "TemplateInline" Class Description

5.118.1 "templateIdentifier" Characteristic Description

5.118.2 "showHide" Characteristic Description

5.118.3 "identifier" Characteristic Description

5.118.4 "inlineStaticGroup" Attribute Description

5.119 "TemplateProcessing" Class Description

5.119.1 "templateRuleGroup" Attribute Description

5.120 "TestFeedback" Class Description

5.120.1 "access" Characteristic Description

5.120.2 "outcomeIdentifier" Characteristic Description

5.120.3 "showHide" Characteristic Description

5.120.4 "identifier" Characteristic Description

5.120.5 "title" Characteristic Description

5.120.6 "feedbackFlowStaticGroup" Attribute Description

5.120.7 "stylesheet" Attribute Description

5.120.8 "apipAccessibility" Attribute Description

5.121 "TestPart" Class Description

5.121.1 "identifier" Characteristic Description

5.121.2 "navigationMode" Characteristic Description

5.121.3 "submissionMode" Characteristic Description

5.121.4 "preCondition" Attribute Description

5.121.5 "branchRule" Attribute Description

5.121.6 "itemSessionControl" Attribute Description

5.121.7 "timeLimits" Attribute Description

5.121.8 "assessmentSectionSelection" Attribute Description

5.121.9 "testFeedback" Attribute Description

5.122 "TextEntryInteraction" Class Description

5.122.1 "responseIdentifier" Characteristic Description

5.122.2 "base" Characteristic Description

5.122.3 "stringIdentifier" Characteristic Description

5.122.4 "expectedLength" Characteristic Description

5.122.5 "patternMask" Characteristic Description

5.122.6 "placeholderText" Characteristic Description

5.122.7 "format" Characteristic Description

5.123 "UploadInteraction" Class Description

5.123.1 "type" Characteristic Description

6. Abstract Class Descriptions

6.1 "AssessmentSectionSelection" Class Description

6.1.1 "assessmentSection" Attribute Description

6.1.2 "assessmentSectionRef" Attribute Description

6.2 "BlockContentModel" Class Description

6.2.1 "pre" Attribute Description

6.2.2 "h1" Attribute Description

6.2.3 "h2" Attribute Description

6.2.4 "h3" Attribute Description

6.2.5 "h4" Attribute Description

6.2.6 "h5" Attribute Description

6.2.7 "h6" Attribute Description

6.2.8 "p" Attribute Description

6.2.9 "address" Attribute Description

6.2.10 "dl" Attribute Description

6.2.11 "ol" Attribute Description

6.2.12 "ul" Attribute Description

6.2.13 "hr" Attribute Description

6.2.14 "blockquote" Attribute Description

6.2.15 "table" Attribute Description

6.2.16 "div" Attribute Description

6.2.17 "article" Attribute Description

6.2.18 "aside" Attribute Description

6.2.19 "audio" Attribute Description

6.2.20 "figure" Attribute Description

6.2.21 "footer" Attribute Description

6.2.22 "header" Attribute Description

6.2.23 "nav" Attribute Description

6.2.24 "section" Attribute Description

6.2.25 "video" Attribute Description

6.3 "BlockGroup" Class Description

6.3.1 "positionObjectStage" Attribute Description

6.3.2 "customInteraction" Attribute Description

6.3.3 "drawingInteraction" Attribute Description

6.3.4 "gapMatchInteraction" Attribute Description

6.3.5 "matchInteraction" Attribute Description

6.3.6 "graphicGapMatchInteraction" Attribute Description

6.3.7 "hotspotInteraction" Attribute Description

6.3.8 "graphicOrderInteraction" Attribute Description

6.3.9 "selectPointInteraction" Attribute Description

6.3.10 "graphicAssociateInteraction" Attribute Description

6.3.11 "sliderInteraction" Attribute Description

6.3.12 "choiceInteraction" Attribute Description

6.3.13 "mediaInteraction" Attribute Description

6.3.14 "hottextInteraction" Attribute Description

6.3.15 "orderInteraction" Attribute Description

6.3.16 "extendedTextInteraction" Attribute Description

6.3.17 "uploadInteraction" Attribute Description

6.3.18 "associateInteraction" Attribute Description

6.3.19 "feedbackBlock" Attribute Description

6.3.20 "templateBlock" Attribute Description

6.3.21 "infoControl" Attribute Description

6.3.22 "math" Attribute Description

6.3.23 "math" Attribute Description

6.3.24 "include" Attribute Description

6.3.25 "blockContentModel" Attribute Description

6.4 "BlockStaticGroup" Class Description

6.4.1 "feedbackBlock" Attribute Description

6.4.2 "templateBlock" Attribute Description

6.4.3 "math" Attribute Description

6.4.4 "math" Attribute Description

6.4.5 "include" Attribute Description

6.4.6 "blockContentModel" Attribute Description

6.5 "DLSelection" Class Description

6.5.1 "dd" Attribute Description

6.5.2 "dt" Attribute Description

6.6 "DivSelection" Class Description

6.6.1 "positionObjectStage" Attribute Description

6.6.2 "flowGroup" Attribute Description

6.7 "ExpressionGroup" Class Description

6.7.1 "and" Attribute Description

6.7.2 "gt" Attribute Description

6.7.3 "not" Attribute Description

6.7.4 "lt" Attribute Description

6.7.5 "gte" Attribute Description

6.7.6 "lte" Attribute Description

6.7.7 "or" Attribute Description

6.7.8 "sum" Attribute Description

6.7.9 "durationLT" Attribute Description

6.7.10 "durationGTE" Attribute Description

6.7.11 "subtract" Attribute Description

6.7.12 "divide" Attribute Description

6.7.13 "multiple" Attribute Description

6.7.14 "ordered" Attribute Description

6.7.15 "customOperator" Attribute Description

6.7.16 "random" Attribute Description

6.7.17 "numberIncorrect" Attribute Description

6.7.18 "numberCorrect" Attribute Description

6.7.19 "numberPresented" Attribute Description

6.7.20 "numberResponded" Attribute Description

6.7.21 "numberSelected" Attribute Description

6.7.22 "substring" Attribute Description

6.7.23 "equalRounded" Attribute Description

6.7.24 "null" Attribute Description

6.7.25 "delete" Attribute Description

6.7.26 "match" Attribute Description

6.7.27 "index" Attribute Description

6.7.28 "power" Attribute Description

6.7.29 "equal" Attribute Description

6.7.30 "contains" Attribute Description

6.7.31 "containerSize" Attribute Description

6.7.32 "correct" Attribute Description

6.7.33 "default" Attribute Description

6.7.34 "anyN" Attribute Description

6.7.35 "integerDivide" Attribute Description

6.7.36 "integerModulus" Attribute Description

6.7.37 "isNull" Attribute Description

6.7.38 "member" Attribute Description

6.7.39 "product" Attribute Description

6.7.40 "round" Attribute Description

6.7.41 "truncate" Attribute Description

6.7.42 "fieldValue" Attribute Description

6.7.43 "randomInteger" Attribute Description

6.7.44 "randomFloat" Attribute Description

6.7.45 "variable" Attribute Description

6.7.46 "outcomeMinimum" Attribute Description

6.7.47 "outcomeMaximum" Attribute Description

6.7.48 "testVariables" Attribute Description

6.7.49 "integerToFloat" Attribute Description

6.7.50 "inside" Attribute Description

6.7.51 "baseValue" Attribute Description

6.7.52 "patternMatch" Attribute Description

6.7.53 "mapResponsePoint" Attribute Description

6.7.54 "mapResponse" Attribute Description

6.7.55 "stringMatch" Attribute Description

6.7.56 "repeat" Attribute Description

6.7.57 "roundTo" Attribute Description

6.7.58 "lcm" Attribute Description

6.7.59 "gcd" Attribute Description

6.7.60 "min" Attribute Description

6.7.61 "max" Attribute Description

6.7.62 "mathConstant" Attribute Description

6.7.63 "statsOperator" Attribute Description

6.7.64 "mathOperator" Attribute Description

6.8 "FeedandTempBlockStatic" Class Description

6.8.1 "flowContentModel" Attribute Description

6.8.2 "math" Attribute Description

6.8.3 "math" Attribute Description

6.8.4 "include" Attribute Description

6.8.5 "templateBlock" Attribute Description

6.8.6 "templateInline" Attribute Description

6.8.7 "feedbackBlock" Attribute Description

6.8.8 "feedbackInline" Attribute Description

6.8.9 "printedVariable" Attribute Description

6.9 "FeedbackBlockStatic" Class Description

6.9.1 "blockGroup" Attribute Description

6.9.2 "inlineContentModel" Attribute Description

6.9.3 "templateInline" Attribute Description

6.9.4 "feedbackInline" Attribute Description

6.9.5 "printedVariable" Attribute Description

6.10 "FeedbackFlowStaticGroup" Class Description

6.10.1 "printedVariable" Attribute Description

6.10.2 "hottext" Attribute Description

6.10.3 "templateInline" Attribute Description

6.10.4 "templateBlock" Attribute Description

6.10.5 "math" Attribute Description

6.10.6 "math" Attribute Description

6.10.7 "include" Attribute Description

6.10.8 "flowContentModel" Attribute Description

6.11 "FeedbackInlineGroup" Class Description

6.11.1 "inlineContentModel" Attribute Description

6.11.2 "math" Attribute Description

6.11.3 "math" Attribute Description

6.11.4 "include" Attribute Description

6.11.5 "templateInline" Attribute Description

6.11.6 "printedVariable" Attribute Description

6.12 "FlowContentModel" Class Description

6.12.1 "pre" Attribute Description

6.12.2 "h1" Attribute Description

6.12.3 "h2" Attribute Description

6.12.4 "h3" Attribute Description

6.12.5 "h4" Attribute Description

6.12.6 "h5" Attribute Description

6.12.7 "h6" Attribute Description

6.12.8 "p" Attribute Description

6.12.9 "address" Attribute Description

6.12.10 "dl" Attribute Description

6.12.11 "ol" Attribute Description

6.12.12 "ul" Attribute Description

6.12.13 "br" Attribute Description

6.12.14 "hr" Attribute Description

6.12.15 "img" Attribute Description

6.12.16 "object" Attribute Description

6.12.17 "blockquote" Attribute Description

6.12.18 "em" Attribute Description

6.12.19 "a" Attribute Description

6.12.20 "code" Attribute Description

6.12.21 "span" Attribute Description

6.12.22 "sub" Attribute Description

6.12.23 "acronym" Attribute Description

6.12.24 "big" Attribute Description

6.12.25 "tt" Attribute Description

6.12.26 "kbd" Attribute Description

6.12.27 "q" Attribute Description

6.12.28 "i" Attribute Description

6.12.29 "dfn" Attribute Description

6.12.30 "abbr" Attribute Description

6.12.31 "strong" Attribute Description

6.12.32 "sup" Attribute Description

6.12.33 "var" Attribute Description

6.12.34 "small" Attribute Description

6.12.35 "samp" Attribute Description

6.12.36 "b" Attribute Description

6.12.37 "cite" Attribute Description

6.12.38 "table" Attribute Description

6.12.39 "div" Attribute Description

6.12.40 "bdo" Attribute Description

6.12.41 "bdi" Attribute Description

6.12.42 "figure" Attribute Description

6.12.43 "audio" Attribute Description

6.12.44 "video" Attribute Description

6.12.45 "article" Attribute Description

6.12.46 "aside" Attribute Description

6.12.47 "footer" Attribute Description

6.12.48 "header" Attribute Description

6.12.49 "label" Attribute Description

6.12.50 "nav" Attribute Description

6.12.51 "section" Attribute Description

6.12.52 "ruby" Attribute Description

6.12.53 "ssmlGroup" Attribute Description

6.13 "FlowGroup" Class Description

6.13.1 "printedVariable" Attribute Description

6.13.2 "feedbackBlock" Attribute Description

6.13.3 "hottext" Attribute Description

6.13.4 "feedbackInline" Attribute Description

6.13.5 "templateInline" Attribute Description

6.13.6 "templateBlock" Attribute Description

6.13.7 "math" Attribute Description

6.13.8 "math" Attribute Description

6.13.9 "include" Attribute Description

6.13.10 "textEntryInteraction" Attribute Description

6.13.11 "inlineChoiceInteraction" Attribute Description

6.13.12 "endAttemptInteraction" Attribute Description

6.13.13 "customInteraction" Attribute Description

6.13.14 "drawingInteraction" Attribute Description

6.13.15 "gapMatchInteraction" Attribute Description

6.13.16 "matchInteraction" Attribute Description

6.13.17 "graphicGapMatchInteraction" Attribute Description

6.13.18 "hotspotInteraction" Attribute Description

6.13.19 "graphicOrderInteraction" Attribute Description

6.13.20 "selectPointInteraction" Attribute Description

6.13.21 "graphicAssociateInteraction" Attribute Description

6.13.22 "sliderInteraction" Attribute Description

6.13.23 "choiceInteraction" Attribute Description

6.13.24 "mediaInteraction" Attribute Description

6.13.25 "hottextInteraction" Attribute Description

6.13.26 "orderInteraction" Attribute Description

6.13.27 "extendedTextInteraction" Attribute Description

6.13.28 "uploadInteraction" Attribute Description

6.13.29 "associateInteraction" Attribute Description

6.13.30 "flowContentModel" Attribute Description

6.14 "FlowStaticGroup" Class Description

6.14.1 "printedVariable" Attribute Description

6.14.2 "feedbackBlock" Attribute Description

6.14.3 "feedbackInline" Attribute Description

6.14.4 "templateInline" Attribute Description

6.14.5 "templateBlock" Attribute Description

6.14.6 "math" Attribute Description

6.14.7 "math" Attribute Description

6.14.8 "include" Attribute Description

6.14.9 "flowContentModel" Attribute Description

6.15 "GapChoice" Class Description

6.15.1 "gapText" Attribute Description

6.15.2 "gapImg" Attribute Description

6.16 "InlineChoiceGroup" Class Description

6.16.1 "printedVariable" Attribute Description

6.16.2 "feedbackInline" Attribute Description

6.16.3 "templateInline" Attribute Description

6.16.4 "math" Attribute Description

6.16.5 "math" Attribute Description

6.16.6 "include" Attribute Description

6.16.7 "inlineContentModel" Attribute Description

6.17 "InlineContentModel" Class Description

6.17.1 "img" Attribute Description

6.17.2 "br" Attribute Description

6.17.3 "object" Attribute Description

6.17.4 "em" Attribute Description

6.17.5 "a" Attribute Description

6.17.6 "code" Attribute Description

6.17.7 "span" Attribute Description

6.17.8 "sub" Attribute Description

6.17.9 "acronym" Attribute Description

6.17.10 "big" Attribute Description

6.17.11 "tt" Attribute Description

6.17.12 "kbd" Attribute Description

6.17.13 "q" Attribute Description

6.17.14 "i" Attribute Description

6.17.15 "dfn" Attribute Description

6.17.16 "abbr" Attribute Description

6.17.17 "strong" Attribute Description

6.17.18 "sup" Attribute Description

6.17.19 "var" Attribute Description

6.17.20 "small" Attribute Description

6.17.21 "samp" Attribute Description

6.17.22 "b" Attribute Description

6.17.23 "cite" Attribute Description

6.17.24 "bdo" Attribute Description

6.17.25 "bdi" Attribute Description

6.17.26 "label" Attribute Description

6.17.27 "ruby" Attribute Description

6.17.28 "ssml11Group" Attribute Description

6.18 "InlineGroup" Class Description

6.18.1 "textEntryInteraction" Attribute Description

6.18.2 "hottext" Attribute Description

6.18.3 "printedVariable" Attribute Description

6.18.4 "gap" Attribute Description

6.18.5 "feedbackInline" Attribute Description

6.18.6 "templateInline" Attribute Description

6.18.7 "inlineChoiceInteraction" Attribute Description

6.18.8 "endAttemptInteraction" Attribute Description

6.18.9 "customInteraction" Attribute Description

6.18.10 "math" Attribute Description

6.18.11 "math" Attribute Description

6.18.12 "include" Attribute Description

6.18.13 "inlineContentModel" Attribute Description

6.19 "InlineStaticGroup" Class Description

6.19.1 "hottext" Attribute Description

6.19.2 "printedVariable" Attribute Description

6.19.3 "gap" Attribute Description

6.19.4 "feedbackInline" Attribute Description

6.19.5 "templateInline" Attribute Description

6.19.6 "math" Attribute Description

6.19.7 "math" Attribute Description

6.19.8 "include" Attribute Description

6.19.9 "inlineContentModel" Attribute Description

6.20 "ItemBodySelect" Class Description

6.20.1 "rubricBlock" Attribute Description

6.20.2 "blockGroup" Attribute Description

6.21 "LookupTable" Class Description

6.21.1 "matchTable" Attribute Description

6.21.2 "interpolationTable" Attribute Description

6.22 "NumericExpressionGroup" Class Description

6.22.1 "sum" Attribute Description

6.22.2 "subtract" Attribute Description

6.22.3 "divide" Attribute Description

6.22.4 "multiple" Attribute Description

6.22.5 "ordered" Attribute Description

6.22.6 "customOperator" Attribute Description

6.22.7 "random" Attribute Description

6.22.8 "numberIncorrect" Attribute Description

6.22.9 "numberCorrect" Attribute Description

6.22.10 "numberPresented" Attribute Description

6.22.11 "numberResponded" Attribute Description

6.22.12 "numberSelected" Attribute Description

6.22.13 "null" Attribute Description

6.22.14 "delete" Attribute Description

6.22.15 "index" Attribute Description

6.22.16 "power" Attribute Description

6.22.17 "containerSize" Attribute Description

6.22.18 "correct" Attribute Description

6.22.19 "default" Attribute Description

6.22.20 "integerDivide" Attribute Description

6.22.21 "integerModulus" Attribute Description

6.22.22 "product" Attribute Description

6.22.23 "round" Attribute Description

6.22.24 "truncate" Attribute Description

6.22.25 "fieldValue" Attribute Description

6.22.26 "randomInteger" Attribute Description

6.22.27 "variable" Attribute Description

6.22.28 "outcomeMinimum" Attribute Description

6.22.29 "outcomeMaximum" Attribute Description

6.22.30 "testVariables" Attribute Description

6.22.31 "integerToFloat" Attribute Description

6.22.32 "baseValue" Attribute Description

6.22.33 "mapResponsePoint" Attribute Description

6.22.34 "mapResponse" Attribute Description

6.22.35 "repeat" Attribute Description

6.22.36 "roundTo" Attribute Description

6.22.37 "lcm" Attribute Description

6.22.38 "gcd" Attribute Description

6.22.39 "min" Attribute Description

6.22.40 "max" Attribute Description

6.22.41 "mathConstant" Attribute Description

6.22.42 "statsOperator" Attribute Description

6.22.43 "mathOperator" Attribute Description

6.22.44 "randomFloat" Attribute Description

6.23 "ObjectFlowGroup" Class Description

6.23.1 "math" Attribute Description

6.23.2 "math" Attribute Description

6.23.3 "include" Attribute Description

6.23.4 "param" Attribute Description

6.23.5 "flowContentModel" Attribute Description

6.24 "OutcomeRule" Class Description

6.24.1 "lookupOutcomeValue" Attribute Description

6.24.2 "outcomeProcessingFragment" Attribute Description

6.24.3 "setOutcomeValue" Attribute Description

6.24.4 "include" Attribute Description

6.24.5 "exitTest" Attribute Description

6.24.6 "outcomeCondition" Attribute Description

6.25 "PromptStaticGroup" Class Description

6.25.1 "math" Attribute Description

6.25.2 "math" Attribute Description

6.25.3 "include" Attribute Description

6.25.4 "flowContentModel" Attribute Description

6.26 "ResponseRuleGroup" Class Description

6.26.1 "include" Attribute Description

6.26.2 "responseCondition" Attribute Description

6.26.3 "responseProcessingFragment" Attribute Description

6.26.4 "setOutcomeValue" Attribute Description

6.26.5 "exitResponse" Attribute Description

6.26.6 "lookupOutcomeValue" Attribute Description

6.27 "RubricBlockContentModel" Class Description

6.27.1 "flowContentModel" Attribute Description

6.27.2 "math" Attribute Description

6.27.3 "math" Attribute Description

6.27.4 "include" Attribute Description

6.27.5 "templateBlock" Attribute Description

6.27.6 "templateInline" Attribute Description

6.27.7 "printedVariable" Attribute Description

6.28 "RubricTemplateBlockContentModel" Class Description

6.28.1 "flowContentModel" Attribute Description

6.28.2 "math" Attribute Description

6.28.3 "math" Attribute Description

6.28.4 "include" Attribute Description

6.28.5 "templateBlock" Attribute Description

6.28.6 "printedVariable" Attribute Description

6.29 "RubricTemplateInlineStaticGroup" Class Description

6.29.1 "inlineContentModel" Attribute Description

6.29.2 "math" Attribute Description

6.29.3 "math" Attribute Description

6.29.4 "include" Attribute Description

6.29.5 "templateInline" Attribute Description

6.29.6 "printedVariable" Attribute Description

6.30 "SSMLGroup" Class Description

6.30.1 "p" Attribute Description

6.30.2 "s" Attribute Description

6.30.3 "say-as" Attribute Description

6.30.4 "phoneme" Attribute Description

6.30.5 "sub" Attribute Description

6.30.6 "voice" Attribute Description

6.30.7 "emphasis" Attribute Description

6.30.8 "break" Attribute Description

6.30.9 "prosody" Attribute Description

6.30.10 "mark" Attribute Description

6.30.11 "audio" Attribute Description

6.30.12 "speak" Attribute Description

6.31 "SectionPart" Class Description

6.31.1 "include" Attribute Description

6.31.2 "assessmentItemRef" Attribute Description

6.31.3 "assessmentSection" Attribute Description

6.31.4 "assessmentSectionRef" Attribute Description

6.32 "TableCellGroup" Class Description

6.32.1 "td" Attribute Description

6.32.2 "th" Attribute Description

6.33 "TemplateRuleGroup" Class Description

6.33.1 "setTemplateValue" Attribute Description

6.33.2 "exitTemplate" Attribute Description

6.33.3 "templateCondition" Attribute Description

6.33.4 "setDefaultValue" Attribute Description

6.33.5 "setCorrectResponse" Attribute Description

6.33.6 "templateConstraint" Attribute Description

7. Derived Class Descriptions

7.1 "ARIALevelInteger" Class Description

7.1.1 "minInclusive" Attribute Description

7.2 "AreaMapEntry" Class Description

7.2.1 "shape" Characteristic Description

7.2.2 "coords" Characteristic Description

7.2.3 "mappedValue" Characteristic Description

7.3 "AssessmentSectionRef" Class Description

7.3.1 "identifier" Characteristic Description

7.3.2 "href" Characteristic Description

7.4 "AssessmentStimulusRef" Class Description

7.4.1 "identifier" Characteristic Description

7.4.2 "href" Characteristic Description

7.5 "BaseSequenceXBaseEmpty" Class Description

7.5.1 "id" Characteristic Description

7.5.2 "class" Characteristic Description

7.5.3 "language" Characteristic Description

7.5.4 "label" Characteristic Description

7.5.5 "base" Characteristic Description

7.5.6 "dir" Characteristic Description

7.5.7 "role" Characteristic Description

7.5.8 "aria-controls" Characteristic Description

7.5.9 "aria-describedby" Characteristic Description

7.5.10 "aria-flowsto" Characteristic Description

7.5.11 "aria-label" Characteristic Description

7.5.12 "aria-labelledby" Characteristic Description

7.5.13 "aria-level" Characteristic Description

7.5.14 "aria-live" Characteristic Description

7.5.15 "aria-orientation" Characteristic Description

7.5.16 "aria-owns" Characteristic Description

7.5.17 "dataExtension" Characteristic Description

7.6 "BaseValue" Class Description

7.6.1 "baseType" Characteristic Description

7.7 "Coords" Class Description

7.7.1 "pattern" Attribute Description

7.8 "Correct" Class Description

7.8.1 "identifier" Characteristic Description

7.9 "DataHTML5Extension" Class Description

7.9.1 "pattern" Attribute Description

7.10 "Default" Class Description

7.10.1 "identifier" Characteristic Description

7.11 "EncVariableString" Class Description

7.11.1 "pattern" Attribute Description

7.12 "Identifier" Class Description

7.13 "InterpolationTableEntry" Class Description

7.13.1 "sourceValue" Characteristic Description

7.13.2 "includeBoundary" Characteristic Description

7.13.3 "targetValue" Characteristic Description

7.14 "ItemSessionControl" Class Description

7.14.1 "maxAttempts" Characteristic Description

7.14.2 "showFeedback" Characteristic Description

7.14.3 "allowReview" Characteristic Description

7.14.4 "showSolution" Characteristic Description

7.14.5 "allowComment" Characteristic Description

7.14.6 "allowSkipping" Characteristic Description

7.14.7 "validateResponses" Characteristic Description

7.15 "Length" Class Description

7.15.1 "pattern" Attribute Description

7.16 "MapEntry" Class Description

7.16.1 "mapKey" Characteristic Description

7.16.2 "mappedValue" Characteristic Description

7.16.3 "caseSensitive" Characteristic Description

7.17 "MapResponse" Class Description

7.17.1 "identifier" Characteristic Description

7.18 "MatchTableEntry" Class Description

7.18.1 "sourceValue" Characteristic Description

7.18.2 "targetValue" Characteristic Description

7.19 "MathConstant" Class Description

7.19.1 "name" Characteristic Description

7.20 "MimeType" Class Description

7.20.1 "pattern" Attribute Description

7.21 "NonNegativeDouble" Class Description

7.21.1 "minInclusive" Attribute Description

7.22 "Number" Class Description

7.22.1 "sectionIdentifier" Characteristic Description

7.22.2 "includeCategory" Characteristic Description

7.22.3 "excludeCategory" Characteristic Description

7.23 "OutcomeMinMax" Class Description

7.23.1 "sectionIdentifier" Characteristic Description

7.23.2 "includeCategory" Characteristic Description

7.23.3 "excludeCategory" Characteristic Description

7.23.4 "outcomeIdentifier" Characteristic Description

7.23.5 "weightIdentifier" Characteristic Description

7.24 "Param" Class Description

7.24.1 "name" Characteristic Description

7.24.2 "value" Characteristic Description

7.24.3 "valuetype" Characteristic Description

7.24.4 "type" Characteristic Description

7.25 "PrintedVariable" Class Description

7.25.1 "id" Characteristic Description

7.25.2 "class" Characteristic Description

7.25.3 "language" Characteristic Description

7.25.4 "label" Characteristic Description

7.25.5 "baseuri" Characteristic Description

7.25.6 "identifier" Characteristic Description

7.25.7 "format" Characteristic Description

7.25.8 "base" Characteristic Description

7.25.9 "index" Characteristic Description

7.25.10 "powerForm" Characteristic Description

7.25.11 "field" Characteristic Description

7.25.12 "delimiter" Characteristic Description

7.25.13 "mappingIndicator" Characteristic Description

7.26 "RandomFloat" Class Description

7.26.1 "min" Characteristic Description

7.26.2 "max" Characteristic Description

7.27 "RandomInteger" Class Description

7.27.1 "min" Characteristic Description

7.27.2 "max" Characteristic Description

7.27.3 "step" Characteristic Description

7.28 "StyleSheet" Class Description

7.28.1 "href" Characteristic Description

7.28.2 "type" Characteristic Description

7.28.3 "media" Characteristic Description

7.28.4 "title" Characteristic Description

7.29 "TestVariables" Class Description

7.29.1 "sectionIdentifier" Characteristic Description

7.29.2 "includeCategory" Characteristic Description

7.29.3 "excludeCategory" Characteristic Description

7.29.4 "variableIdentifier" Characteristic Description

7.29.5 "weightIdentifier" Characteristic Description

7.29.6 "baseType" Characteristic Description

7.30 "TimeLimits" Class Description

7.30.1 "minTime" Characteristic Description

7.30.2 "maxTime" Characteristic Description

7.30.3 "allowLateSubmission" Characteristic Description

7.31 "UniqueIdentifier" Class Description

7.32 "UniqueIdentifierRef" Class Description

7.33 "Value" Class Description

7.33.1 "fieldIdentifier" Characteristic Description

7.33.2 "baseType" Characteristic Description

7.34 "Variable" Class Description

7.34.1 "identifier" Characteristic Description

7.34.2 "weightIdentifier" Characteristic Description

7.35 "VariableMapping" Class Description

7.35.1 "sourceIdentifier" Characteristic Description

7.35.2 "targetIdentifier" Characteristic Description

7.36 "VariableString" Class Description

7.36.1 "pattern" Attribute Description

7.37 "Weight" Class Description

7.37.1 "identifier" Characteristic Description

7.37.2 "value" Characteristic Description

8. Enumerated Vocabulary Descriptions

8.1 "ARIALiveValue" Vocabulary Description

8.2 "ARIAOrientationValue" Vocabulary Description

8.3 "ARIARoleValue" Vocabulary Description

8.4 "Align" Vocabulary Description

8.5 "BaseType" Vocabulary Description

8.6 "CORSSettings" Vocabulary Description

8.7 "Cardinality" Vocabulary Description

8.8 "DIR" Vocabulary Description

8.9 "ExternalScored" Vocabulary Description

8.10 "MathConstantNames" Vocabulary Description

8.11 "MathOperatorName" Vocabulary Description

8.12 "NavigationMode" Vocabulary Description

8.13 "Orientation" Vocabulary Description

8.14 "ParamType" Vocabulary Description

8.15 "RoundingMode" Vocabulary Description

8.16 "Shape" Vocabulary Description

8.17 "ShowHide" Vocabulary Description

8.18 "StatsOperatorName" Vocabulary Description

8.19 "SubmissionMode" Vocabulary Description

8.20 "TableCellScope" Vocabulary Description

8.21 "TestFeedbackAccess" Vocabulary Description

8.22 "TextFormat" Vocabulary Description

8.23 "ToleranceMode" Vocabulary Description

8.24 "Valign" Vocabulary Description

9. Miscellaneous Descriptions

9.1 List Class Descriptions

9.1.1 "IdentifierList" Class Description

9.1.2 "IntegerList" Class Description

9.1.3 "StringList" Class Description

9.1.4 "ToleranceList" Class Description

9.2 Enumerated List Class Descriptions

9.2.1 "View" Vocabulary Description

9.3 Union Class Descriptions

9.3.1 "FloatOrVariableRef" Class Description

9.3.2 "IntOrIdentifier" Class Description

9.3.3 "IntegerOrVariableRef" Class Description

9.3.4 "StringOrVariableRef" Class Description

9.4 Imported Class Descriptions

9.4.1 "APIPAccessibility" Class Description

9.4.2 "HTML5" Class Description

9.4.3 "Include" Class Description

9.4.4 "MathML2" Class Description

9.4.5 "MathML3" Class Description

9.4.6 "SSMLv1p1" Class Description

10. Extending and Profiling the Data Model

10.1 Extending the Data Model

10.1.1 Section Selection

10.1.2 Section Ordering

10.1.3 Custom Interactions

10.1.4 Custom Operators

10.1.5 Controlled Characteristics on the HTML and Interaction Elements

10.2 Profiling the Data Model

Appendix A Modelling Concepts and Terms

A1 Data Model Descriptions

A1.1 Data Model Diagrams

A1.2 Class Descriptions

A1.3 Attribute and Characteristic Descriptions

A1.4 Enumerated Vocabulary Descriptions

A1.5 External Vocabulary Descriptions

A1.6 Import Class Descriptions

About this Document

List of Contributors

Revision History

toc | top

# List of Figures

Figure 4.1 AssessmentItem class definitions

Figure 4.2 AssessmentSection class definitions

Figure 4.3 AssessmentStimulus class definitions

Figure 4.4 AssessmentTest class definitions

Figure 4.5 OutcomeDeclaration class definitions

Figure 4.6 ResponseProcessing class definitions

Figure 5.1 A class definitions

Figure 5.2 AnyN class definitions

Figure 5.3 AreaMapping class definitions

Figure 5.4 AssessmentItemRef class definitions

Figure 5.5 AssociableHotspot class definitions

Figure 5.6 AssociateInteraction class definitions

Figure 5.7 BDO class definitions

Figure 5.8 BR class definitions

Figure 5.9 BasePromptInteraction class definitions

Figure 5.10 BaseSequence class definitions

Figure 5.11 BaseSequenceFull class definitions

Figure 5.12 BaseSequenceRIdent class definitions

Figure 5.13 BaseSequenceXBase class definitions

Figure 5.14 BlockQuote class definitions

Figure 5.15 BranchRule class definitions

Figure 5.16 Caption class definitions

Figure 5.17 ChoiceInteraction class definitions

Figure 5.18 Col class definitions

Figure 5.19 ColGroup class definitions

Figure 5.20 CorrectResponse class definitions

Figure 5.21 CustomInteraction class definitions

Figure 5.22 CustomOperator class definitions

Figure 5.23 DD class definitions

Figure 5.24 DL class definitions

Figure 5.25 DT class definitions

Figure 5.26 DefaultValue class definitions

Figure 5.27 Div class definitions

Figure 5.28 DrawingInteraction class definitions

Figure 5.29 EndAttemptInteraction class definitions

Figure 5.30 Equal class definitions

Figure 5.31 EqualRounded class definitions

Figure 5.32 ExtendedTextInteraction class definitions

Figure 5.33 FeedbackBlock class definitions

Figure 5.34 FeedbackInline class definitions

Figure 5.35 FieldValue class definitions

Figure 5.36 Gap class definitions

Figure 5.37 GapImg class definitions

Figure 5.38 GapMatchInteraction class definitions

Figure 5.39 GapText class definitions

Figure 5.40 GraphicAssociateInteraction class definitions

Figure 5.41 GraphicGapMatchInteraction class definitions

Figure 5.42 GraphicOrderInteraction class definitions

Figure 5.43 HR class definitions

Figure 5.44 HTMLText class definitions

Figure 5.45 HotText class definitions

Figure 5.46 HotTextInteraction class definitions

Figure 5.47 HotspotChoice class definitions

Figure 5.48 HotspotInteraction class definitions

Figure 5.49 Img class definitions

Figure 5.50 Index class definitions

Figure 5.51 InfoControl class definitions

Figure 5.52 InlineChoice class definitions

Figure 5.53 InlineChoiceInteraction class definitions

Figure 5.54 Inside class definitions

Figure 5.55 InterpolationTable class definitions

Figure 5.56 ItemBody class definitions

Figure 5.57 LI class definitions

Figure 5.58 Label class definitions

Figure 5.59 Logic0toMany class definitions

Figure 5.60 Logic1toMany class definitions

Figure 5.61 LogicPair class definitions

Figure 5.62 LogicSingle class definitions

Figure 5.63 LookupOutcomeValue class definitions

Figure 5.64 Mapping class definitions

Figure 5.65 MatchInteraction class definitions

Figure 5.66 MatchTable class definitions

Figure 5.67 MathOperator class definitions

Figure 5.68 MediaInteraction class definitions

Figure 5.69 ModalFeedback class definitions

Figure 5.70 NumericLogic1toMany class definitions

Figure 5.71 OUL class definitions

Figure 5.72 Object class definitions

Figure 5.73 OrderInteraction class definitions

Figure 5.74 Ordering class definitions

Figure 5.75 OutcomeCondition class definitions

Figure 5.76 OutcomeElse class definitions

Figure 5.77 OutcomeIf class definitions

Figure 5.78 OutcomeProcessing class definitions

Figure 5.79 OutcomeProcessingFragment class definitions

Figure 5.80 PatternMatch class definitions

Figure 5.81 PositionObjectInteraction class definitions

Figure 5.82 PositionObjectStage class definitions

Figure 5.83 Prompt class definitions

Figure 5.84 Q class definitions

Figure 5.85 Repeat class definitions

Figure 5.86 ResponseCondition class definitions

Figure 5.87 ResponseDeclaration class definitions

Figure 5.88 ResponseElse class definitions

Figure 5.89 ResponseIf class definitions

Figure 5.90 ResponseProcessingFragment class definitions

Figure 5.91 RoundTo class definitions

Figure 5.92 RubricBlock class definitions

Figure 5.93 RubricBlockTemplateBlock class definitions

Figure 5.94 RubricBlockTemplateInline class definitions

Figure 5.95 SelectPointInteraction class definitions

Figure 5.96 Selection class definitions

Figure 5.97 SetValue class definitions

Figure 5.98 SimpleAssociableChoice class definitions

Figure 5.99 SimpleChoice class definitions

Figure 5.100 SimpleMatchSet class definitions

Figure 5.101 SliderInteraction class definitions

Figure 5.102 StatsOperator class definitions

Figure 5.103 StimulusBody class definitions

Figure 5.104 StringMatch class definitions

Figure 5.105 Substring class definitions

Figure 5.106 TDH class definitions

Figure 5.107 TR class definitions

Figure 5.108 Table class definitions

Figure 5.109 TablePart class definitions

Figure 5.110 TemplateBlock class definitions

Figure 5.111 TemplateBlockFeedbackBlock class definitions

Figure 5.112 TemplateCondition class definitions

Figure 5.113 TemplateConstraint class definitions

Figure 5.114 TemplateDeclaration class definitions

Figure 5.115 TemplateDefault class definitions

Figure 5.116 TemplateElse class definitions

Figure 5.117 TemplateIf class definitions

Figure 5.118 TemplateInline class definitions

Figure 5.119 TemplateProcessing class definitions

Figure 5.120 TestFeedback class definitions

Figure 5.121 TestPart class definitions

Figure 5.122 TextEntryInteraction class definitions

Figure 5.123 UploadInteraction class definitions

Figure 6.1 AssessmentSectionSelection class definitions

Figure 6.2 BlockContentModel class definitions

Figure 6.3 BlockGroup class definitions

Figure 6.4 BlockStaticGroup class definitions

Figure 6.5 DLSelection class definitions

Figure 6.6 DivSelection class definitions

Figure 6.7 ExpressionGroup class definitions

Figure 6.8 FeedandTempBlockStatic class definitions

Figure 6.9 FeedbackBlockStatic class definitions

Figure 6.10 FeedbackFlowStaticGroup class definitions

Figure 6.11 FeedbackInlineGroup class definitions

Figure 6.12 FlowContentModel class definitions

Figure 6.13 FlowGroup class definitions

Figure 6.14 FlowStaticGroup class definitions

Figure 6.15 GapChoice class definitions

Figure 6.16 InlineChoiceGroup class definitions

Figure 6.17 InlineContentModel class definitions

Figure 6.18 InlineGroup class definitions

Figure 6.19 InlineStaticGroup class definitions

Figure 6.20 ItemBodySelect class definitions

Figure 6.21 LookupTable class definitions

Figure 6.22 NumericExpressionGroup class definitions

Figure 6.23 ObjectFlowGroup class definitions

Figure 6.24 OutcomeRule class definitions

Figure 6.25 PromptStaticGroup class definitions

Figure 6.26 ResponseRuleGroup class definitions

Figure 6.27 RubricBlockContentModel class definitions

Figure 6.28 RubricTemplateBlockContentModel class definitions

Figure 6.29 RubricTemplateInlineStaticGroup class definitions

Figure 6.30 SSMLGroup class definitions

Figure 6.31 SectionPart class definitions

Figure 6.32 TableCellGroup class definitions

Figure 6.33 TemplateRuleGroup class definitions

Figure 7.1 ARIALevelInteger class definitions

Figure 7.2 AreaMapEntry class definitions

Figure 7.3 AssessmentSectionRef class definitions

Figure 7.4 AssessmentStimulusRef class definitions

Figure 7.5 BaseSequenceXBaseEmpty class definitions

Figure 7.6 BaseValue class definitions

Figure 7.7 Coords class definitions

Figure 7.8 Correct class definitions

Figure 7.9 DataHTML5Extension class definitions

Figure 7.10 Default class definitions

Figure 7.11 EncVariableString class definitions

Figure 7.12 Identifier class definitions

Figure 7.13 InterpolationTableEntry class definitions

Figure 7.14 ItemSessionControl class definitions

Figure 7.15 Length class definitions

Figure 7.16 MapEntry class definitions

Figure 7.17 MapResponse class definitions

Figure 7.18 MatchTableEntry class definitions

Figure 7.19 MathConstant class definitions

Figure 7.20 MimeType class definitions

Figure 7.21 NonNegativeDouble class definitions

Figure 7.22 Number class definitions

Figure 7.23 OutcomeMinMax class definitions

Figure 7.24 Param class definitions

Figure 7.25 PrintedVariable class definitions

Figure 7.26 RandomFloat class definitions

Figure 7.27 RandomInteger class definitions

Figure 7.28 StyleSheet class definitions

Figure 7.29 TestVariables class definitions

Figure 7.30 TimeLimits class definitions

Figure 7.31 UniqueIdentifier class definitions

Figure 7.32 UniqueIdentifierRef class definitions

Figure 7.33 Value class definitions

Figure 7.34 Variable class definitions

Figure 7.35 VariableMapping class definitions

Figure 7.36 VariableString class definitions

Figure 7.37 Weight class definitions

Figure 8.1 ARIALiveValue class definitions

Figure 8.2 ARIAOrientationValue class definitions

Figure 8.3 ARIARoleValue class definitions

Figure 8.4 Align class definitions

Figure 8.5 BaseType class definitions

Figure 8.6 CORSSettings class definitions

Figure 8.7 Cardinality class definitions

Figure 8.8 DIR class definitions

Figure 8.9 ExternalScored class definitions

Figure 8.10 MathConstantNames class definitions

Figure 8.11 MathOperatorName class definitions

Figure 8.12 NavigationMode class definitions

Figure 8.13 Orientation class definitions

Figure 8.14 ParamType class definitions

Figure 8.15 RoundingMode class definitions

Figure 8.16 Shape class definitions

Figure 8.17 ShowHide class definitions

Figure 8.18 StatsOperatorName class definitions

Figure 8.19 SubmissionMode class definitions

Figure 8.20 TableCellScope class definitions

Figure 8.21 TestFeedbackAccess class definitions

Figure 8.22 TextFormat class definitions

Figure 8.23 ToleranceMode class definitions

Figure 8.24 Valign class definitions

Figure 9.1.1 IdentifierList class definitions

Figure 9.1.2 IntegerList class definitions

Figure 9.1.3 StringList class definitions

Figure 9.1.4 ToleranceList class definitions

Figure 9.2.1 View class definitions

Figure 9.3.1 FloatOrVariableRef class definitions

Figure 9.3.2 IntOrIdentifier class definitions

Figure 9.3.3 IntegerOrVariableRef class definitions

Figure 9.3.4 StringOrVariableRef class definitions

toc | top

# List of Tables

Table 3.1 Description of the "assessmentItem" root attribute.

Table 3.2 Description of the "assessmentSection" root attribute.

Table 3.3 Description of the "assessmentStimulus" root attribute.

Table 3.4 Description of the "assessmentTest" root attribute.

Table 3.5 Description of the "outcomeDeclaration" root attribute.

Table 3.6 Description of the "responseProcessing" root attribute.

Table 4.1 AssessmentItem class definitions

Table 4.1.1 Description of the "identifier" characteristic for the "AssessmentItem" class

Table 4.1.2 Description of the "title" characteristic for the "AssessmentItem" class

Table 4.1.3 Description of the "label" characteristic for the "AssessmentItem" class

Table 4.1.4 Description of the "language" characteristic for the "AssessmentItem" class

Table 4.1.5 Description of the "toolName" characteristic for the "AssessmentItem" class

Table 4.1.6 Description of the "toolVersion" characteristic for the "AssessmentItem" class

Table 4.1.7 Description of the "adaptive" characteristic for the "AssessmentItem" class

Table 4.1.8 Description of the "timeDependent" characteristic for the "AssessmentItem" class

Table 4.1.9 Description of the "responseDeclaration" attribute for the "AssessmentItem" class

Table 4.1.10 Description of the "outcomeDeclaration" attribute for the "AssessmentItem" class

Table 4.1.11 Description of the "templateDeclaration" attribute for the "AssessmentItem" class

Table 4.1.12 Description of the "templateProcessing" attribute for the "AssessmentItem" class

Table 4.1.13 Description of the "assessmentStimulusRef" attribute for the "AssessmentItem" class

Table 4.1.14 Description of the "stylesheet" attribute for the "AssessmentItem" class

Table 4.1.15 Description of the "itemBody" attribute for the "AssessmentItem" class

Table 4.1.16 Description of the "responseProcessing" attribute for the "AssessmentItem" class

Table 4.1.17 Description of the "modalFeedback" attribute for the "AssessmentItem" class

Table 4.1.18 Description of the "apipAccessibility" attribute for the "AssessmentItem" class

Table 4.2 AssessmentSection class definitions

Table 4.2.1 Description of the "identifier" characteristic for the "AssessmentSection" class

Table 4.2.2 Description of the "required" characteristic for the "AssessmentSection" class

Table 4.2.3 Description of the "fixed" characteristic for the "AssessmentSection" class

Table 4.2.4 Description of the "title" characteristic for the "AssessmentSection" class

Table 4.2.5 Description of the "visible" characteristic for the "AssessmentSection" class

Table 4.2.6 Description of the "keepTogether" characteristic for the "AssessmentSection" class

Table 4.2.7 Description of the "preCondition" attribute for the "AssessmentSection" class

Table 4.2.8 Description of the "branchRule" attribute for the "AssessmentSection" class

Table 4.2.9 Description of the "itemSessionControl" attribute for the "AssessmentSection" class

Table 4.2.10 Description of the "timeLimits" attribute for the "AssessmentSection" class

Table 4.2.11 Description of the "selection" attribute for the "AssessmentSection" class

Table 4.2.12 Description of the "ordering" attribute for the "AssessmentSection" class

Table 4.2.13 Description of the "rubricBlock" attribute for the "AssessmentSection" class

Table 4.2.14 Description of the "sectionPart" attribute for the "AssessmentSection" class

Table 4.3 AssessmentStimulus class definitions

Table 4.3.1 Description of the "identifier" characteristic for the "AssessmentStimulus" class

Table 4.3.2 Description of the "title" characteristic for the "AssessmentStimulus" class

Table 4.3.3 Description of the "label" characteristic for the "AssessmentStimulus" class

Table 4.3.4 Description of the "language" characteristic for the "AssessmentStimulus" class

Table 4.3.5 Description of the "toolName" characteristic for the "AssessmentStimulus" class

Table 4.3.6 Description of the "toolVersion" characteristic for the "AssessmentStimulus" class

Table 4.3.7 Description of the "stylesheet" attribute for the "AssessmentStimulus" class

Table 4.3.8 Description of the "stimulusBody" attribute for the "AssessmentStimulus" class

Table 4.3.9 Description of the "apipAccessibility" attribute for the "AssessmentStimulus" class

Table 4.4 AssessmentTest class definitions

Table 4.4.1 Description of the "identifier" characteristic for the "AssessmentTest" class

Table 4.4.2 Description of the "title" characteristic for the "AssessmentTest" class

Table 4.4.3 Description of the "toolName" characteristic for the "AssessmentTest" class

Table 4.4.4 Description of the "toolVersion" characteristic for the "AssessmentTest" class

Table 4.4.5 Description of the "outcomeDeclaration" attribute for the "AssessmentTest" class

Table 4.4.6 Description of the "timeLimits" attribute for the "AssessmentTest" class

Table 4.4.7 Description of the "stylesheet" attribute for the "AssessmentTest" class

Table 4.4.8 Description of the "testPart" attribute for the "AssessmentTest" class

Table 4.4.9 Description of the "outcomeProcessing" attribute for the "AssessmentTest" class

Table 4.4.10 Description of the "testFeedback" attribute for the "AssessmentTest" class

Table 4.5 OutcomeDeclaration class definitions

Table 4.5.1 Description of the "identifier" characteristic for the "OutcomeDeclaration" class

Table 4.5.2 Description of the "cardinality" characteristic for the "OutcomeDeclaration" class

Table 4.5.3 Description of the "baseType" characteristic for the "OutcomeDeclaration" class

Table 4.5.4 Description of the "view" characteristic for the "OutcomeDeclaration" class

Table 4.5.5 Description of the "interpretation" characteristic for the "OutcomeDeclaration" class

Table 4.5.6 Description of the "longInterpretation" characteristic for the "OutcomeDeclaration" class

Table 4.5.7 Description of the "normalMaximum" characteristic for the "OutcomeDeclaration" class

Table 4.5.8 Description of the "normalMinimum" characteristic for the "OutcomeDeclaration" class

Table 4.5.9 Description of the "masteryValue" characteristic for the "OutcomeDeclaration" class

Table 4.5.10 Description of the "externalScored" characteristic for the "OutcomeDeclaration" class

Table 4.5.11 Description of the "variableIdentifierRef" characteristic for the "OutcomeDeclaration" class

Table 4.5.12 Description of the "defaultValue" attribute for the "OutcomeDeclaration" class

Table 4.5.13 Description of the "lookupTable" attribute for the "OutcomeDeclaration" class

Table 4.6 ResponseProcessing class definitions

Table 4.6.1 Description of the "template" characteristic for the "ResponseProcessing" class

Table 4.6.2 Description of the "templateLocation" characteristic for the "ResponseProcessing" class

Table 4.6.3 Description of the "responseRuleGroup" attribute for the "ResponseProcessing" class

Table 5.1 A class definitions

Table 5.1.1 Description of the "href" characteristic for the "A" class

Table 5.1.2 Description of the "type" characteristic for the "A" class

Table 5.1.3 Description of the "inlineGroup" attribute for the "A" class

Table 5.2 AnyN class definitions

Table 5.2.1 Description of the "min" characteristic for the "AnyN" class

Table 5.2.2 Description of the "max" characteristic for the "AnyN" class

Table 5.2.3 Description of the "logic" attribute for the "AnyN" class

Table 5.3 AreaMapping class definitions

Table 5.3.1 Description of the "lowerBound" characteristic for the "AreaMapping" class

Table 5.3.2 Description of the "upperBound" characteristic for the "AreaMapping" class

Table 5.3.3 Description of the "defaultValue" characteristic for the "AreaMapping" class

Table 5.3.4 Description of the "areaMapEntry" attribute for the "AreaMapping" class

Table 5.4 AssessmentItemRef class definitions

Table 5.4.1 Description of the "identifier" characteristic for the "AssessmentItemRef" class

Table 5.4.2 Description of the "required" characteristic for the "AssessmentItemRef" class

Table 5.4.3 Description of the "fixed" characteristic for the "AssessmentItemRef" class

Table 5.4.4 Description of the "href" characteristic for the "AssessmentItemRef" class

Table 5.4.5 Description of the "category" characteristic for the "AssessmentItemRef" class

Table 5.4.6 Description of the "preCondition" attribute for the "AssessmentItemRef" class

Table 5.4.7 Description of the "branchRule" attribute for the "AssessmentItemRef" class

Table 5.4.8 Description of the "itemSessionControl" attribute for the "AssessmentItemRef" class

Table 5.4.9 Description of the "timeLimits" attribute for the "AssessmentItemRef" class

Table 5.4.10 Description of the "variableMapping" attribute for the "AssessmentItemRef" class

Table 5.4.11 Description of the "weight" attribute for the "AssessmentItemRef" class

Table 5.4.12 Description of the "templateDefault" attribute for the "AssessmentItemRef" class

Table 5.5 AssociableHotspot class definitions

Table 5.5.1 Description of the "identifier" characteristic for the "AssociableHotspot" class

Table 5.5.2 Description of the "templateIdentifier" characteristic for the "AssociableHotspot" class

Table 5.5.3 Description of the "showHide" characteristic for the "AssociableHotspot" class

Table 5.5.4 Description of the "matchGroup" characteristic for the "AssociableHotspot" class

Table 5.5.5 Description of the "shape" characteristic for the "AssociableHotspot" class

Table 5.5.6 Description of the "coords" characteristic for the "AssociableHotspot" class

Table 5.5.7 Description of the "hotspotLabel" characteristic for the "AssociableHotspot" class

Table 5.5.8 Description of the "matchMax" characteristic for the "AssociableHotspot" class

Table 5.5.9 Description of the "matchMin" characteristic for the "AssociableHotspot" class

Table 5.6 AssociateInteraction class definitions

Table 5.6.1 Description of the "shuffle" characteristic for the "AssociateInteraction" class

Table 5.6.2 Description of the "maxAssociations" characteristic for the "AssociateInteraction" class

Table 5.6.3 Description of the "minAssociations" characteristic for the "AssociateInteraction" class

Table 5.6.4 Description of the "simpleAssociableChoice" attribute for the "AssociateInteraction" class

Table 5.7 BDO class definitions

Table 5.7.1 Description of the "title" characteristic for the "BDO" class

Table 5.7.2 Description of the "inlineContentModel" attribute for the "BDO" class

Table 5.8 BR class definitions

Table 5.9 BasePromptInteraction class definitions

Table 5.9.1 Description of the "id" characteristic for the "BasePromptInteraction" class

Table 5.9.2 Description of the "class" characteristic for the "BasePromptInteraction" class

Table 5.9.3 Description of the "language" characteristic for the "BasePromptInteraction" class

Table 5.9.4 Description of the "label" characteristic for the "BasePromptInteraction" class

Table 5.9.5 Description of the "base" characteristic for the "BasePromptInteraction" class

Table 5.9.6 Description of the "responseIdentifier" characteristic for the "BasePromptInteraction" class

Table 5.9.7 Description of the "dir" characteristic for the "BasePromptInteraction" class

Table 5.9.8 Description of the "role" characteristic for the "BasePromptInteraction" class

Table 5.9.9 Description of the "aria-controls" characteristic for the "BasePromptInteraction" class

Table 5.9.10 Description of the "aria-describedby" characteristic for the "BasePromptInteraction" class

Table 5.9.11 Description of the "aria-flowsto" characteristic for the "BasePromptInteraction" class

Table 5.9.12 Description of the "aria-label" characteristic for the "BasePromptInteraction" class

Table 5.9.13 Description of the "aria-labelledby" characteristic for the "BasePromptInteraction" class

Table 5.9.14 Description of the "aria-level" characteristic for the "BasePromptInteraction" class

Table 5.9.15 Description of the "aria-live" characteristic for the "BasePromptInteraction" class

Table 5.9.16 Description of the "aria-orientation" characteristic for the "BasePromptInteraction" class

Table 5.9.17 Description of the "aria-owns" characteristic for the "BasePromptInteraction" class

Table 5.9.18 Description of the "dataExtension" characteristic for the "BasePromptInteraction" class

Table 5.9.19 Description of the "prompt" attribute for the "BasePromptInteraction" class

Table 5.10 BaseSequence class definitions

Table 5.10.1 Description of the "id" characteristic for the "BaseSequence" class

Table 5.10.2 Description of the "class" characteristic for the "BaseSequence" class

Table 5.10.3 Description of the "language" characteristic for the "BaseSequence" class

Table 5.10.4 Description of the "label" characteristic for the "BaseSequence" class

Table 5.10.5 Description of the "dir" characteristic for the "BaseSequence" class

Table 5.10.6 Description of the "role" characteristic for the "BaseSequence" class

Table 5.10.7 Description of the "aria-controls" characteristic for the "BaseSequence" class

Table 5.10.8 Description of the "aria-describedby" characteristic for the "BaseSequence" class

Table 5.10.9 Description of the "aria-flowto" characteristic for the "BaseSequence" class

Table 5.10.10 Description of the "aria-label" characteristic for the "BaseSequence" class

Table 5.10.11 Description of the "aria-labelledby" characteristic for the "BaseSequence" class

Table 5.10.12 Description of the "aria-level" characteristic for the "BaseSequence" class

Table 5.10.13 Description of the "aria-live" characteristic for the "BaseSequence" class

Table 5.10.14 Description of the "aria-orientation" characteristic for the "BaseSequence" class

Table 5.10.15 Description of the "aria-owns" characteristic for the "BaseSequence" class

Table 5.10.16 Description of the "dataExtension" characteristic for the "BaseSequence" class

Table 5.11 BaseSequenceFull class definitions

Table 5.11.1 Description of the "id" characteristic for the "BaseSequenceFull" class

Table 5.11.2 Description of the "class" characteristic for the "BaseSequenceFull" class

Table 5.11.3 Description of the "language" characteristic for the "BaseSequenceFull" class

Table 5.11.4 Description of the "label" characteristic for the "BaseSequenceFull" class

Table 5.11.5 Description of the "responseIdentifier" characteristic for the "BaseSequenceFull" class

Table 5.11.6 Description of the "base" characteristic for the "BaseSequenceFull" class

Table 5.11.7 Description of the "dir" characteristic for the "BaseSequenceFull" class

Table 5.11.8 Description of the "role" characteristic for the "BaseSequenceFull" class

Table 5.11.9 Description of the "aria-controls" characteristic for the "BaseSequenceFull" class

Table 5.11.10 Description of the "aria-describedby" characteristic for the "BaseSequenceFull" class

Table 5.11.11 Description of the "aria-flowto" characteristic for the "BaseSequenceFull" class

Table 5.11.12 Description of the "aria-label" characteristic for the "BaseSequenceFull" class

Table 5.11.13 Description of the "aria-labelledby" characteristic for the "BaseSequenceFull" class

Table 5.11.14 Description of the "aria-level" characteristic for the "BaseSequenceFull" class

Table 5.11.15 Description of the "aria-live" characteristic for the "BaseSequenceFull" class

Table 5.11.16 Description of the "aria-orientation" characteristic for the "BaseSequenceFull" class

Table 5.11.17 Description of the "aria-owns" characteristic for the "BaseSequenceFull" class

Table 5.11.18 Description of the "dataExtension" characteristic for the "BaseSequenceFull" class

Table 5.12 BaseSequenceRIdent class definitions

Table 5.12.1 Description of the "id" characteristic for the "BaseSequenceRIdent" class

Table 5.12.2 Description of the "class" characteristic for the "BaseSequenceRIdent" class

Table 5.12.3 Description of the "language" characteristic for the "BaseSequenceRIdent" class

Table 5.12.4 Description of the "label" characteristic for the "BaseSequenceRIdent" class

Table 5.12.5 Description of the "responseIdentifier" characteristic for the "BaseSequenceRIdent" class

Table 5.12.6 Description of the "dir" characteristic for the "BaseSequenceRIdent" class

Table 5.12.7 Description of the "role" characteristic for the "BaseSequenceRIdent" class

Table 5.12.8 Description of the "aria-controls" characteristic for the "BaseSequenceRIdent" class

Table 5.12.9 Description of the "aria-describedby" characteristic for the "BaseSequenceRIdent" class

Table 5.12.10 Description of the "aria-flowto" characteristic for the "BaseSequenceRIdent" class

Table 5.12.11 Description of the "aria-label" characteristic for the "BaseSequenceRIdent" class

Table 5.12.12 Description of the "aria-labelledby" characteristic for the "BaseSequenceRIdent" class

Table 5.12.13 Description of the "aria-level" characteristic for the "BaseSequenceRIdent" class

Table 5.12.14 Description of the "aria-live" characteristic for the "BaseSequenceRIdent" class

Table 5.12.15 Description of the "aria-orientation" characteristic for the "BaseSequenceRIdent" class

Table 5.12.16 Description of the "aria-owns" characteristic for the "BaseSequenceRIdent" class

Table 5.12.17 Description of the "dataExtension" characteristic for the "BaseSequenceRIdent" class

Table 5.13 BaseSequenceXBase class definitions

Table 5.13.1 Description of the "id" characteristic for the "BaseSequenceXBase" class

Table 5.13.2 Description of the "class" characteristic for the "BaseSequenceXBase" class

Table 5.13.3 Description of the "language" characteristic for the "BaseSequenceXBase" class

Table 5.13.4 Description of the "label" characteristic for the "BaseSequenceXBase" class

Table 5.13.5 Description of the "base" characteristic for the "BaseSequenceXBase" class

Table 5.13.6 Description of the "dir" characteristic for the "BaseSequenceXBase" class

Table 5.13.7 Description of the "role" characteristic for the "BaseSequenceXBase" class

Table 5.13.8 Description of the "aria-controls" characteristic for the "BaseSequenceXBase" class

Table 5.13.9 Description of the "aria-describedby" characteristic for the "BaseSequenceXBase" class

Table 5.13.10 Description of the "aria-flowto" characteristic for the "BaseSequenceXBase" class

Table 5.13.11 Description of the "aria-label" characteristic for the "BaseSequenceXBase" class

Table 5.13.12 Description of the "aria-labelledby" characteristic for the "BaseSequenceXBase" class

Table 5.13.13 Description of the "aria-level" characteristic for the "BaseSequenceXBase" class

Table 5.13.14 Description of the "aria-live" characteristic for the "BaseSequenceXBase" class

Table 5.13.15 Description of the "aria-orientation" characteristic for the "BaseSequenceXBase" class

Table 5.13.16 Description of the "aria-owns" characteristic for the "BaseSequenceXBase" class

Table 5.13.17 Description of the "dataExtension" characteristic for the "BaseSequenceXBase" class

Table 5.14 BlockQuote class definitions

Table 5.14.1 Description of the "cite" characteristic for the "BlockQuote" class

Table 5.14.2 Description of the "blockGroup" attribute for the "BlockQuote" class

Table 5.15 BranchRule class definitions

Table 5.15.1 Description of the "target" characteristic for the "BranchRule" class

Table 5.15.2 Description of the "logic" attribute for the "BranchRule" class

Table 5.16 Caption class definitions

Table 5.16.1 Description of the "inlineGroup" attribute for the "Caption" class

Table 5.17 ChoiceInteraction class definitions

Table 5.17.1 Description of the "shuffle" characteristic for the "ChoiceInteraction" class

Table 5.17.2 Description of the "maxChoices" characteristic for the "ChoiceInteraction" class

Table 5.17.3 Description of the "minChoices" characteristic for the "ChoiceInteraction" class

Table 5.17.4 Description of the "orientation" characteristic for the "ChoiceInteraction" class

Table 5.17.5 Description of the "simpleChoice" attribute for the "ChoiceInteraction" class

Table 5.18 Col class definitions

Table 5.18.1 Description of the "span" characteristic for the "Col" class

Table 5.19 ColGroup class definitions

Table 5.19.1 Description of the "span" characteristic for the "ColGroup" class

Table 5.19.2 Description of the "col" attribute for the "ColGroup" class

Table 5.20 CorrectResponse class definitions

Table 5.20.1 Description of the "interpretation" characteristic for the "CorrectResponse" class

Table 5.20.2 Description of the "value" attribute for the "CorrectResponse" class

Table 5.21 CustomInteraction class definitions

Table 5.21.1 Description of the "extension" characteristic for the "CustomInteraction" class

Table 5.21.2 Description of the "extension" attribute for the "CustomInteraction" class

Table 5.22 CustomOperator class definitions

Table 5.22.1 Description of the "class" characteristic for the "CustomOperator" class

Table 5.22.2 Description of the "definition" characteristic for the "CustomOperator" class

Table 5.22.3 Description of the "extension" characteristic for the "CustomOperator" class

Table 5.22.4 Description of the "logic" attribute for the "CustomOperator" class

Table 5.22.5 Description of the "extension" attribute for the "CustomOperator" class

Table 5.23 DD class definitions

Table 5.23.1 Description of the "flowGroup" attribute for the "DD" class

Table 5.24 DL class definitions

Table 5.24.1 Description of the "dlSelection" attribute for the "DL" class

Table 5.25 DT class definitions

Table 5.25.1 Description of the "inlineGroup" attribute for the "DT" class

Table 5.26 DefaultValue class definitions

Table 5.26.1 Description of the "interpretation" characteristic for the "DefaultValue" class

Table 5.26.2 Description of the "value" attribute for the "DefaultValue" class

Table 5.27 Div class definitions

Table 5.27.1 Description of the "divSelection" attribute for the "Div" class

Table 5.28 DrawingInteraction class definitions

Table 5.28.1 Description of the "object" attribute for the "DrawingInteraction" class

Table 5.29 EndAttemptInteraction class definitions

Table 5.29.1 Description of the "responseIdentifier" characteristic for the "EndAttemptInteraction" class

Table 5.29.2 Description of the "title" characteristic for the "EndAttemptInteraction" class

Table 5.29.3 Description of the "countAttempt" characteristic for the "EndAttemptInteraction" class

Table 5.30 Equal class definitions

Table 5.30.1 Description of the "toleranceMode" characteristic for the "Equal" class

Table 5.30.2 Description of the "tolerance" characteristic for the "Equal" class

Table 5.30.3 Description of the "includeLowerBound" characteristic for the "Equal" class

Table 5.30.4 Description of the "includeUpperBound" characteristic for the "Equal" class

Table 5.30.5 Description of the "logic" attribute for the "Equal" class

Table 5.31 EqualRounded class definitions

Table 5.31.1 Description of the "roundingMode" characteristic for the "EqualRounded" class

Table 5.31.2 Description of the "figures" characteristic for the "EqualRounded" class

Table 5.31.3 Description of the "logic" attribute for the "EqualRounded" class

Table 5.32 ExtendedTextInteraction class definitions

Table 5.32.1 Description of the "base" characteristic for the "ExtendedTextInteraction" class

Table 5.32.2 Description of the "stringIdentifier" characteristic for the "ExtendedTextInteraction" class

Table 5.32.3 Description of the "expectedLength" characteristic for the "ExtendedTextInteraction" class

Table 5.32.4 Description of the "patternMask" characteristic for the "ExtendedTextInteraction" class

Table 5.32.5 Description of the "placeholderText" characteristic for the "ExtendedTextInteraction" class

Table 5.32.6 Description of the "maxStrings" characteristic for the "ExtendedTextInteraction" class

Table 5.32.7 Description of the "minStrings" characteristic for the "ExtendedTextInteraction" class

Table 5.32.8 Description of the "expectedLines" characteristic for the "ExtendedTextInteraction" class

Table 5.32.9 Description of the "format" characteristic for the "ExtendedTextInteraction" class

Table 5.33 FeedbackBlock class definitions

Table 5.33.1 Description of the "outcomeIdentifier" characteristic for the "FeedbackBlock" class

Table 5.33.2 Description of the "identifier" characteristic for the "FeedbackBlock" class

Table 5.33.3 Description of the "showHide" characteristic for the "FeedbackBlock" class

Table 5.33.4 Description of the "feedbackBlockStatic" attribute for the "FeedbackBlock" class

Table 5.33.5 Description of the "stylesheet" attribute for the "FeedbackBlock" class

Table 5.33.6 Description of the "apipAccessibility" attribute for the "FeedbackBlock" class

Table 5.34 FeedbackInline class definitions

Table 5.34.1 Description of the "outcomeIdentifier" characteristic for the "FeedbackInline" class

Table 5.34.2 Description of the "identifier" characteristic for the "FeedbackInline" class

Table 5.34.3 Description of the "showHide" characteristic for the "FeedbackInline" class

Table 5.34.4 Description of the "feedbackInlineGroup" attribute for the "FeedbackInline" class

Table 5.35 FieldValue class definitions

Table 5.35.1 Description of the "fieldIdentifier" characteristic for the "FieldValue" class

Table 5.35.2 Description of the "logic" attribute for the "FieldValue" class

Table 5.36 Gap class definitions

Table 5.36.1 Description of the "identifier" characteristic for the "Gap" class

Table 5.36.2 Description of the "templateIdentifier" characteristic for the "Gap" class

Table 5.36.3 Description of the "showHide" characteristic for the "Gap" class

Table 5.36.4 Description of the "matchGroup" characteristic for the "Gap" class

Table 5.36.5 Description of the "required" characteristic for the "Gap" class

Table 5.37 GapImg class definitions

Table 5.37.1 Description of the "identifier" characteristic for the "GapImg" class

Table 5.37.2 Description of the "templateIdentifier" characteristic for the "GapImg" class

Table 5.37.3 Description of the "showHide" characteristic for the "GapImg" class

Table 5.37.4 Description of the "matchGroup" characteristic for the "GapImg" class

Table 5.37.5 Description of the "matchMax" characteristic for the "GapImg" class

Table 5.37.6 Description of the "matchMin" characteristic for the "GapImg" class

Table 5.37.7 Description of the "objectLabel" characteristic for the "GapImg" class

Table 5.37.8 Description of the "top" characteristic for the "GapImg" class

Table 5.37.9 Description of the "left" characteristic for the "GapImg" class

Table 5.37.10 Description of the "object" attribute for the "GapImg" class

Table 5.38 GapMatchInteraction class definitions

Table 5.38.1 Description of the "shuffle" characteristic for the "GapMatchInteraction" class

Table 5.38.2 Description of the "minAssociations" characteristic for the "GapMatchInteraction" class

Table 5.38.3 Description of the "maxAssociations" characteristic for the "GapMatchInteraction" class

Table 5.38.4 Description of the "gapChoice" attribute for the "GapMatchInteraction" class

Table 5.38.5 Description of the "blockStaticGroup" attribute for the "GapMatchInteraction" class

Table 5.39 GapText class definitions

Table 5.39.1 Description of the "identifier" characteristic for the "GapText" class

Table 5.39.2 Description of the "templateIdentifier" characteristic for the "GapText" class

Table 5.39.3 Description of the "showHide" characteristic for the "GapText" class

Table 5.39.4 Description of the "matchGroup" characteristic for the "GapText" class

Table 5.39.5 Description of the "matchMax" characteristic for the "GapText" class

Table 5.39.6 Description of the "matchMin" characteristic for the "GapText" class

Table 5.39.7 Description of the "inlineChoiceGroup" attribute for the "GapText" class

Table 5.40 GraphicAssociateInteraction class definitions

Table 5.40.1 Description of the "minAssociations" characteristic for the "GraphicAssociateInteraction" class

Table 5.40.2 Description of the "maxAssociations" characteristic for the "GraphicAssociateInteraction" class

Table 5.40.3 Description of the "object" attribute for the "GraphicAssociateInteraction" class

Table 5.40.4 Description of the "associableHotspot" attribute for the "GraphicAssociateInteraction" class

Table 5.41 GraphicGapMatchInteraction class definitions

Table 5.41.1 Description of the "minAssociations" characteristic for the "GraphicGapMatchInteraction" class

Table 5.41.2 Description of the "maxAssociations" characteristic for the "GraphicGapMatchInteraction" class

Table 5.41.3 Description of the "prompt" attribute for the "GraphicGapMatchInteraction" class

Table 5.41.4 Description of the "object" attribute for the "GraphicGapMatchInteraction" class

Table 5.41.5 Description of the "gapChoice" attribute for the "GraphicGapMatchInteraction" class

Table 5.41.6 Description of the "associableHotspot" attribute for the "GraphicGapMatchInteraction" class

Table 5.42 GraphicOrderInteraction class definitions

Table 5.42.1 Description of the "minChoices" characteristic for the "GraphicOrderInteraction" class

Table 5.42.2 Description of the "maxChoices" characteristic for the "GraphicOrderInteraction" class

Table 5.42.3 Description of the "prompt" attribute for the "GraphicOrderInteraction" class

Table 5.42.4 Description of the "object" attribute for the "GraphicOrderInteraction" class

Table 5.42.5 Description of the "hotspotChoice" attribute for the "GraphicOrderInteraction" class

Table 5.43 HR class definitions

Table 5.44 HTMLText class definitions

Table 5.44.1 Description of the "inlineGroup" attribute for the "HTMLText" class

Table 5.45 HotText class definitions

Table 5.45.1 Description of the "identifier" characteristic for the "HotText" class

Table 5.45.2 Description of the "templateIdentifier" characteristic for the "HotText" class

Table 5.45.3 Description of the "showHide" characteristic for the "HotText" class

Table 5.45.4 Description of the "inlineChoiceGroup" attribute for the "HotText" class

Table 5.46 HotTextInteraction class definitions

Table 5.46.1 Description of the "maxChoices" characteristic for the "HotTextInteraction" class

Table 5.46.2 Description of the "minChoices" characteristic for the "HotTextInteraction" class

Table 5.46.3 Description of the "blockStaticGroup" attribute for the "HotTextInteraction" class

Table 5.47 HotspotChoice class definitions

Table 5.47.1 Description of the "identifier" characteristic for the "HotspotChoice" class

Table 5.47.2 Description of the "templateIdentifier" characteristic for the "HotspotChoice" class

Table 5.47.3 Description of the "showHide" characteristic for the "HotspotChoice" class

Table 5.47.4 Description of the "shape" characteristic for the "HotspotChoice" class

Table 5.47.5 Description of the "coords" characteristic for the "HotspotChoice" class

Table 5.47.6 Description of the "hotspotLabel" characteristic for the "HotspotChoice" class

Table 5.48 HotspotInteraction class definitions

Table 5.48.1 Description of the "minChoices" characteristic for the "HotspotInteraction" class

Table 5.48.2 Description of the "maxChoices" characteristic for the "HotspotInteraction" class

Table 5.48.3 Description of the "object" attribute for the "HotspotInteraction" class

Table 5.48.4 Description of the "hotspotChoice" attribute for the "HotspotInteraction" class

Table 5.49 Img class definitions

Table 5.49.1 Description of the "src" characteristic for the "Img" class

Table 5.49.2 Description of the "alt" characteristic for the "Img" class

Table 5.49.3 Description of the "longdesc" characteristic for the "Img" class

Table 5.49.4 Description of the "height" characteristic for the "Img" class

Table 5.49.5 Description of the "width" characteristic for the "Img" class

Table 5.50 Index class definitions

Table 5.50.1 Description of the "n" characteristic for the "Index" class

Table 5.50.2 Description of the "logic" attribute for the "Index" class

Table 5.51 InfoControl class definitions

Table 5.51.1 Description of the "title" characteristic for the "InfoControl" class

Table 5.51.2 Description of the "flowStaticGroup" attribute for the "InfoControl" class

Table 5.52 InlineChoice class definitions

Table 5.52.1 Description of the "identifier" characteristic for the "InlineChoice" class

Table 5.52.2 Description of the "fixed" characteristic for the "InlineChoice" class

Table 5.52.3 Description of the "templateIdentifier" characteristic for the "InlineChoice" class

Table 5.52.4 Description of the "showHide" characteristic for the "InlineChoice" class

Table 5.52.5 Description of the "inlineChoiceGroup" attribute for the "InlineChoice" class

Table 5.53 InlineChoiceInteraction class definitions

Table 5.53.1 Description of the "shuffle" characteristic for the "InlineChoiceInteraction" class

Table 5.53.2 Description of the "required" characteristic for the "InlineChoiceInteraction" class

Table 5.53.3 Description of the "label" attribute for the "InlineChoiceInteraction" class

Table 5.53.4 Description of the "inlineChoice" attribute for the "InlineChoiceInteraction" class

Table 5.54 Inside class definitions

Table 5.54.1 Description of the "shape" characteristic for the "Inside" class

Table 5.54.2 Description of the "coords" characteristic for the "Inside" class

Table 5.54.3 Description of the "logic" attribute for the "Inside" class

Table 5.55 InterpolationTable class definitions

Table 5.55.1 Description of the "defaultValue" characteristic for the "InterpolationTable" class

Table 5.55.2 Description of the "interpolationTableEntry" attribute for the "InterpolationTable" class

Table 5.56 ItemBody class definitions

Table 5.56.1 Description of the "id" characteristic for the "ItemBody" class

Table 5.56.2 Description of the "class" characteristic for the "ItemBody" class

Table 5.56.3 Description of the "language" characteristic for the "ItemBody" class

Table 5.56.4 Description of the "label" characteristic for the "ItemBody" class

Table 5.56.5 Description of the "dir" characteristic for the "ItemBody" class

Table 5.56.6 Description of the "itemBodySelect" attribute for the "ItemBody" class

Table 5.57 LI class definitions

Table 5.57.1 Description of the "flowGroup" attribute for the "LI" class

Table 5.58 Label class definitions

Table 5.58.1 Description of the "inlineChoiceGroup" attribute for the "Label" class

Table 5.59 Logic0toMany class definitions

Table 5.59.1 Description of the "logic" attribute for the "Logic0toMany" class

Table 5.60 Logic1toMany class definitions

Table 5.60.1 Description of the "logic" attribute for the "Logic1toMany" class

Table 5.61 LogicPair class definitions

Table 5.61.1 Description of the "logic" attribute for the "LogicPair" class

Table 5.62 LogicSingle class definitions

Table 5.62.1 Description of the "logic" attribute for the "LogicSingle" class

Table 5.63 LookupOutcomeValue class definitions

Table 5.63.1 Description of the "identifier" characteristic for the "LookupOutcomeValue" class

Table 5.63.2 Description of the "expressionGroup" attribute for the "LookupOutcomeValue" class

Table 5.64 Mapping class definitions

Table 5.64.1 Description of the "lowerBound" characteristic for the "Mapping" class

Table 5.64.2 Description of the "upperBound" characteristic for the "Mapping" class

Table 5.64.3 Description of the "defaultValue" characteristic for the "Mapping" class

Table 5.64.4 Description of the "mapEntry" attribute for the "Mapping" class

Table 5.65 MatchInteraction class definitions

Table 5.65.1 Description of the "shuffle" characteristic for the "MatchInteraction" class

Table 5.65.2 Description of the "maxAssociations" characteristic for the "MatchInteraction" class

Table 5.65.3 Description of the "minAssociations" characteristic for the "MatchInteraction" class

Table 5.65.4 Description of the "simpleMatchSet" attribute for the "MatchInteraction" class

Table 5.66 MatchTable class definitions

Table 5.66.1 Description of the "defaultValue" characteristic for the "MatchTable" class

Table 5.66.2 Description of the "matchTableEntry" attribute for the "MatchTable" class

Table 5.67 MathOperator class definitions

Table 5.67.1 Description of the "name" characteristic for the "MathOperator" class

Table 5.67.2 Description of the "logic" attribute for the "MathOperator" class

Table 5.68 MediaInteraction class definitions

Table 5.68.1 Description of the "autostart" characteristic for the "MediaInteraction" class

Table 5.68.2 Description of the "minPlays" characteristic for the "MediaInteraction" class

Table 5.68.3 Description of the "maxPlays" characteristic for the "MediaInteraction" class

Table 5.68.4 Description of the "loop" characteristic for the "MediaInteraction" class

Table 5.68.5 Description of the "coords" characteristic for the "MediaInteraction" class

Table 5.68.6 Description of the "object" attribute for the "MediaInteraction" class

Table 5.68.7 Description of the "audio" attribute for the "MediaInteraction" class

Table 5.68.8 Description of the "video" attribute for the "MediaInteraction" class

Table 5.69 ModalFeedback class definitions

Table 5.69.1 Description of the "outcomeIdentifier" characteristic for the "ModalFeedback" class

Table 5.69.2 Description of the "showHide" characteristic for the "ModalFeedback" class

Table 5.69.3 Description of the "identifier" characteristic for the "ModalFeedback" class

Table 5.69.4 Description of the "title" characteristic for the "ModalFeedback" class

Table 5.69.5 Description of the "feedbackFlowStaticGroup" attribute for the "ModalFeedback" class

Table 5.69.6 Description of the "stylesheet" attribute for the "ModalFeedback" class

Table 5.69.7 Description of the "apipAccessibility" attribute for the "ModalFeedback" class

Table 5.70 NumericLogic1toMany class definitions

Table 5.70.1 Description of the "logic" attribute for the "NumericLogic1toMany" class

Table 5.71 OUL class definitions

Table 5.71.1 Description of the "li" attribute for the "OUL" class

Table 5.72 Object class definitions

Table 5.72.1 Description of the "data" characteristic for the "Object" class

Table 5.72.2 Description of the "type" characteristic for the "Object" class

Table 5.72.3 Description of the "width" characteristic for the "Object" class

Table 5.72.4 Description of the "height" characteristic for the "Object" class

Table 5.72.5 Description of the "objectFlowGroup" attribute for the "Object" class

Table 5.73 OrderInteraction class definitions

Table 5.73.1 Description of the "shuffle" characteristic for the "OrderInteraction" class

Table 5.73.2 Description of the "minChoices" characteristic for the "OrderInteraction" class

Table 5.73.3 Description of the "maxChoices" characteristic for the "OrderInteraction" class

Table 5.73.4 Description of the "orientation" characteristic for the "OrderInteraction" class

Table 5.73.5 Description of the "simpleChoice" attribute for the "OrderInteraction" class

Table 5.74 Ordering class definitions

Table 5.74.1 Description of the "shuffle" characteristic for the "Ordering" class

Table 5.74.2 Description of the "extension" characteristic for the "Ordering" class

Table 5.74.3 Description of the "extensions" attribute for the "Ordering" class

Table 5.75 OutcomeCondition class definitions

Table 5.75.1 Description of the "outcomeIf" attribute for the "OutcomeCondition" class

Table 5.75.2 Description of the "outcomeElseIf" attribute for the "OutcomeCondition" class

Table 5.75.3 Description of the "outcomeElse" attribute for the "OutcomeCondition" class

Table 5.76 OutcomeElse class definitions

Table 5.76.1 Description of the "outcomeRule" attribute for the "OutcomeElse" class

Table 5.77 OutcomeIf class definitions

Table 5.77.1 Description of the "expressionGroup" attribute for the "OutcomeIf" class

Table 5.77.2 Description of the "outcomeRule" attribute for the "OutcomeIf" class

Table 5.78 OutcomeProcessing class definitions

Table 5.78.1 Description of the "outcomeRule" attribute for the "OutcomeProcessing" class

Table 5.79 OutcomeProcessingFragment class definitions

Table 5.79.1 Description of the "outcomeRule" attribute for the "OutcomeProcessingFragment" class

Table 5.80 PatternMatch class definitions

Table 5.80.1 Description of the "pattern" characteristic for the "PatternMatch" class

Table 5.80.2 Description of the "logic" attribute for the "PatternMatch" class

Table 5.81 PositionObjectInteraction class definitions

Table 5.81.1 Description of the "centerPoint" characteristic for the "PositionObjectInteraction" class

Table 5.81.2 Description of the "minChoices" characteristic for the "PositionObjectInteraction" class

Table 5.81.3 Description of the "maxChoices" characteristic for the "PositionObjectInteraction" class

Table 5.81.4 Description of the "object" attribute for the "PositionObjectInteraction" class

Table 5.82 PositionObjectStage class definitions

Table 5.82.1 Description of the "id" characteristic for the "PositionObjectStage" class

Table 5.82.2 Description of the "object" attribute for the "PositionObjectStage" class

Table 5.82.3 Description of the "positionObjectInteraction" attribute for the "PositionObjectStage" class

Table 5.83 Prompt class definitions

Table 5.83.1 Description of the "promptStaticGroup" attribute for the "Prompt" class

Table 5.84 Q class definitions

Table 5.84.1 Description of the "cite" characteristic for the "Q" class

Table 5.84.2 Description of the "inlineGroup" attribute for the "Q" class

Table 5.85 Repeat class definitions

Table 5.85.1 Description of the "numberRepeats" characteristic for the "Repeat" class

Table 5.85.2 Description of the "logic" attribute for the "Repeat" class

Table 5.86 ResponseCondition class definitions

Table 5.86.1 Description of the "responseIf" attribute for the "ResponseCondition" class

Table 5.86.2 Description of the "responseElseIf" attribute for the "ResponseCondition" class

Table 5.86.3 Description of the "responseElse" attribute for the "ResponseCondition" class

Table 5.87 ResponseDeclaration class definitions

Table 5.87.1 Description of the "identifier" characteristic for the "ResponseDeclaration" class

Table 5.87.2 Description of the "cardinality" characteristic for the "ResponseDeclaration" class

Table 5.87.3 Description of the "baseType" characteristic for the "ResponseDeclaration" class

Table 5.87.4 Description of the "defaultValue" attribute for the "ResponseDeclaration" class

Table 5.87.5 Description of the "correctResponse" attribute for the "ResponseDeclaration" class

Table 5.87.6 Description of the "mapping" attribute for the "ResponseDeclaration" class

Table 5.87.7 Description of the "areaMapping" attribute for the "ResponseDeclaration" class

Table 5.88 ResponseElse class definitions

Table 5.88.1 Description of the "responseRuleGroup" attribute for the "ResponseElse" class

Table 5.89 ResponseIf class definitions

Table 5.89.1 Description of the "expressionGroup" attribute for the "ResponseIf" class

Table 5.89.2 Description of the "responseRuleGroup" attribute for the "ResponseIf" class

Table 5.90 ResponseProcessingFragment class definitions

Table 5.90.1 Description of the "responseRuleGroup" attribute for the "ResponseProcessingFragment" class

Table 5.91 RoundTo class definitions

Table 5.91.1 Description of the "roundingMode" characteristic for the "RoundTo" class

Table 5.91.2 Description of the "figures" characteristic for the "RoundTo" class

Table 5.91.3 Description of the "logic" attribute for the "RoundTo" class

Table 5.92 RubricBlock class definitions

Table 5.92.1 Description of the "use" characteristic for the "RubricBlock" class

Table 5.92.2 Description of the "view" characteristic for the "RubricBlock" class

Table 5.92.3 Description of the "contentModel" attribute for the "RubricBlock" class

Table 5.92.4 Description of the "stylesheet" attribute for the "RubricBlock" class

Table 5.92.5 Description of the "apipAccessibility" attribute for the "RubricBlock" class

Table 5.93 RubricBlockTemplateBlock class definitions

Table 5.93.1 Description of the "templateIdentifier" characteristic for the "RubricBlockTemplateBlock" class

Table 5.93.2 Description of the "showHide" characteristic for the "RubricBlockTemplateBlock" class

Table 5.93.3 Description of the "identifier" characteristic for the "RubricBlockTemplateBlock" class

Table 5.93.4 Description of the "rtBlockContentModel" attribute for the "RubricBlockTemplateBlock" class

Table 5.93.5 Description of the "stylesheet" attribute for the "RubricBlockTemplateBlock" class

Table 5.93.6 Description of the "apipAccessibility" attribute for the "RubricBlockTemplateBlock" class

Table 5.94 RubricBlockTemplateInline class definitions

Table 5.94.1 Description of the "templateIdentifier" characteristic for the "RubricBlockTemplateInline" class

Table 5.94.2 Description of the "showHide" characteristic for the "RubricBlockTemplateInline" class

Table 5.94.3 Description of the "identifier" characteristic for the "RubricBlockTemplateInline" class

Table 5.94.4 Description of the "rtInlineStaticGroup" attribute for the "RubricBlockTemplateInline" class

Table 5.95 SelectPointInteraction class definitions

Table 5.95.1 Description of the "minChoices" characteristic for the "SelectPointInteraction" class

Table 5.95.2 Description of the "maxChoices" characteristic for the "SelectPointInteraction" class

Table 5.95.3 Description of the "object" attribute for the "SelectPointInteraction" class

Table 5.96 Selection class definitions

Table 5.96.1 Description of the "select" characteristic for the "Selection" class

Table 5.96.2 Description of the "withReplacement" characteristic for the "Selection" class

Table 5.96.3 Description of the "extension" characteristic for the "Selection" class

Table 5.96.4 Description of the "extensions" attribute for the "Selection" class

Table 5.97 SetValue class definitions

Table 5.97.1 Description of the "identifier" characteristic for the "SetValue" class

Table 5.97.2 Description of the "expressionGroup" attribute for the "SetValue" class

Table 5.98 SimpleAssociableChoice class definitions

Table 5.98.1 Description of the "identifier" characteristic for the "SimpleAssociableChoice" class

Table 5.98.2 Description of the "fixed" characteristic for the "SimpleAssociableChoice" class

Table 5.98.3 Description of the "templateIdentifier" characteristic for the "SimpleAssociableChoice" class

Table 5.98.4 Description of the "showHide" characteristic for the "SimpleAssociableChoice" class

Table 5.98.5 Description of the "matchGroup" characteristic for the "SimpleAssociableChoice" class

Table 5.98.6 Description of the "matchMax" characteristic for the "SimpleAssociableChoice" class

Table 5.98.7 Description of the "matchMin" characteristic for the "SimpleAssociableChoice" class

Table 5.98.8 Description of the "flowStaticGroup" attribute for the "SimpleAssociableChoice" class

Table 5.99 SimpleChoice class definitions

Table 5.99.1 Description of the "identifier" characteristic for the "SimpleChoice" class

Table 5.99.2 Description of the "fixed" characteristic for the "SimpleChoice" class

Table 5.99.3 Description of the "templateIdentifier" characteristic for the "SimpleChoice" class

Table 5.99.4 Description of the "showHide" characteristic for the "SimpleChoice" class

Table 5.99.5 Description of the "flowStaticGroup" attribute for the "SimpleChoice" class

Table 5.100 SimpleMatchSet class definitions

Table 5.100.1 Description of the "id" characteristic for the "SimpleMatchSet" class

Table 5.100.2 Description of the "simpleAssociableChoice" attribute for the "SimpleMatchSet" class

Table 5.101 SliderInteraction class definitions

Table 5.101.1 Description of the "lowerBound" characteristic for the "SliderInteraction" class

Table 5.101.2 Description of the "upperBound" characteristic for the "SliderInteraction" class

Table 5.101.3 Description of the "step" characteristic for the "SliderInteraction" class

Table 5.101.4 Description of the "stepLabel" characteristic for the "SliderInteraction" class

Table 5.101.5 Description of the "orientation" characteristic for the "SliderInteraction" class

Table 5.101.6 Description of the "reverse" characteristic for the "SliderInteraction" class

Table 5.102 StatsOperator class definitions

Table 5.102.1 Description of the "name" characteristic for the "StatsOperator" class

Table 5.102.2 Description of the "logic" attribute for the "StatsOperator" class

Table 5.103 StimulusBody class definitions

Table 5.103.1 Description of the "blockGroup" attribute for the "StimulusBody" class

Table 5.104 StringMatch class definitions

Table 5.104.1 Description of the "caseSensitive" characteristic for the "StringMatch" class

Table 5.104.2 Description of the "substring" characteristic for the "StringMatch" class

Table 5.104.3 Description of the "logic" attribute for the "StringMatch" class

Table 5.105 Substring class definitions

Table 5.105.1 Description of the "caseSensitive" characteristic for the "Substring" class

Table 5.105.2 Description of the "logic" attribute for the "Substring" class

Table 5.106 TDH class definitions

Table 5.106.1 Description of the "headers" characteristic for the "TDH" class

Table 5.106.2 Description of the "scope" characteristic for the "TDH" class

Table 5.106.3 Description of the "abbr" characteristic for the "TDH" class

Table 5.106.4 Description of the "axis" characteristic for the "TDH" class

Table 5.106.5 Description of the "rowspan" characteristic for the "TDH" class

Table 5.106.6 Description of the "colspan" characteristic for the "TDH" class

Table 5.106.7 Description of the "align" characteristic for the "TDH" class

Table 5.106.8 Description of the "valign" characteristic for the "TDH" class

Table 5.106.9 Description of the "flowGroup" attribute for the "TDH" class

Table 5.107 TR class definitions

Table 5.107.1 Description of the "tableCellGroup" attribute for the "TR" class

Table 5.108 Table class definitions

Table 5.108.1 Description of the "summary" characteristic for the "Table" class

Table 5.108.2 Description of the "caption" attribute for the "Table" class

Table 5.108.3 Description of the "col" attribute for the "Table" class

Table 5.108.4 Description of the "colgroup" attribute for the "Table" class

Table 5.108.5 Description of the "thead" attribute for the "Table" class

Table 5.108.6 Description of the "tfoot" attribute for the "Table" class

Table 5.108.7 Description of the "tbody" attribute for the "Table" class

Table 5.109 TablePart class definitions

Table 5.109.1 Description of the "tr" attribute for the "TablePart" class

Table 5.110 TemplateBlock class definitions

Table 5.110.1 Description of the "templateIdentifier" characteristic for the "TemplateBlock" class

Table 5.110.2 Description of the "showHide" characteristic for the "TemplateBlock" class

Table 5.110.3 Description of the "identifier" characteristic for the "TemplateBlock" class

Table 5.110.4 Description of the "fatBlockStatic" attribute for the "TemplateBlock" class

Table 5.110.5 Description of the "stylesheet" attribute for the "TemplateBlock" class

Table 5.110.6 Description of the "apipAccessibility" attribute for the "TemplateBlock" class

Table 5.111 TemplateBlockFeedbackBlock class definitions

Table 5.111.1 Description of the "outcomeIdentifier" characteristic for the "TemplateBlockFeedbackBlock" class

Table 5.111.2 Description of the "showHide" characteristic for the "TemplateBlockFeedbackBlock" class

Table 5.111.3 Description of the "identifier" characteristic for the "TemplateBlockFeedbackBlock" class

Table 5.111.4 Description of the "fatBlockStatic" attribute for the "TemplateBlockFeedbackBlock" class

Table 5.111.5 Description of the "stylesheet" attribute for the "TemplateBlockFeedbackBlock" class

Table 5.111.6 Description of the "apipAccessibility" attribute for the "TemplateBlockFeedbackBlock" class

Table 5.112 TemplateCondition class definitions

Table 5.112.1 Description of the "templateIf" attribute for the "TemplateCondition" class

Table 5.112.2 Description of the "templateElseIf" attribute for the "TemplateCondition" class

Table 5.112.3 Description of the "templateElse" attribute for the "TemplateCondition" class

Table 5.113 TemplateConstraint class definitions

Table 5.113.1 Description of the "expressionGroup" attribute for the "TemplateConstraint" class

Table 5.114 TemplateDeclaration class definitions

Table 5.114.1 Description of the "identifier" characteristic for the "TemplateDeclaration" class

Table 5.114.2 Description of the "cardinality" characteristic for the "TemplateDeclaration" class

Table 5.114.3 Description of the "baseType" characteristic for the "TemplateDeclaration" class

Table 5.114.4 Description of the "paramVariable" characteristic for the "TemplateDeclaration" class

Table 5.114.5 Description of the "mathVariable" characteristic for the "TemplateDeclaration" class

Table 5.114.6 Description of the "defaultValue" attribute for the "TemplateDeclaration" class

Table 5.115 TemplateDefault class definitions

Table 5.115.1 Description of the "templateIdentifier" characteristic for the "TemplateDefault" class

Table 5.115.2 Description of the "expressionGroup" attribute for the "TemplateDefault" class

Table 5.116 TemplateElse class definitions

Table 5.116.1 Description of the "templateRuleGroup" attribute for the "TemplateElse" class

Table 5.117 TemplateIf class definitions

Table 5.117.1 Description of the "expressionGroup" attribute for the "TemplateIf" class

Table 5.117.2 Description of the "templateRuleGroup" attribute for the "TemplateIf" class

Table 5.118 TemplateInline class definitions

Table 5.118.1 Description of the "templateIdentifier" characteristic for the "TemplateInline" class

Table 5.118.2 Description of the "showHide" characteristic for the "TemplateInline" class

Table 5.118.3 Description of the "identifier" characteristic for the "TemplateInline" class

Table 5.118.4 Description of the "inlineStaticGroup" attribute for the "TemplateInline" class

Table 5.119 TemplateProcessing class definitions

Table 5.119.1 Description of the "templateRuleGroup" attribute for the "TemplateProcessing" class

Table 5.120 TestFeedback class definitions

Table 5.120.1 Description of the "access" characteristic for the "TestFeedback" class

Table 5.120.2 Description of the "outcomeIdentifier" characteristic for the "TestFeedback" class

Table 5.120.3 Description of the "showHide" characteristic for the "TestFeedback" class

Table 5.120.4 Description of the "identifier" characteristic for the "TestFeedback" class

Table 5.120.5 Description of the "title" characteristic for the "TestFeedback" class

Table 5.120.6 Description of the "feedbackFlowStaticGroup" attribute for the "TestFeedback" class

Table 5.120.7 Description of the "stylesheet" attribute for the "TestFeedback" class

Table 5.120.8 Description of the "apipAccessibility" attribute for the "TestFeedback" class

Table 5.121 TestPart class definitions

Table 5.121.1 Description of the "identifier" characteristic for the "TestPart" class

Table 5.121.2 Description of the "navigationMode" characteristic for the "TestPart" class

Table 5.121.3 Description of the "submissionMode" characteristic for the "TestPart" class

Table 5.121.4 Description of the "preCondition" attribute for the "TestPart" class

Table 5.121.5 Description of the "branchRule" attribute for the "TestPart" class

Table 5.121.6 Description of the "itemSessionControl" attribute for the "TestPart" class

Table 5.121.7 Description of the "timeLimits" attribute for the "TestPart" class

Table 5.121.8 Description of the "assessmentSectionSelection" attribute for the "TestPart" class

Table 5.121.9 Description of the "testFeedback" attribute for the "TestPart" class

Table 5.122 TextEntryInteraction class definitions

Table 5.122.1 Description of the "responseIdentifier" characteristic for the "TextEntryInteraction" class

Table 5.122.2 Description of the "base" characteristic for the "TextEntryInteraction" class

Table 5.122.3 Description of the "stringIdentifier" characteristic for the "TextEntryInteraction" class

Table 5.122.4 Description of the "expectedLength" characteristic for the "TextEntryInteraction" class

Table 5.122.5 Description of the "patternMask" characteristic for the "TextEntryInteraction" class

Table 5.122.6 Description of the "placeholderText" characteristic for the "TextEntryInteraction" class

Table 5.122.7 Description of the "format" characteristic for the "TextEntryInteraction" class

Table 5.123 UploadInteraction class definitions

Table 5.123.1 Description of the "type" characteristic for the "UploadInteraction" class

Table 6.1 AssessmentSectionSelection class definitions

Table 6.1.1 Description of the "assessmentSection" attribute for the "AssessmentSectionSelection" class

Table 6.1.2 Description of the "assessmentSectionRef" attribute for the "AssessmentSectionSelection" class

Table 6.2 BlockContentModel class definitions

Table 6.2.1 Description of the "pre" attribute for the "BlockContentModel" class

Table 6.2.2 Description of the "h1" attribute for the "BlockContentModel" class

Table 6.2.3 Description of the "h2" attribute for the "BlockContentModel" class

Table 6.2.4 Description of the "h3" attribute for the "BlockContentModel" class

Table 6.2.5 Description of the "h4" attribute for the "BlockContentModel" class

Table 6.2.6 Description of the "h5" attribute for the "BlockContentModel" class

Table 6.2.7 Description of the "h6" attribute for the "BlockContentModel" class

Table 6.2.8 Description of the "p" attribute for the "BlockContentModel" class

Table 6.2.9 Description of the "address" attribute for the "BlockContentModel" class

Table 6.2.10 Description of the "dl" attribute for the "BlockContentModel" class

Table 6.2.11 Description of the "ol" attribute for the "BlockContentModel" class

Table 6.2.12 Description of the "ul" attribute for the "BlockContentModel" class

Table 6.2.13 Description of the "hr" attribute for the "BlockContentModel" class

Table 6.2.14 Description of the "blockquote" attribute for the "BlockContentModel" class

Table 6.2.15 Description of the "table" attribute for the "BlockContentModel" class

Table 6.2.16 Description of the "div" attribute for the "BlockContentModel" class

Table 6.2.17 Description of the "article" attribute for the "BlockContentModel" class

Table 6.2.18 Description of the "aside" attribute for the "BlockContentModel" class

Table 6.2.19 Description of the "audio" attribute for the "BlockContentModel" class

Table 6.2.20 Description of the "figure" attribute for the "BlockContentModel" class

Table 6.2.21 Description of the "footer" attribute for the "BlockContentModel" class

Table 6.2.22 Description of the "header" attribute for the "BlockContentModel" class

Table 6.2.23 Description of the "nav" attribute for the "BlockContentModel" class

Table 6.2.24 Description of the "section" attribute for the "BlockContentModel" class

Table 6.2.25 Description of the "video" attribute for the "BlockContentModel" class

Table 6.3 BlockGroup class definitions

Table 6.3.1 Description of the "positionObjectStage" attribute for the "BlockGroup" class

Table 6.3.2 Description of the "customInteraction" attribute for the "BlockGroup" class

Table 6.3.3 Description of the "drawingInteraction" attribute for the "BlockGroup" class

Table 6.3.4 Description of the "gapMatchInteraction" attribute for the "BlockGroup" class

Table 6.3.5 Description of the "matchInteraction" attribute for the "BlockGroup" class

Table 6.3.6 Description of the "graphicGapMatchInteraction" attribute for the "BlockGroup" class

Table 6.3.7 Description of the "hotspotInteraction" attribute for the "BlockGroup" class

Table 6.3.8 Description of the "graphicOrderInteraction" attribute for the "BlockGroup" class

Table 6.3.9 Description of the "selectPointInteraction" attribute for the "BlockGroup" class

Table 6.3.10 Description of the "graphicAssociateInteraction" attribute for the "BlockGroup" class

Table 6.3.11 Description of the "sliderInteraction" attribute for the "BlockGroup" class

Table 6.3.12 Description of the "choiceInteraction" attribute for the "BlockGroup" class

Table 6.3.13 Description of the "mediaInteraction" attribute for the "BlockGroup" class

Table 6.3.14 Description of the "hottextInteraction" attribute for the "BlockGroup" class

Table 6.3.15 Description of the "orderInteraction" attribute for the "BlockGroup" class

Table 6.3.16 Description of the "extendedTextInteraction" attribute for the "BlockGroup" class

Table 6.3.17 Description of the "uploadInteraction" attribute for the "BlockGroup" class

Table 6.3.18 Description of the "associateInteraction" attribute for the "BlockGroup" class

Table 6.3.19 Description of the "feedbackBlock" attribute for the "BlockGroup" class

Table 6.3.20 Description of the "templateBlock" attribute for the "BlockGroup" class

Table 6.3.21 Description of the "infoControl" attribute for the "BlockGroup" class

Table 6.3.22 Description of the "math" attribute for the "BlockGroup" class

Table 6.3.23 Description of the "math" attribute for the "BlockGroup" class

Table 6.3.24 Description of the "include" attribute for the "BlockGroup" class

Table 6.3.25 Description of the "blockContentModel" attribute for the "BlockGroup" class

Table 6.4 BlockStaticGroup class definitions

Table 6.4.1 Description of the "feedbackBlock" attribute for the "BlockStaticGroup" class

Table 6.4.2 Description of the "templateBlock" attribute for the "BlockStaticGroup" class

Table 6.4.3 Description of the "math" attribute for the "BlockStaticGroup" class

Table 6.4.4 Description of the "math" attribute for the "BlockStaticGroup" class

Table 6.4.5 Description of the "include" attribute for the "BlockStaticGroup" class

Table 6.4.6 Description of the "blockContentModel" attribute for the "BlockStaticGroup" class

Table 6.5 DLSelection class definitions

Table 6.5.1 Description of the "dd" attribute for the "DLSelection" class

Table 6.5.2 Description of the "dt" attribute for the "DLSelection" class

Table 6.6 DivSelection class definitions

Table 6.6.1 Description of the "positionObjectStage" attribute for the "DivSelection" class

Table 6.6.2 Description of the "flowGroup" attribute for the "DivSelection" class

Table 6.7 ExpressionGroup class definitions

Table 6.7.1 Description of the "and" attribute for the "ExpressionGroup" class

Table 6.7.2 Description of the "gt" attribute for the "ExpressionGroup" class

Table 6.7.3 Description of the "not" attribute for the "ExpressionGroup" class

Table 6.7.4 Description of the "lt" attribute for the "ExpressionGroup" class

Table 6.7.5 Description of the "gte" attribute for the "ExpressionGroup" class

Table 6.7.6 Description of the "lte" attribute for the "ExpressionGroup" class

Table 6.7.7 Description of the "or" attribute for the "ExpressionGroup" class

Table 6.7.8 Description of the "sum" attribute for the "ExpressionGroup" class

Table 6.7.9 Description of the "durationLT" attribute for the "ExpressionGroup" class

Table 6.7.10 Description of the "durationGTE" attribute for the "ExpressionGroup" class

Table 6.7.11 Description of the "subtract" attribute for the "ExpressionGroup" class

Table 6.7.12 Description of the "divide" attribute for the "ExpressionGroup" class

Table 6.7.13 Description of the "multiple" attribute for the "ExpressionGroup" class

Table 6.7.14 Description of the "ordered" attribute for the "ExpressionGroup" class

Table 6.7.15 Description of the "customOperator" attribute for the "ExpressionGroup" class

Table 6.7.16 Description of the "random" attribute for the "ExpressionGroup" class

Table 6.7.17 Description of the "numberIncorrect" attribute for the "ExpressionGroup" class

Table 6.7.18 Description of the "numberCorrect" attribute for the "ExpressionGroup" class

Table 6.7.19 Description of the "numberPresented" attribute for the "ExpressionGroup" class

Table 6.7.20 Description of the "numberResponded" attribute for the "ExpressionGroup" class

Table 6.7.21 Description of the "numberSelected" attribute for the "ExpressionGroup" class

Table 6.7.22 Description of the "substring" attribute for the "ExpressionGroup" class

Table 6.7.23 Description of the "equalRounded" attribute for the "ExpressionGroup" class

Table 6.7.24 Description of the "null" attribute for the "ExpressionGroup" class

Table 6.7.25 Description of the "delete" attribute for the "ExpressionGroup" class

Table 6.7.26 Description of the "match" attribute for the "ExpressionGroup" class

Table 6.7.27 Description of the "index" attribute for the "ExpressionGroup" class

Table 6.7.28 Description of the "power" attribute for the "ExpressionGroup" class

Table 6.7.29 Description of the "equal" attribute for the "ExpressionGroup" class

Table 6.7.30 Description of the "contains" attribute for the "ExpressionGroup" class

Table 6.7.31 Description of the "containerSize" attribute for the "ExpressionGroup" class

Table 6.7.32 Description of the "correct" attribute for the "ExpressionGroup" class

Table 6.7.33 Description of the "default" attribute for the "ExpressionGroup" class

Table 6.7.34 Description of the "anyN" attribute for the "ExpressionGroup" class

Table 6.7.35 Description of the "integerDivide" attribute for the "ExpressionGroup" class

Table 6.7.36 Description of the "integerModulus" attribute for the "ExpressionGroup" class

Table 6.7.37 Description of the "isNull" attribute for the "ExpressionGroup" class

Table 6.7.38 Description of the "member" attribute for the "ExpressionGroup" class

Table 6.7.39 Description of the "product" attribute for the "ExpressionGroup" class

Table 6.7.40 Description of the "round" attribute for the "ExpressionGroup" class

Table 6.7.41 Description of the "truncate" attribute for the "ExpressionGroup" class

Table 6.7.42 Description of the "fieldValue" attribute for the "ExpressionGroup" class

Table 6.7.43 Description of the "randomInteger" attribute for the "ExpressionGroup" class

Table 6.7.44 Description of the "randomFloat" attribute for the "ExpressionGroup" class

Table 6.7.45 Description of the "variable" attribute for the "ExpressionGroup" class

Table 6.7.46 Description of the "outcomeMinimum" attribute for the "ExpressionGroup" class

Table 6.7.47 Description of the "outcomeMaximum" attribute for the "ExpressionGroup" class

Table 6.7.48 Description of the "testVariables" attribute for the "ExpressionGroup" class

Table 6.7.49 Description of the "integerToFloat" attribute for the "ExpressionGroup" class

Table 6.7.50 Description of the "inside" attribute for the "ExpressionGroup" class

Table 6.7.51 Description of the "baseValue" attribute for the "ExpressionGroup" class

Table 6.7.52 Description of the "patternMatch" attribute for the "ExpressionGroup" class

Table 6.7.53 Description of the "mapResponsePoint" attribute for the "ExpressionGroup" class

Table 6.7.54 Description of the "mapResponse" attribute for the "ExpressionGroup" class

Table 6.7.55 Description of the "stringMatch" attribute for the "ExpressionGroup" class

Table 6.7.56 Description of the "repeat" attribute for the "ExpressionGroup" class

Table 6.7.57 Description of the "roundTo" attribute for the "ExpressionGroup" class

Table 6.7.58 Description of the "lcm" attribute for the "ExpressionGroup" class

Table 6.7.59 Description of the "gcd" attribute for the "ExpressionGroup" class

Table 6.7.60 Description of the "min" attribute for the "ExpressionGroup" class

Table 6.7.61 Description of the "max" attribute for the "ExpressionGroup" class

Table 6.7.62 Description of the "mathConstant" attribute for the "ExpressionGroup" class

Table 6.7.63 Description of the "statsOperator" attribute for the "ExpressionGroup" class

Table 6.7.64 Description of the "mathOperator" attribute for the "ExpressionGroup" class

Table 6.8 FeedandTempBlockStatic class definitions

Table 6.8.1 Description of the "flowContentModel" attribute for the "FeedandTempBlockStatic" class

Table 6.8.2 Description of the "math" attribute for the "FeedandTempBlockStatic" class

Table 6.8.3 Description of the "math" attribute for the "FeedandTempBlockStatic" class

Table 6.8.4 Description of the "include" attribute for the "FeedandTempBlockStatic" class

Table 6.8.5 Description of the "templateBlock" attribute for the "FeedandTempBlockStatic" class

Table 6.8.6 Description of the "templateInline" attribute for the "FeedandTempBlockStatic" class

Table 6.8.7 Description of the "feedbackBlock" attribute for the "FeedandTempBlockStatic" class

Table 6.8.8 Description of the "feedbackInline" attribute for the "FeedandTempBlockStatic" class

Table 6.8.9 Description of the "printedVariable" attribute for the "FeedandTempBlockStatic" class

Table 6.9 FeedbackBlockStatic class definitions

Table 6.9.1 Description of the "blockGroup" attribute for the "FeedbackBlockStatic" class

Table 6.9.2 Description of the "inlineContentModel" attribute for the "FeedbackBlockStatic" class

Table 6.9.3 Description of the "templateInline" attribute for the "FeedbackBlockStatic" class

Table 6.9.4 Description of the "feedbackInline" attribute for the "FeedbackBlockStatic" class

Table 6.9.5 Description of the "printedVariable" attribute for the "FeedbackBlockStatic" class

Table 6.10 FeedbackFlowStaticGroup class definitions

Table 6.10.1 Description of the "printedVariable" attribute for the "FeedbackFlowStaticGroup" class

Table 6.10.2 Description of the "hottext" attribute for the "FeedbackFlowStaticGroup" class

Table 6.10.3 Description of the "templateInline" attribute for the "FeedbackFlowStaticGroup" class

Table 6.10.4 Description of the "templateBlock" attribute for the "FeedbackFlowStaticGroup" class

Table 6.10.5 Description of the "math" attribute for the "FeedbackFlowStaticGroup" class

Table 6.10.6 Description of the "math" attribute for the "FeedbackFlowStaticGroup" class

Table 6.10.7 Description of the "include" attribute for the "FeedbackFlowStaticGroup" class

Table 6.10.8 Description of the "flowContentModel" attribute for the "FeedbackFlowStaticGroup" class

Table 6.11 FeedbackInlineGroup class definitions

Table 6.11.1 Description of the "inlineContentModel" attribute for the "FeedbackInlineGroup" class

Table 6.11.2 Description of the "math" attribute for the "FeedbackInlineGroup" class

Table 6.11.3 Description of the "math" attribute for the "FeedbackInlineGroup" class

Table 6.11.4 Description of the "include" attribute for the "FeedbackInlineGroup" class

Table 6.11.5 Description of the "templateInline" attribute for the "FeedbackInlineGroup" class

Table 6.11.6 Description of the "printedVariable" attribute for the "FeedbackInlineGroup" class

Table 6.12 FlowContentModel class definitions

Table 6.12.1 Description of the "pre" attribute for the "FlowContentModel" class

Table 6.12.2 Description of the "h1" attribute for the "FlowContentModel" class

Table 6.12.3 Description of the "h2" attribute for the "FlowContentModel" class

Table 6.12.4 Description of the "h3" attribute for the "FlowContentModel" class

Table 6.12.5 Description of the "h4" attribute for the "FlowContentModel" class

Table 6.12.6 Description of the "h5" attribute for the "FlowContentModel" class

Table 6.12.7 Description of the "h6" attribute for the "FlowContentModel" class

Table 6.12.8 Description of the "p" attribute for the "FlowContentModel" class

Table 6.12.9 Description of the "address" attribute for the "FlowContentModel" class

Table 6.12.10 Description of the "dl" attribute for the "FlowContentModel" class

Table 6.12.11 Description of the "ol" attribute for the "FlowContentModel" class

Table 6.12.12 Description of the "ul" attribute for the "FlowContentModel" class

Table 6.12.13 Description of the "br" attribute for the "FlowContentModel" class

Table 6.12.14 Description of the "hr" attribute for the "FlowContentModel" class

Table 6.12.15 Description of the "img" attribute for the "FlowContentModel" class

Table 6.12.16 Description of the "object" attribute for the "FlowContentModel" class

Table 6.12.17 Description of the "blockquote" attribute for the "FlowContentModel" class

Table 6.12.18 Description of the "em" attribute for the "FlowContentModel" class

Table 6.12.19 Description of the "a" attribute for the "FlowContentModel" class

Table 6.12.20 Description of the "code" attribute for the "FlowContentModel" class

Table 6.12.21 Description of the "span" attribute for the "FlowContentModel" class

Table 6.12.22 Description of the "sub" attribute for the "FlowContentModel" class

Table 6.12.23 Description of the "acronym" attribute for the "FlowContentModel" class

Table 6.12.24 Description of the "big" attribute for the "FlowContentModel" class

Table 6.12.25 Description of the "tt" attribute for the "FlowContentModel" class

Table 6.12.26 Description of the "kbd" attribute for the "FlowContentModel" class

Table 6.12.27 Description of the "q" attribute for the "FlowContentModel" class

Table 6.12.28 Description of the "i" attribute for the "FlowContentModel" class

Table 6.12.29 Description of the "dfn" attribute for the "FlowContentModel" class

Table 6.12.30 Description of the "abbr" attribute for the "FlowContentModel" class

Table 6.12.31 Description of the "strong" attribute for the "FlowContentModel" class

Table 6.12.32 Description of the "sup" attribute for the "FlowContentModel" class

Table 6.12.33 Description of the "var" attribute for the "FlowContentModel" class

Table 6.12.34 Description of the "small" attribute for the "FlowContentModel" class

Table 6.12.35 Description of the "samp" attribute for the "FlowContentModel" class

Table 6.12.36 Description of the "b" attribute for the "FlowContentModel" class

Table 6.12.37 Description of the "cite" attribute for the "FlowContentModel" class

Table 6.12.38 Description of the "table" attribute for the "FlowContentModel" class

Table 6.12.39 Description of the "div" attribute for the "FlowContentModel" class

Table 6.12.40 Description of the "bdo" attribute for the "FlowContentModel" class

Table 6.12.41 Description of the "bdi" attribute for the "FlowContentModel" class

Table 6.12.42 Description of the "figure" attribute for the "FlowContentModel" class

Table 6.12.43 Description of the "audio" attribute for the "FlowContentModel" class

Table 6.12.44 Description of the "video" attribute for the "FlowContentModel" class

Table 6.12.45 Description of the "article" attribute for the "FlowContentModel" class

Table 6.12.46 Description of the "aside" attribute for the "FlowContentModel" class

Table 6.12.47 Description of the "footer" attribute for the "FlowContentModel" class

Table 6.12.48 Description of the "header" attribute for the "FlowContentModel" class

Table 6.12.49 Description of the "label" attribute for the "FlowContentModel" class

Table 6.12.50 Description of the "nav" attribute for the "FlowContentModel" class

Table 6.12.51 Description of the "section" attribute for the "FlowContentModel" class

Table 6.12.52 Description of the "ruby" attribute for the "FlowContentModel" class

Table 6.12.53 Description of the "ssmlGroup" attribute for the "FlowContentModel" class

Table 6.13 FlowGroup class definitions

Table 6.13.1 Description of the "printedVariable" attribute for the "FlowGroup" class

Table 6.13.2 Description of the "feedbackBlock" attribute for the "FlowGroup" class

Table 6.13.3 Description of the "hottext" attribute for the "FlowGroup" class

Table 6.13.4 Description of the "feedbackInline" attribute for the "FlowGroup" class

Table 6.13.5 Description of the "templateInline" attribute for the "FlowGroup" class

Table 6.13.6 Description of the "templateBlock" attribute for the "FlowGroup" class

Table 6.13.7 Description of the "math" attribute for the "FlowGroup" class

Table 6.13.8 Description of the "math" attribute for the "FlowGroup" class

Table 6.13.9 Description of the "include" attribute for the "FlowGroup" class

Table 6.13.10 Description of the "textEntryInteraction" attribute for the "FlowGroup" class

Table 6.13.11 Description of the "inlineChoiceInteraction" attribute for the "FlowGroup" class

Table 6.13.12 Description of the "endAttemptInteraction" attribute for the "FlowGroup" class

Table 6.13.13 Description of the "customInteraction" attribute for the "FlowGroup" class

Table 6.13.14 Description of the "drawingInteraction" attribute for the "FlowGroup" class

Table 6.13.15 Description of the "gapMatchInteraction" attribute for the "FlowGroup" class

Table 6.13.16 Description of the "matchInteraction" attribute for the "FlowGroup" class

Table 6.13.17 Description of the "graphicGapMatchInteraction" attribute for the "FlowGroup" class

Table 6.13.18 Description of the "hotspotInteraction" attribute for the "FlowGroup" class

Table 6.13.19 Description of the "graphicOrderInteraction" attribute for the "FlowGroup" class

Table 6.13.20 Description of the "selectPointInteraction" attribute for the "FlowGroup" class

Table 6.13.21 Description of the "graphicAssociateInteraction" attribute for the "FlowGroup" class

Table 6.13.22 Description of the "sliderInteraction" attribute for the "FlowGroup" class

Table 6.13.23 Description of the "choiceInteraction" attribute for the "FlowGroup" class

Table 6.13.24 Description of the "mediaInteraction" attribute for the "FlowGroup" class

Table 6.13.25 Description of the "hottextInteraction" attribute for the "FlowGroup" class

Table 6.13.26 Description of the "orderInteraction" attribute for the "FlowGroup" class

Table 6.13.27 Description of the "extendedTextInteraction" attribute for the "FlowGroup" class

Table 6.13.28 Description of the "uploadInteraction" attribute for the "FlowGroup" class

Table 6.13.29 Description of the "associateInteraction" attribute for the "FlowGroup" class

Table 6.13.30 Description of the "flowContentModel" attribute for the "FlowGroup" class

Table 6.14 FlowStaticGroup class definitions

Table 6.14.1 Description of the "printedVariable" attribute for the "FlowStaticGroup" class

Table 6.14.2 Description of the "feedbackBlock" attribute for the "FlowStaticGroup" class

Table 6.14.3 Description of the "feedbackInline" attribute for the "FlowStaticGroup" class

Table 6.14.4 Description of the "templateInline" attribute for the "FlowStaticGroup" class

Table 6.14.5 Description of the "templateBlock" attribute for the "FlowStaticGroup" class

Table 6.14.6 Description of the "math" attribute for the "FlowStaticGroup" class

Table 6.14.7 Description of the "math" attribute for the "FlowStaticGroup" class

Table 6.14.8 Description of the "include" attribute for the "FlowStaticGroup" class

Table 6.14.9 Description of the "flowContentModel" attribute for the "FlowStaticGroup" class

Table 6.15 GapChoice class definitions

Table 6.15.1 Description of the "gapText" attribute for the "GapChoice" class

Table 6.15.2 Description of the "gapImg" attribute for the "GapChoice" class

Table 6.16 InlineChoiceGroup class definitions

Table 6.16.1 Description of the "printedVariable" attribute for the "InlineChoiceGroup" class

Table 6.16.2 Description of the "feedbackInline" attribute for the "InlineChoiceGroup" class

Table 6.16.3 Description of the "templateInline" attribute for the "InlineChoiceGroup" class

Table 6.16.4 Description of the "math" attribute for the "InlineChoiceGroup" class

Table 6.16.5 Description of the "math" attribute for the "InlineChoiceGroup" class

Table 6.16.6 Description of the "include" attribute for the "InlineChoiceGroup" class

Table 6.16.7 Description of the "inlineContentModel" attribute for the "InlineChoiceGroup" class

Table 6.17 InlineContentModel class definitions

Table 6.17.1 Description of the "img" attribute for the "InlineContentModel" class

Table 6.17.2 Description of the "br" attribute for the "InlineContentModel" class

Table 6.17.3 Description of the "object" attribute for the "InlineContentModel" class

Table 6.17.4 Description of the "em" attribute for the "InlineContentModel" class

Table 6.17.5 Description of the "a" attribute for the "InlineContentModel" class

Table 6.17.6 Description of the "code" attribute for the "InlineContentModel" class

Table 6.17.7 Description of the "span" attribute for the "InlineContentModel" class

Table 6.17.8 Description of the "sub" attribute for the "InlineContentModel" class

Table 6.17.9 Description of the "acronym" attribute for the "InlineContentModel" class

Table 6.17.10 Description of the "big" attribute for the "InlineContentModel" class

Table 6.17.11 Description of the "tt" attribute for the "InlineContentModel" class

Table 6.17.12 Description of the "kbd" attribute for the "InlineContentModel" class

Table 6.17.13 Description of the "q" attribute for the "InlineContentModel" class

Table 6.17.14 Description of the "i" attribute for the "InlineContentModel" class

Table 6.17.15 Description of the "dfn" attribute for the "InlineContentModel" class

Table 6.17.16 Description of the "abbr" attribute for the "InlineContentModel" class

Table 6.17.17 Description of the "strong" attribute for the "InlineContentModel" class

Table 6.17.18 Description of the "sup" attribute for the "InlineContentModel" class

Table 6.17.19 Description of the "var" attribute for the "InlineContentModel" class

Table 6.17.20 Description of the "small" attribute for the "InlineContentModel" class

Table 6.17.21 Description of the "samp" attribute for the "InlineContentModel" class

Table 6.17.22 Description of the "b" attribute for the "InlineContentModel" class

Table 6.17.23 Description of the "cite" attribute for the "InlineContentModel" class

Table 6.17.24 Description of the "bdo" attribute for the "InlineContentModel" class

Table 6.17.25 Description of the "bdi" attribute for the "InlineContentModel" class

Table 6.17.26 Description of the "label" attribute for the "InlineContentModel" class

Table 6.17.27 Description of the "ruby" attribute for the "InlineContentModel" class

Table 6.17.28 Description of the "ssml11Group" attribute for the "InlineContentModel" class

Table 6.18 InlineGroup class definitions

Table 6.18.1 Description of the "textEntryInteraction" attribute for the "InlineGroup" class

Table 6.18.2 Description of the "hottext" attribute for the "InlineGroup" class

Table 6.18.3 Description of the "printedVariable" attribute for the "InlineGroup" class

Table 6.18.4 Description of the "gap" attribute for the "InlineGroup" class

Table 6.18.5 Description of the "feedbackInline" attribute for the "InlineGroup" class

Table 6.18.6 Description of the "templateInline" attribute for the "InlineGroup" class

Table 6.18.7 Description of the "inlineChoiceInteraction" attribute for the "InlineGroup" class

Table 6.18.8 Description of the "endAttemptInteraction" attribute for the "InlineGroup" class

Table 6.18.9 Description of the "customInteraction" attribute for the "InlineGroup" class

Table 6.18.10 Description of the "math" attribute for the "InlineGroup" class

Table 6.18.11 Description of the "math" attribute for the "InlineGroup" class

Table 6.18.12 Description of the "include" attribute for the "InlineGroup" class

Table 6.18.13 Description of the "inlineContentModel" attribute for the "InlineGroup" class

Table 6.19 InlineStaticGroup class definitions

Table 6.19.1 Description of the "hottext" attribute for the "InlineStaticGroup" class

Table 6.19.2 Description of the "printedVariable" attribute for the "InlineStaticGroup" class

Table 6.19.3 Description of the "gap" attribute for the "InlineStaticGroup" class

Table 6.19.4 Description of the "feedbackInline" attribute for the "InlineStaticGroup" class

Table 6.19.5 Description of the "templateInline" attribute for the "InlineStaticGroup" class

Table 6.19.6 Description of the "math" attribute for the "InlineStaticGroup" class

Table 6.19.7 Description of the "math" attribute for the "InlineStaticGroup" class

Table 6.19.8 Description of the "include" attribute for the "InlineStaticGroup" class

Table 6.19.9 Description of the "inlineContentModel" attribute for the "InlineStaticGroup" class

Table 6.20 ItemBodySelect class definitions

Table 6.20.1 Description of the "rubricBlock" attribute for the "ItemBodySelect" class

Table 6.20.2 Description of the "blockGroup" attribute for the "ItemBodySelect" class

Table 6.21 LookupTable class definitions

Table 6.21.1 Description of the "matchTable" attribute for the "LookupTable" class

Table 6.21.2 Description of the "interpolationTable" attribute for the "LookupTable" class

Table 6.22 NumericExpressionGroup class definitions

Table 6.22.1 Description of the "sum" attribute for the "NumericExpressionGroup" class

Table 6.22.2 Description of the "subtract" attribute for the "NumericExpressionGroup" class

Table 6.22.3 Description of the "divide" attribute for the "NumericExpressionGroup" class

Table 6.22.4 Description of the "multiple" attribute for the "NumericExpressionGroup" class

Table 6.22.5 Description of the "ordered" attribute for the "NumericExpressionGroup" class

Table 6.22.6 Description of the "customOperator" attribute for the "NumericExpressionGroup" class

Table 6.22.7 Description of the "random" attribute for the "NumericExpressionGroup" class

Table 6.22.8 Description of the "numberIncorrect" attribute for the "NumericExpressionGroup" class

Table 6.22.9 Description of the "numberCorrect" attribute for the "NumericExpressionGroup" class

Table 6.22.10 Description of the "numberPresented" attribute for the "NumericExpressionGroup" class

Table 6.22.11 Description of the "numberResponded" attribute for the "NumericExpressionGroup" class

Table 6.22.12 Description of the "numberSelected" attribute for the "NumericExpressionGroup" class

Table 6.22.13 Description of the "null" attribute for the "NumericExpressionGroup" class

Table 6.22.14 Description of the "delete" attribute for the "NumericExpressionGroup" class

Table 6.22.15 Description of the "index" attribute for the "NumericExpressionGroup" class

Table 6.22.16 Description of the "power" attribute for the "NumericExpressionGroup" class

Table 6.22.17 Description of the "containerSize" attribute for the "NumericExpressionGroup" class

Table 6.22.18 Description of the "correct" attribute for the "NumericExpressionGroup" class

Table 6.22.19 Description of the "default" attribute for the "NumericExpressionGroup" class

Table 6.22.20 Description of the "integerDivide" attribute for the "NumericExpressionGroup" class

Table 6.22.21 Description of the "integerModulus" attribute for the "NumericExpressionGroup" class

Table 6.22.22 Description of the "product" attribute for the "NumericExpressionGroup" class

Table 6.22.23 Description of the "round" attribute for the "NumericExpressionGroup" class

Table 6.22.24 Description of the "truncate" attribute for the "NumericExpressionGroup" class

Table 6.22.25 Description of the "fieldValue" attribute for the "NumericExpressionGroup" class

Table 6.22.26 Description of the "randomInteger" attribute for the "NumericExpressionGroup" class

Table 6.22.27 Description of the "variable" attribute for the "NumericExpressionGroup" class

Table 6.22.28 Description of the "outcomeMinimum" attribute for the "NumericExpressionGroup" class

Table 6.22.29 Description of the "outcomeMaximum" attribute for the "NumericExpressionGroup" class

Table 6.22.30 Description of the "testVariables" attribute for the "NumericExpressionGroup" class

Table 6.22.31 Description of the "integerToFloat" attribute for the "NumericExpressionGroup" class

Table 6.22.32 Description of the "baseValue" attribute for the "NumericExpressionGroup" class

Table 6.22.33 Description of the "mapResponsePoint" attribute for the "NumericExpressionGroup" class

Table 6.22.34 Description of the "mapResponse" attribute for the "NumericExpressionGroup" class

Table 6.22.35 Description of the "repeat" attribute for the "NumericExpressionGroup" class

Table 6.22.36 Description of the "roundTo" attribute for the "NumericExpressionGroup" class

Table 6.22.37 Description of the "lcm" attribute for the "NumericExpressionGroup" class

Table 6.22.38 Description of the "gcd" attribute for the "NumericExpressionGroup" class

Table 6.22.39 Description of the "min" attribute for the "NumericExpressionGroup" class

Table 6.22.40 Description of the "max" attribute for the "NumericExpressionGroup" class

Table 6.22.41 Description of the "mathConstant" attribute for the "NumericExpressionGroup" class

Table 6.22.42 Description of the "statsOperator" attribute for the "NumericExpressionGroup" class

Table 6.22.43 Description of the "mathOperator" attribute for the "NumericExpressionGroup" class

Table 6.22.44 Description of the "randomFloat" attribute for the "NumericExpressionGroup" class

Table 6.23 ObjectFlowGroup class definitions

Table 6.23.1 Description of the "math" attribute for the "ObjectFlowGroup" class

Table 6.23.2 Description of the "math" attribute for the "ObjectFlowGroup" class

Table 6.23.3 Description of the "include" attribute for the "ObjectFlowGroup" class

Table 6.23.4 Description of the "param" attribute for the "ObjectFlowGroup" class

Table 6.23.5 Description of the "flowContentModel" attribute for the "ObjectFlowGroup" class

Table 6.24 OutcomeRule class definitions

Table 6.24.1 Description of the "lookupOutcomeValue" attribute for the "OutcomeRule" class

Table 6.24.2 Description of the "outcomeProcessingFragment" attribute for the "OutcomeRule" class

Table 6.24.3 Description of the "setOutcomeValue" attribute for the "OutcomeRule" class

Table 6.24.4 Description of the "include" attribute for the "OutcomeRule" class

Table 6.24.5 Description of the "exitTest" attribute for the "OutcomeRule" class

Table 6.24.6 Description of the "outcomeCondition" attribute for the "OutcomeRule" class

Table 6.25 PromptStaticGroup class definitions

Table 6.25.1 Description of the "math" attribute for the "PromptStaticGroup" class

Table 6.25.2 Description of the "math" attribute for the "PromptStaticGroup" class

Table 6.25.3 Description of the "include" attribute for the "PromptStaticGroup" class

Table 6.25.4 Description of the "flowContentModel" attribute for the "PromptStaticGroup" class

Table 6.26 ResponseRuleGroup class definitions

Table 6.26.1 Description of the "include" attribute for the "ResponseRuleGroup" class

Table 6.26.2 Description of the "responseCondition" attribute for the "ResponseRuleGroup" class

Table 6.26.3 Description of the "responseProcessingFragment" attribute for the "ResponseRuleGroup" class

Table 6.26.4 Description of the "setOutcomeValue" attribute for the "ResponseRuleGroup" class

Table 6.26.5 Description of the "exitResponse" attribute for the "ResponseRuleGroup" class

Table 6.26.6 Description of the "lookupOutcomeValue" attribute for the "ResponseRuleGroup" class

Table 6.27 RubricBlockContentModel class definitions

Table 6.27.1 Description of the "flowContentModel" attribute for the "RubricBlockContentModel" class

Table 6.27.2 Description of the "math" attribute for the "RubricBlockContentModel" class

Table 6.27.3 Description of the "math" attribute for the "RubricBlockContentModel" class

Table 6.27.4 Description of the "include" attribute for the "RubricBlockContentModel" class

Table 6.27.5 Description of the "templateBlock" attribute for the "RubricBlockContentModel" class

Table 6.27.6 Description of the "templateInline" attribute for the "RubricBlockContentModel" class

Table 6.27.7 Description of the "printedVariable" attribute for the "RubricBlockContentModel" class

Table 6.28 RubricTemplateBlockContentModel class definitions

Table 6.28.1 Description of the "flowContentModel" attribute for the "RubricTemplateBlockContentModel" class

Table 6.28.2 Description of the "math" attribute for the "RubricTemplateBlockContentModel" class

Table 6.28.3 Description of the "math" attribute for the "RubricTemplateBlockContentModel" class

Table 6.28.4 Description of the "include" attribute for the "RubricTemplateBlockContentModel" class

Table 6.28.5 Description of the "templateBlock" attribute for the "RubricTemplateBlockContentModel" class

Table 6.28.6 Description of the "printedVariable" attribute for the "RubricTemplateBlockContentModel" class

Table 6.29 RubricTemplateInlineStaticGroup class definitions

Table 6.29.1 Description of the "inlineContentModel" attribute for the "RubricTemplateInlineStaticGroup" class

Table 6.29.2 Description of the "math" attribute for the "RubricTemplateInlineStaticGroup" class

Table 6.29.3 Description of the "math" attribute for the "RubricTemplateInlineStaticGroup" class

Table 6.29.4 Description of the "include" attribute for the "RubricTemplateInlineStaticGroup" class

Table 6.29.5 Description of the "templateInline" attribute for the "RubricTemplateInlineStaticGroup" class

Table 6.29.6 Description of the "printedVariable" attribute for the "RubricTemplateInlineStaticGroup" class

Table 6.30 SSMLGroup class definitions

Table 6.30.1 Description of the "p" attribute for the "SSMLGroup" class

Table 6.30.2 Description of the "s" attribute for the "SSMLGroup" class

Table 6.30.3 Description of the "say-as" attribute for the "SSMLGroup" class

Table 6.30.4 Description of the "phoneme" attribute for the "SSMLGroup" class

Table 6.30.5 Description of the "sub" attribute for the "SSMLGroup" class

Table 6.30.6 Description of the "voice" attribute for the "SSMLGroup" class

Table 6.30.7 Description of the "emphasis" attribute for the "SSMLGroup" class

Table 6.30.8 Description of the "break" attribute for the "SSMLGroup" class

Table 6.30.9 Description of the "prosody" attribute for the "SSMLGroup" class

Table 6.30.10 Description of the "mark" attribute for the "SSMLGroup" class

Table 6.30.11 Description of the "audio" attribute for the "SSMLGroup" class

Table 6.30.12 Description of the "speak" attribute for the "SSMLGroup" class

Table 6.31 SectionPart class definitions

Table 6.31.1 Description of the "include" attribute for the "SectionPart" class

Table 6.31.2 Description of the "assessmentItemRef" attribute for the "SectionPart" class

Table 6.31.3 Description of the "assessmentSection" attribute for the "SectionPart" class

Table 6.31.4 Description of the "assessmentSectionRef" attribute for the "SectionPart" class

Table 6.32 TableCellGroup class definitions

Table 6.32.1 Description of the "td" attribute for the "TableCellGroup" class

Table 6.32.2 Description of the "th" attribute for the "TableCellGroup" class

Table 6.33 TemplateRuleGroup class definitions

Table 6.33.1 Description of the "setTemplateValue" attribute for the "TemplateRuleGroup" class

Table 6.33.2 Description of the "exitTemplate" attribute for the "TemplateRuleGroup" class

Table 6.33.3 Description of the "templateCondition" attribute for the "TemplateRuleGroup" class

Table 6.33.4 Description of the "setDefaultValue" attribute for the "TemplateRuleGroup" class

Table 6.33.5 Description of the "setCorrectResponse" attribute for the "TemplateRuleGroup" class

Table 6.33.6 Description of the "templateConstraint" attribute for the "TemplateRuleGroup" class

Table 7.1 ARIALevelInteger class definitions

Table 7.1.1 Description of the "minInclusive" attribute for the "ARIALevelInteger" class

Table 7.2 AreaMapEntry class definitions

Table 7.2.1 Description of the "shape" characteristic for the "AreaMapEntry" class

Table 7.2.2 Description of the "coords" characteristic for the "AreaMapEntry" class

Table 7.2.3 Description of the "mappedValue" characteristic for the "AreaMapEntry" class

Table 7.3 AssessmentSectionRef class definitions

Table 7.3.1 Description of the "identifier" characteristic for the "AssessmentSectionRef" class

Table 7.3.2 Description of the "href" characteristic for the "AssessmentSectionRef" class

Table 7.4 AssessmentStimulusRef class definitions

Table 7.4.1 Description of the "identifier" characteristic for the "AssessmentStimulusRef" class

Table 7.4.2 Description of the "href" characteristic for the "AssessmentStimulusRef" class

Table 7.5 BaseSequenceXBaseEmpty class definitions

Table 7.5.1 Description of the "id" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.2 Description of the "class" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.3 Description of the "language" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.4 Description of the "label" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.5 Description of the "base" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.6 Description of the "dir" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.7 Description of the "role" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.8 Description of the "aria-controls" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.9 Description of the "aria-describedby" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.10 Description of the "aria-flowsto" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.11 Description of the "aria-label" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.12 Description of the "aria-labelledby" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.13 Description of the "aria-level" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.14 Description of the "aria-live" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.15 Description of the "aria-orientation" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.16 Description of the "aria-owns" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.5.17 Description of the "dataExtension" characteristic for the "BaseSequenceXBaseEmpty" class

Table 7.6 BaseValue class definitions

Table 7.6.1 Description of the "baseType" characteristic for the "BaseValue" class

Table 7.7 Coords class definitions

Table 7.7.1 Description of the "pattern" attribute for the "Coords" class

Table 7.8 Correct class definitions

Table 7.8.1 Description of the "identifier" characteristic for the "Correct" class

Table 7.9 DataHTML5Extension class definitions

Table 7.9.1 Description of the "pattern" attribute for the "DataHTML5Extension" class

Table 7.10 Default class definitions

Table 7.10.1 Description of the "identifier" characteristic for the "Default" class

Table 7.11 EncVariableString class definitions

Table 7.11.1 Description of the "pattern" attribute for the "EncVariableString" class

Table 7.12 Identifier class definitions

Table 7.13 InterpolationTableEntry class definitions

Table 7.13.1 Description of the "sourceValue" characteristic for the "InterpolationTableEntry" class

Table 7.13.2 Description of the "includeBoundary" characteristic for the "InterpolationTableEntry" class

Table 7.13.3 Description of the "targetValue" characteristic for the "InterpolationTableEntry" class

Table 7.14 ItemSessionControl class definitions

Table 7.14.1 Description of the "maxAttempts" characteristic for the "ItemSessionControl" class

Table 7.14.2 Description of the "showFeedback" characteristic for the "ItemSessionControl" class

Table 7.14.3 Description of the "allowReview" characteristic for the "ItemSessionControl" class

Table 7.14.4 Description of the "showSolution" characteristic for the "ItemSessionControl" class

Table 7.14.5 Description of the "allowComment" characteristic for the "ItemSessionControl" class

Table 7.14.6 Description of the "allowSkipping" characteristic for the "ItemSessionControl" class

Table 7.14.7 Description of the "validateResponses" characteristic for the "ItemSessionControl" class

Table 7.15 Length class definitions

Table 7.15.1 Description of the "pattern" attribute for the "Length" class

Table 7.16 MapEntry class definitions

Table 7.16.1 Description of the "mapKey" characteristic for the "MapEntry" class

Table 7.16.2 Description of the "mappedValue" characteristic for the "MapEntry" class

Table 7.16.3 Description of the "caseSensitive" characteristic for the "MapEntry" class

Table 7.17 MapResponse class definitions

Table 7.17.1 Description of the "identifier" characteristic for the "MapResponse" class

Table 7.18 MatchTableEntry class definitions

Table 7.18.1 Description of the "sourceValue" characteristic for the "MatchTableEntry" class

Table 7.18.2 Description of the "targetValue" characteristic for the "MatchTableEntry" class

Table 7.19 MathConstant class definitions

Table 7.19.1 Description of the "name" characteristic for the "MathConstant" class

Table 7.20 MimeType class definitions

Table 7.20.1 Description of the "pattern" attribute for the "MimeType" class

Table 7.21 NonNegativeDouble class definitions

Table 7.21.1 Description of the "minInclusive" attribute for the "NonNegativeDouble" class

Table 7.22 Number class definitions

Table 7.22.1 Description of the "sectionIdentifier" characteristic for the "Number" class

Table 7.22.2 Description of the "includeCategory" characteristic for the "Number" class

Table 7.22.3 Description of the "excludeCategory" characteristic for the "Number" class

Table 7.23 OutcomeMinMax class definitions

Table 7.23.1 Description of the "sectionIdentifier" characteristic for the "OutcomeMinMax" class

Table 7.23.2 Description of the "includeCategory" characteristic for the "OutcomeMinMax" class

Table 7.23.3 Description of the "excludeCategory" characteristic for the "OutcomeMinMax" class

Table 7.23.4 Description of the "outcomeIdentifier" characteristic for the "OutcomeMinMax" class

Table 7.23.5 Description of the "weightIdentifier" characteristic for the "OutcomeMinMax" class

Table 7.24 Param class definitions

Table 7.24.1 Description of the "name" characteristic for the "Param" class

Table 7.24.2 Description of the "value" characteristic for the "Param" class

Table 7.24.3 Description of the "valuetype" characteristic for the "Param" class

Table 7.24.4 Description of the "type" characteristic for the "Param" class

Table 7.25 PrintedVariable class definitions

Table 7.25.1 Description of the "id" characteristic for the "PrintedVariable" class

Table 7.25.2 Description of the "class" characteristic for the "PrintedVariable" class

Table 7.25.3 Description of the "language" characteristic for the "PrintedVariable" class

Table 7.25.4 Description of the "label" characteristic for the "PrintedVariable" class

Table 7.25.5 Description of the "baseuri" characteristic for the "PrintedVariable" class

Table 7.25.6 Description of the "identifier" characteristic for the "PrintedVariable" class

Table 7.25.7 Description of the "format" characteristic for the "PrintedVariable" class

Table 7.25.8 Description of the "base" characteristic for the "PrintedVariable" class

Table 7.25.9 Description of the "index" characteristic for the "PrintedVariable" class

Table 7.25.10 Description of the "powerForm" characteristic for the "PrintedVariable" class

Table 7.25.11 Description of the "field" characteristic for the "PrintedVariable" class

Table 7.25.12 Description of the "delimiter" characteristic for the "PrintedVariable" class

Table 7.25.13 Description of the "mappingIndicator" characteristic for the "PrintedVariable" class

Table 7.26 RandomFloat class definitions

Table 7.26.1 Description of the "min" characteristic for the "RandomFloat" class

Table 7.26.2 Description of the "max" characteristic for the "RandomFloat" class

Table 7.27 RandomInteger class definitions

Table 7.27.1 Description of the "min" characteristic for the "RandomInteger" class

Table 7.27.2 Description of the "max" characteristic for the "RandomInteger" class

Table 7.27.3 Description of the "step" characteristic for the "RandomInteger" class

Table 7.28 StyleSheet class definitions

Table 7.28.1 Description of the "href" characteristic for the "StyleSheet" class

Table 7.28.2 Description of the "type" characteristic for the "StyleSheet" class

Table 7.28.3 Description of the "media" characteristic for the "StyleSheet" class

Table 7.28.4 Description of the "title" characteristic for the "StyleSheet" class

Table 7.29 TestVariables class definitions

Table 7.29.1 Description of the "sectionIdentifier" characteristic for the "TestVariables" class

Table 7.29.2 Description of the "includeCategory" characteristic for the "TestVariables" class

Table 7.29.3 Description of the "excludeCategory" characteristic for the "TestVariables" class

Table 7.29.4 Description of the "variableIdentifier" characteristic for the "TestVariables" class

Table 7.29.5 Description of the "weightIdentifier" characteristic for the "TestVariables" class

Table 7.29.6 Description of the "baseType" characteristic for the "TestVariables" class

Table 7.30 TimeLimits class definitions

Table 7.30.1 Description of the "minTime" characteristic for the "TimeLimits" class

Table 7.30.2 Description of the "maxTime" characteristic for the "TimeLimits" class

Table 7.30.3 Description of the "allowLateSubmission" characteristic for the "TimeLimits" class

Table 7.31 UniqueIdentifier class definitions

Table 7.32 UniqueIdentifierRef class definitions

Table 7.33 Value class definitions

Table 7.33.1 Description of the "fieldIdentifier" characteristic for the "Value" class

Table 7.33.2 Description of the "baseType" characteristic for the "Value" class

Table 7.34 Variable class definitions

Table 7.34.1 Description of the "identifier" characteristic for the "Variable" class

Table 7.34.2 Description of the "weightIdentifier" characteristic for the "Variable" class

Table 7.35 VariableMapping class definitions

Table 7.35.1 Description of the "sourceIdentifier" characteristic for the "VariableMapping" class

Table 7.35.2 Description of the "targetIdentifier" characteristic for the "VariableMapping" class

Table 7.36 VariableString class definitions

Table 7.36.1 Description of the "pattern" attribute for the "VariableString" class

Table 7.37 Weight class definitions

Table 7.37.1 Description of the "identifier" characteristic for the "Weight" class

Table 7.37.2 Description of the "value" characteristic for the "Weight" class

Table 8.1 ARIALiveValue class definitions

Table 8.2 ARIAOrientationValue class definitions

Table 8.3 ARIARoleValue class definitions

Table 8.4 Align class definitions

Table 8.5 BaseType class definitions

Table 8.6 CORSSettings class definitions

Table 8.7 Cardinality class definitions

Table 8.8 DIR class definitions

Table 8.9 ExternalScored class definitions

Table 8.10 MathConstantNames class definitions

Table 8.11 MathOperatorName class definitions

Table 8.12 NavigationMode class definitions

Table 8.13 Orientation class definitions

Table 8.14 ParamType class definitions

Table 8.15 RoundingMode class definitions

Table 8.16 Shape class definitions

Table 8.17 ShowHide class definitions

Table 8.18 StatsOperatorName class definitions

Table 8.19 SubmissionMode class definitions

Table 8.20 TableCellScope class definitions

Table 8.21 TestFeedbackAccess class definitions

Table 8.22 TextFormat class definitions

Table 8.23 ToleranceMode class definitions

Table 8.24 Valign class definitions

Table 9.1.1 IdentifierList class description

Table 9.1.2 IntegerList class description

Table 9.1.3 StringList class description

Table 9.1.4 ToleranceList class description

Table 9.2.1 View class description

Table 9.3.1 FloatOrVariableRef class description

Table 9.3.2 IntOrIdentifier class description

Table 9.3.3 IntegerOrVariableRef class description

Table 9.3.4 StringOrVariableRef class description

Table 9.4.1 APIPAccessibility class description

Table 9.4.2 HTML5 class description

Table 9.4.3 Include class description

Table 9.4.4 MathML2 class description

Table 9.4.5 MathML3 class description

Table 9.4.6 SSMLv1p1 class description

Table A1.1 The key to the descriptions of data model diagrams

Table A1.2 The key to the descriptions of the data class tables

Table A1.3 The key to the descriptions of the data attribute/characteristic tables

Table A1.4 The key to the descriptions of the enumerated vocabulary tables

Table A1.5 The key to the descriptions of the external vocabulary tables

Table A1.6 The key to the descriptions of the import class tables

toc | top

# 1. Introduction

## 1.1 Overview of the Data Model

This document is the core part the IMS Global Question and Test Interoperability (QTI) v2.2 specification. This document describes the information model for items, sections and whole tests used in assessment. Formally these are known as the Assessment, Section and Item (ASI) features.

The IMS QTI specification describes a data model for the representation of question (assessmentItem) and test (assessmentTest) data and their corresponding results reports. Therefore, the specification enables the exchange of this item, test and results data between authoring tools, item banks, test constructional tools, learning systems and assessment delivery systems. The data model is described abstractly, using the Unified Modeling Language (UML) to facilitate binding to a wide range of data-modelling tools and programming languages, however, for interchange between systems a binding is provided to the industry standard eXtensible Markup Language (XML) and use of this binding is strongly recommended. The IMS QTI specification has been designed to support both interoperability and innovation through the provision of well-defined extension points. These extension points can be used to wrap specialized or proprietary data in ways that allows it to be used alongside items that can be represented directly.

## 1.2 Scope and Context

The IMS QTI Assessment, Section and Item Information is a part of the broader QTI specification. This document should be used in conjuncton with the following documents

- IMS QTI v2.2: HTML5 Information Model and XSD Binding v1.0 [QTI, 16a] - the details of the new HTML5 functionality added to QTI;
- IMS QTI v2.2: Metadata Information Model and XSD Binding v1.0 [QTI, 16b] - the details of the QTI Metadata functionality and XSD binding;
- IMS QTI v2.2: Results Reporting Information Model and XSD Binding v1.0 [QTI, 16c] - the details of the QTI Results Reporting functionality and XSD binding;
- IMS QTI v2.2: Usage Data Information Model and XSD Binding v1.0 [QTI, 16d] - the details of the QTI Usage Data functionality and XSD binding;
- IMS QTI v2.2: ASI XSD Binding v1.0 [QTI, 17] - the details of the binding of QTI in XML;
- IMS QTI v2.2 Best Practice and Implementation Guide v1.0 [QTI, 15] - key information on how to adopt and implement the specification;
- IMS Portable Custom Interactions v1.0 [PCI, 14] - the best practices for the creation of new types of items using an interoperable format.

This QTI ASI v2.2 specification supersedes the QTI v2.1 versions. The QTI Information Model is bound to an XML Schema Definition (XSD). This document and the accompanying XSD is generated using the IMS Global Binding Auto-generation Tool-kit (I-BAT) [IBAT, 06]. A significant number of new features have been added in v2.2, namely:

- Shared Stimulus - this allows key reference content to be shared by more than one Item and also for that content workflow to be directly supported by the QTI interoperability;
- Bidirectional Text - enables 'left-to-right' and 'right-to-left' text presentation;
- Speech Synthesis Markup Language (SSML) - this allows text to have direct SSMLv1.1 annotation;
- WAI-ARIA on the HTML tags - this allows the HTML to support ARIA accessibility information;
- HTML4 tags - support for the HTML4 tags 'bdo', and 'label' (the latter is placed in the HTML5 namespace to avoid conflict with the other new 'label' element);
- HTML5 tags - support for the HTML5 tags 'article', 'aside', 'audio', 'bdi', 'figure', 'figcaption', 'footer', 'header', 'ruby', 'nav', 'section', 'source', 'track', and 'video';
- HTML5 extensibility - support for the 'data-*' attributes;
- MathML 3 - providing support for both MathMl 2.0 and MathMl 3.0;
- CSS 3 - providing support for both CSS2.1 and CSS 3.0.

There have also been several changes to established features, namely:

- GapImg Class - add support for the 'top' and 'left' characteristics;
- GapText Class - considerable extension of the permitted child tags to support formatted text;
- GraphicGapMatchInteraction Class - allow 'gapText' as well as 'gapImg' children;
- TextEntryInteraction Class - add support for the 'format' characteristic;
- MediaInteraction Class - add support for the 'coords' characteristic;
- InlineChoice Class - considerable extension of the permitted child tags;
- InlineChoiceInteraction Class - add support for the, new, 'label' element (not the same as the HTML4 element);
- OutcomeDeclaration Class - add support for the 'externalScored' characteristics;
- GapMatchInteraction and GraphicGapMatchInteraction - add support for the 'minAssociations' and 'maxAssociations' characteristics;
- Data-typing - many data-types for characteristics have been changed to enforce the intentions of the information model more accurately.

## 1.3 Structure of this Document

The structure of the rest of this document is:

2. Key Data Model Features | The detailed descriptions of the core features used within QTI. This includes the composition of an Item and Test and the use of Sections as a grouping consruct, the HTML-based content model, the response and outcome processing and the various feedback mechanisms, and the accessibility features;
3. Root Attribute Descriptions | The formal definition and description of the set of root attributes for the information model. These are the first class objects that can be exchanged using this data model. QTI ASI has six root attributes;
4. Root Class Descriptions | The definition and description of the set of root classes for the information model. These are parent classes for the the first class objects i.e. the root attributes, that can be exchanged using this data model;
5. Data Class Descriptions | The definition and description of the set of core classes from which the information model is composed;
6. Abstract Class Descriptions | The definition and description set of abstract classes used within the information model. These are classes that will never be used to create a direct object. Instead the abstraction is used to define complex structured classes which would otherwise be impossible to create it such a concise way;
7. Derived Class Descriptions | The definition and description of the set of derived classes. A derived class is one that is built upon either the primitive types (the base types avialable for any model) or other derived types.
8. Enumerated Vocabulary Descriptions | The definition and description of the set of enumerated classes i.e. the embedded vocabularies, used throughout the specification (these vocabularies are not encapsulated as external IMS-based VDEX files);
9. Miscellaneous Descriptions | The definition and description of the other types of classes used within the specification. This includes the classes for lists, enumerated lists, unions and constructs that are imported from other specifications;
10. Extending and Profiling the Data Model | Identification of the ways in which the data model can be extended (both in terms of the extending features and proprietary extensions to the model) and how this base specification, and its model-based description, can be profiled to produce derivative specifications;
Appendix A Modelling Concepts and Terms | An overview of the model driven approach, the concepts and the terms used by IMS to create the data model representations (based upon a profile of UML), the corresponding set of bindings and the accompanying documentation (including this information model).

## 1.4 Nomenclature and Definitions

APIP | Accessible Portable Item Protocol
ARIA | Accessible Rich Internet Applications
ASI | Assessment, Section and Item
Adaptive Item | An adaptive item is an Item that adapts either its appearance, its scoring (Response Processing) or both in response to each of the candidate's Attempts. For example, an adaptive item may start by prompting the candidate with a box for free-text entry but, on receiving an unsatisfactory answer, present a simple choice Interaction instead and award fewer marks for subsequently identifying the correct response. Adaptivity allows authors to create items for use in formative situations which both help to guide candidates through a given task while also providing an Outcome that takes into consideration their path, enabling better subsequent content sequencing decisions to be made.
Adaptive Test | An Adaptive Test is a Test that varies the items presented to the candidate based on the responses given on items already completed. This specification only supports very limited adaptivity through the use of pre-conditions and branching. See Pre-conditions and Branching.
Assessment | Assessment is the process of measuring some aspect of a candidate. In the context of this specification Assessment is carried out using Tests and the term Assessment is treated as being equivalent to an Assessment Test.
Assessment Delivery System | A system for the administration and delivery of assessments to candidates. See also Delivery Engine.
Assessment Test | An Assessment Test is an organized collection of Items that are used to determine the values of the outcomes e.g. level of mastery, when measuring the performance of a candidate in a particular domain. An Assessment test contains all of the necessary instructions to enable the sequencing of the items and the calculation of the outcome values e.g. the final test score.
Assessment Variable | An Assessment Variable is a variable used to maintain a value associated with an Item Session or Test Session. For example, the value of a Response given by the candidate or the value of an Outcome for an individual item or an entire test.
Attempt | An attempt (at an Item) is the process by which the Candidate interacts with an item in one or more Candidate Sessions, possibly assigning values to or updating the associated Response Variables.
Authoring System | A system used by authors for creating and editing Items and Assessments.
BIDI | Bidirectional Unicode
Base-type | A base-type is a predefined data type that defines a value set from which values for Item Variables are drawn. These values are indivisible with respect to the runtime model described by this specification.
Basic Item | A basic item is an Item that contains one and only one Interaction.
Bi-directional Text | This provides control for the layout of text so that it can be read from 'left-to-right' or 'right-to-left'.
CP | Content Packaging
CSS | Cascading Stylesheet
Candidate | A person that participates in a test, assessment or exam by answering questions. See also the actor candidate.
Candidate Session | A period of time during which the candidate is interacting with the Item as part of an Attempt. An attempt may consist of more than one candidate session. For example, candidates that are not sure of the answer to one question may navigate to a second question in the same test and return to the first one later. When they leave the first question they terminate the candidate session but they do not terminate the Attempt. The attempt is simply suspended until a subsequent candidate session concludes it, triggering Response Processing and (possibly) Feedback.
Cloning Engine | A cloning engine is a system for creating multiple similar items (Item Clones) from an Item Template.
Composite Item | A composite item is an Item that contains more than one Interaction.
Container | A container is an aggregate data type that can contain multiple values of the primitive Base-types. Containers may be empty.
DT | Derived Type
Delivery Engine | The process that coordinates the rendering and delivery of the Item(s) and the evaluation of the responses to produce scores and Feedback.
Feedback | Any material presented to the candidate conditionally based on the value of an Outcome Variable. See also Integrated Feedback, Modal Feedback and Test Feedback.
HTML | Hypertext Markup Language
IEEE | Institute of Electrical and Electronics Engineers
IETF | Internet Engineering Task Force.
ISO | International Standards Organization
Integrated Feedback | Integrated feedback is the name given to Feedback that is integrated into the item's itemBody. Unlike Modal Feedback the candidate is free to update their responses while viewing integrated feedback.
Interaction | Interactions allow the candidate to interact with the item. Through an interaction, the candidate selects or constructs a response.
Item | The smallest exchangeable assessment object within this specification. An item is more than a 'Question' in that it contains the question and instructions to be presented, the responseProcessing to be applied to the candidates response(s) and the Feedback that may be presented (including hints and solutions). In this specification items are represented by the assessmentItem class and the term assessment item is used interchangeably for item.
Item Clone | Item Clones are items created by an Item Template.
Item Fragment | An Item Fragment is part of an item managed independently of items that include it. See also Item Set.
Item Session | An item session is the accumulation of all the Attempts at a particular item made by a candidate.
Item Set | An Item Set is a set of items that share some common characteristic. For example, all items in the set may be introduced by the same Item Fragment, in which case the fragment is often referred to as the set leader.
Item Template | Item templates are templates that can be used for producing large numbers of similar Items. Such items are often called cloned items. Item templates can be used to produce items by a special purpose Cloning Engine or, where Delivery Engines support them, be used directly to produce a dynamically chosen clone at the start of an Item Session. Each item cloned from an item template is identical except for the values given to a set of Template Variables. An item is therefore an item template if it declares one or more template variables and contains a set of Template Processing rules for assigning them values.
Item Variable | A variable that records part of the state of an Item Session. The candidate's responses and any outcomes assigned by Response Processing are stored in item variables. Item variables are also used to define Item Templates. Item variables are a special kind of Assessment Variable.
Material | Material means all static text, image or media objects that are intended for the user rather than being interpreted by a processing system. Interactions are not material.
Modal Feedback | Modal feedback is the name give to Feedback that is presented to the candidate on its own, as opposed to being integrated into the item's itemBody.
Multiple Response | A multiple response is a Response Variable that is a Container for multiple values all drawn from the value set defined by one of the Base-types. A multiple response is processed as an unordered list of these values. The list may be empty.
Non-adaptive Item | An non-adaptive item is an Item that does not adapt itself in response to the candidate's Attempts.
Object Bank | An object bank is a collection of objects used in assessment, including Items, Item Fragments, Tests or parts of tests. Object banks are not represented directly in this information model. See the QTI ASI Binding [QTI, 17] for information about how to package assessment objects for interchange.
Ordered Response | An ordered response is a Response Variable that is a Container for multiple values all drawn from the value set defined by one of the Base-types. An ordered response is processed as an ordered list (sequence) of values. The list may be empty.
Outcome | The result of an Assessment Test or Item. An outcome is represented by one or more Outcome Variables.
Outcome Processing | The process by which the values of item Outcomes (or Responses) are aggregated to make test outcomes.
Outcome Variable | Outcome variables are declared by outcome declarations. Their value is set either from a default given in the declaration itself or by a response rule encountered during Response Processing (for Item outcomes) or Outcome Processing (for Test outcomes). See also the class outcomeDeclaration.
PCI | Portable Custom Interaction (see definition).
PT | Primitive Type
Pool | A group of related items transported together with metadata that describes the group as a whole. A pool is a special case of an Object Bank.
Portable Custom Interaction | This is the recommended mechanism for describing new QTI interactions to be used within QTI. PCI defines how the custom interaction functionality within QTI is extended by the use of a JavaScript API.
QTI | Question and Test Interoperability
RFC | Request For Comment
Response | The data provided by the candidate through interaction with an item, or part of an item. The values of candidate responses are represented by Response Variables.
Response Processing | The process by which the values of Response Variables are judged (scored) and the values of item Outcomes are assigned.
Response Variable | Response variables are declared by response declarations and bound to Interactions in the Item body, they record the candidate's responses. See also the class responseDeclaration
Ruby | Ruby allows one or more spans of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations. In Japanese, this form of typography is also known as furigana.
SSML | Speech Synthsis Markup Language
Scoring Engine | The part of the assessment system that handles the scoring based on the Candidate's responses and the Response Processing rules.
Single Response | A single response is a Response Variable that can take a single value from the set of values defined by one of the Base-types.
Template Processing | A set of rules used to set the values of the Template Variables, typically involving some random process, and thereby select the specific clone to be used for an Item Session.
Template Variable | Template variables are declared by template declarations and used to record the values required to instantiate an item template. The values determine which clone from the set of similar items defined by an Item Template is being used for a given Item Session.
Test | See Assessment.
Test Feedback | The name given to feedback that is presented to the candidate conditionally based on the value of test Outcomes.
Test Fragment | A Test Fragment is part of a test managed independently of the tests that include it.
Test Report | A Test Report is a report about a Test Session.
Test Session | A Test Session is the interaction of a candidate with a Test and the items it contains.
Time Dependent Item | A time dependent item is an Item that records the accumulated elapsed time for the Candidate Sessions in a Response Variable that is used during Response Processing.
Time Independent Item | A time independent item is an Item that does not use the accumulated elapsed time during Response Processing. In practice, this information may be collected by a Delivery Engine and may still be reported as part of a Test Report.
UML | Unified Modeling Language
URI | Uniform Resource Identifier
URL | Uniform Resource Locator
VDEX | Vocabulary Definition and Exchange
W3C | World Wide Web Consortium
XML | Extensible Markup Language
XSD | XML Schema Definition

## 1.5 References

[APIP, 14] | IMS Accessible Portable Item Protocol (APIP): Technical Specification for QTIv2.1 Accessibility Features, Colin Smythe (IMS Global), Mark McKell (IMS Global) and Mike Russell (Measured Progress), IMS Global Learning Consortium, 31st March, 2014, http://www.imsglobal.org/apip/apipv1p0/APIP_QTI_v1p0.html, p.162.
[ARIA, 14] | Accessible Rich Internet Applications (WAI-ARIA) 1.0, J.Craig and M.Cooper, World Wide Web Consortium, March 2014, http://www.w3.org/TR/wai-aria/.
[CP, 12] | IMS Content Packaging Specification Information Model v1.2 (Public Draft), Colin Smythe (IMS), Boyd Nielsen (Independent), IMS Global Learning Consortium, March 2007, http://www.imsglobal.org/content/packaging/cpv1p2pd2/imscp_infov1p2pd2.html.
[CSS2, 11] | Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification W3C Recommendation, B.Bos, T.Celik, I.Hickson and H.W.Lie, World Wide Web Consortium, June 2011, http://www.w3.org/TR/CSS21/.
[CSS3, 11] | Cascading Style Sheets (CSS) Snapshot 2010 W3C Working Group Note, E.J.Etemad, World Wide Web Consortium, May 2011, http://www.w3.org/TR/CSS/.
[CSSRUBY, 15] | CSS Ruby Layout Module Level 1 (Editor's Draft), E.Etemad, K.Ishii and R.Ishida, World Wide Web Consortium, April 2015, http://dev.w3.org/csswg/css-ruby/.
[HTML5, 14] | A vocabulary and associated APIs for HTML and XHTML, Ian Hickson, Robin Berjon, Steve Faulkner, Travis Leithead, Erika Doyle Navara, Edward O'Connor and Silvia Pfeiffer, World Wide Web Consortium W3C Recommendation, October 2014, http://www.w3.org/TR/html5/.
[IBAT, 06] | IMS Binding Auto-generation Toolkit (I-BAT), Colin Smythe, IMS Global Learning Consortium, July 2006.
[IMD, 06] | IMS Metadata Best Practice Guide for IEEE 1484.12.1-2002 Standard for Learning Object Metadata, Phil Barker, Lorna M.Campbell, Anthony Roberts and Colin Smythe, IMS Global Learning Consortium Inc., April 2006, http://www.imsglobal.org/metadata/mdv1p3/imsmd_bestv1p3.html.
[ISO 8601] | ISO8601:2004 Data elements and interchange formats - Information interchange - Representation of dates and times, ISO, International Standards Organization (ISO), 2000, p.33.
[ISO, 9899] | ISO/IEC 9899 - Programming languages - C, ISO, International Standads Organization, December 2011, p.538.
[MathML2, 03] | Mathematical Markup Language (MathML) Version 2.0 (Second Edition) , D.Carlisle, P.Ion, R.Miner and N.Poppelier, World Wide Web Consortium, October 2003, http://www.w3.org/TR/MathML2/.
[MathML3, 14] | Mathematical Markup Language (MathML) Version 3.0 2nd Edition W3C Recommendation, D.Carlisle, P.Ion and R.Miner, World Wide Web Consortium, April 2014, http://www.w3.org/TR/MathML/Overview.html.
[PCI, 14] | IMS Global Portable Custom Interactions v1.0 (Candidate Final), M.Aumock, M.McKell and P.Spruiell, IMS Global Learning Consortium, April 2013, http://www.imsglobal.org/assessment/pciv1p0cf/imsPCIv1p0cf.html.
[QTI, 15] | IMS Question and Test Interoperability (QTI) Best Practice and Implementation Guide Version 2.2, Tom Hoffmann and Wilbert Kraan, IMS Global Learning Consortium, September 2015, https://www.imsglobal.org/question/qtiv2p2/imsqti_v2p2_impl.html.
[QTI, 16a] | IMS Question and Test Interoperability (QTI): HTML5 Information Model and XSD Binding Version 2.2.1, Colin Smythe, Wilbert Kraan and Mark McKell, IMS Global Learning Consortium, August 2016, https://www.imsglobal.org/question/qtiv2p2/QTIv2p2p1-HTML5-InfoBindModelv1p0/imsqtiv2p2p1_html5_v1p0_InfoBindv1p0.html.
[QTI, 16b] | IMS Question and Test Interoperability (QTI): Metadata Information Model and XSD Binding Version 2.2, Colin Smythe, Wilbert Kraan and Mark McKell, IMS Global Learning Consortium, August 2016, https://www.imsglobal.org/question/qtiv2p2/QTIv2p2-Metadata-InfoBindModelv1p0p1/imsqtiv2p2_metadata_v1p0_InfoBindv1p0p1.html.
[QTI, 16c] | IMS Question and Test Interoperability (QTI): Result Reporting Information Model and XSD Binding Version 2.2, Colin Smythe, Wilbert Kraan and Mark McKell, IMS Global Learning Consortium, August 2016, https://www.imsglobal.org/question/qtiv2p2/QTIv2p2-Results-InfoBindModelv1p0p1/imsqtiv2p2_result_v1p0_InfoBindv1p0p1.html.
[QTI, 16d] | IMS Question and Test Interoperability (QTI): Usage Data Information Model and XSD Binding Version 2.2, Colin Smythe, Wilbert Kraan and Mark McKell, IMS Global Learning Consortium, August 2016, https://www.imsglobal.org/question/qtiv2p2/QTIv2p2-Usage-InfoBindModelv1p0p1/imsqtiv2p2_usagedata_v1p0_InfoBindv1p0p1.html.
[QTI, 17] | IMS Question and Test Interoperability (QTI) ASI XSD Binding 2.2.1, Colin Smythe and Mark McKell, IMS Global Learning Consortium, November 2017, https://www.imsglobal.org/question/qtiv2p2/QTIv2p2p2-ASI-XSDBindingv1p0/imsqtiv2p2p2_asi_v1p0_XSDBindv1p0.html.
[RFC 2045] | Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, N. Freed and N. Borenstein, Internet Engineering Task Force, November 1996, https://www.ietf.org/rfc/rfc2045.txt.
[RFC 3066] | Tags for the Identification of Languages, H. Alvestrand, Internet Engineering Task Force, January 2001, https://www.ietf.org/rfc/rfc3066.txt.
[RUBYUC, 13] | Use Cases and Exploratory Approaches for Ruby Markup: W3C Working Group Note 08, R. Ishida, World Wide Web Consortium, October 2013, http://www.w3.org/TR/ruby-use-cases/.
[SSML, 10] | Speech Synthesis Markup Language (SSML) Version 1.1 W3C Recommendation, D.C.Burnett and Z.W.Shuang, World Wide Web Consortium, September 2010, http://www.w3.org/TR/speech-synthesis11/.
[URI, 98] | RFC 2396 Uniform Resource Identifiers (URI): Generic Syntax, T. Berners-Lee, R. Fielding and L. Masinter, Internet Engineering Task Force, August 2008, https://www.ietf.org/rfc/rfc2396.txt.
[VDEX, 04] | IMS Vocabulary Definition Exchange Information Model v1.0, Adam Cooper, IMS Global Learning Consortium, February 2004, http://www.imsglobal.org/vdex/vdexv1p0/imsvdex_infov1p0.html.
[W3C, 14] | CSS Writing Modes Level 3 W3C Candidate Recommendation, fantasai and K.Ishii, World Wide Web Consortium, March 2014, http://www.w3.org/TR/css-writing-modes-3/.
[XHTML, 10] | XHTML 1.1 - Module-based XHTML W3C Recommendation - Second Edition, M.Altheim and S.McCarron, World Wide Web Consortium, November 2010, http://www.w3.org/TR/xhtml11/.
[XML, 00] | Extensible Markup Language (XML), Version 1.0 (second edition), T.Bray, J.Paoli, C. M. Sperberg-McQueen and E.Maler, World Wide Web Consortium, October 2000, http://www.w3.org/TR/2000/REC-xml-20001006.
[XSCHEMA, 01] | XML Schema Part 2: Datatypes - W3C Recommendation 02, Paul V. Biron and A.Malhotra, World Wide Web Consortium, May 2001, http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/.

toc | top

# 2. Key Data Model Features

## 2.1 The Structure of the Data Model

The QTI v2.2 specification has four components that provide the total data interoperability capability:

- QTI Assessment, Section and Item - the core that defines the actual tests and/or question data exchange (including the content itself);
- QTI Metadata - QTI-specific metadata data;
- QTI Usage Data - statistical data about the usage of the Assessment and/or Items;
- QTI Results Reporting - reporting of the results assigned by outcomes and response processing of the Assessment and/or Items.

### 2.1.1 Assessments, Sections and Tests

This is the core functionality of the QTI specification and is the component that is addressed specifically by this document. This specification defines the exchange of a single Assessment (also known as a Test and Quiz), Sections and/or Items. Structurally an Assessment consists of one or more TestParts; each TestPart consists of one or more Sections; each Section consists of one or more Sections (hence a Section is recursive) and/or Items. This specification also permits the seperate exchange of an Outcome Declaration, a Response Processing Template and content Stimulus. The data model root classes are:

- AssessmentTest - for a test;
- AssessmetSection - for a Section;
- AssessmentItem - for an Item;
- AssessmentStimulus - for content stimulus;
- OutcomeDeclaration - for an outcome declaration;
- ResponseProcessing - for a response processing template.

This data model consists of two XSD bindings that are linked using namespacing. See the QTI HTML5 documentation [QTI, 16a] for the definition of the HTML5-based content that is used with the QTI ASI definition. The data exchange is achieved as a zip package as defined in [CP, 12].

### 2.1.2 Metadata

This is the QTI-specific metadata. In QTIv2.2 the QTI-specific metadata [QTI, 16b] is aligned with the IEEE Learning Object Metadata (LOM) in accordance with the IMS Metadata Best Practice and Implementation Guide for [IMD, 06]. The IEEE LOM standard defines a set of metadata elements that can be used to describe learning resources, but does not describe assessment resources in sufficient detail. The application profile provided in this document therefore extends the IEEE LOM to meet the specific needs of QTI developers wishing to associate metadata with items (as defined by the accompanying Item Information Model). QTIv2.2 further extends this to enable the description of tests, pools and object banks.

This data model has its own XSD binding.

### 2.1.3 Usage Data

QTI Usage Data defines the exchange of statistical information about the usage of a set of items. The corresponding documentation [QTI, 16d] provides detailed information about the data model. While the expectation is that the original definition of the corresponding Test and Items is based upon the use of the QTIv2.2 Assessment, Section and Item specification, this is not a pre-requisite for the use of this usage data representation.

The root class is 'UsageData'. Usage data, most commonly item statistics, do not form part of an assessmentItem directly because they always relate to some context or domain in which the statistics are valid. Therefore, this specification defines a separate class for describing these statistics. Each statistic refers to both its context and to the assessmentItem(s) it relates to. Therefore, instances of this class are bound and packaged separately for interoperability.

This data model has its own XSD binding.

### 2.1.4 Results Reporting

QTI Result Reporting defines the exchange of reporting the results of an assessment. The corresponding documentation [QTI, 16c] provides detailed information about the model and specifies the associated requirements on delivery engines. While the expectation is that the original definition of the corresponding Test and Items is based upon the use of the QTIv2.2 Assessment, Section and Item specification, this is not a pre-requisite for the use of this result reporting representation.

The root class is 'AssessmentResult'. An AssessmentResult is used to report the results of a candidate's interaction with a test and/or one or more items attempted. Information about the test is optional, in some systems it may be possible to interact with items that are not organized into a test at all. For example, items that are organized with learning resources and presented individually in a formative context.

This data model has its own XSD binding.

## 2.2 Items

In this specification an assessment item encompasses the information that is presented to a candidate and information about how to score the item. Scoring takes place when candidate responses are transformed into outcomes by response processing rules. It is sometimes desirable to have several different items that appear the same to the candidate but which are scored differently. In this specification, these are distinct items by definition and must therefore have distinct identifiers. To help facilitate the exchange of items that share significant parts of their presentation this specification supports the inclusion of separately managed item fragments in the itemBody. The core functionality of an Item is defined using the classes:

- AssessmentItem;
- ItemBody.

### 2.2.1 The Item Session Lifecycle

An item session is the accumulation of all the attempts at a particular instance of an item made by a candidate. In some types of test, the same item may be presented to the candidate multiple times e.g. during 'drill and practice'. Each occurrence or instance of the item is associated with its own item session. Figure 2.1, illustrates the user-perceived states of the item session. Not all states will apply to every scenario, for example feedback may not be provided for an item or it may not be allowed in the context in which the item is being used. Similarly, the candidate may not be permitted to review their responses and/or examine a model solution. In practice, systems may support only a limited number of the indicated state transitions and/or support other state transitions not shown here.

Figure 2.1 - The lifecycle of an Item session.

For system developers, an important first step in determining which requirements apply to their system is to identify which of the user-perceived states are supported in their system and to match the state transitions indicated in the diagram to their own event model.The discussion that follows forms part of this specification's requirements on Delivery Engines.

The session starts when the associated item first becomes eligible for delivery to the candidate. The item session's state is then maintained and updated in response to the actions of the candidate until the session is over. At any time the state of the session may be turned into an itemResult. A delivery system may also allow an itemResult to be used as the basis for a new session in order to allow a candidate's responses to be seen in the context of the item itself (and possibly compared to a solution) or even to allow a candidate to resume an interrupted session at a later time.

The initial state of an item session represents the state after it has been determined that the item will be delivered to the candidate but before the delivery has taken place.

In a typical non-Adaptive Test the items are selected in advance and the candidate's interaction with all items is reported at the end of the test session, regardless of whether or not the candidate actually attempted all the items. In effect, item sessions are created in the initial state for all items at the start of the test and are maintained in parallel. In an Adaptive Test the items that are to be presented are selected during the session based on the responses and outcomes associated with the items presented so far. Items are selected from a large pool and the delivery engine only reports the candidate's interaction with items that have actually been selected.

A candidate's interaction with an item is broken into 0 or more attempts. During each attempt the candidate interacts with the item through one or more candidate sessions. At the end of a candidate session the item may be placed into the suspended state ready for the next candidate session. During a candidate session the item session is in the interacting state. Once an attempt has ended response processing takes place, after response processing a new attempt may be started.

For non-adaptive items, response processing typically takes place a limited number of times, usually only once. For adaptive items, no such limit is required because the response processing adapts the values it assigns to the outcome variables based on the path through the item. In both cases, each invocation of response processing occurrs at the end of each attempt. The appearance of the item's body, and whether any modal feedback is shown, is determined by the values of the outcome variables.

When no more attempts are allowed the item session passes into the closed state. Once in the closed state the values of the response variables are fixed. A delivery system or reporting tool may still allow the item to be presented after it has reached the closed state. This type of presentation takes place in the review state, summary feedback may also be visible at this point if response processing has taken place and set a suitable outcome variable.

Finally, for systems that support the display of solutions, the item session may pass into the solution state. In this state, the candidate's responses are temporarily replaced by the correct values supplied in the corresponding responseDeclarations (or NULL if none was declared).

### 2.2.2 Item Variables

Item variables are declared by variable declarations: response, outcome or template variables. All variables must be declared except for the built-in session variables referred to below which are declared implicitly and must not be declared. The purpose of the declaration is to associate an identifier with the variable and to identify the runtime type of the variable's value. An item variable may have no value at all, in which case it is said to have the special value NULL. For example, if the candidate has not yet had an opportunity to respond to an interaction then any associated response variable will have a NULL value. Empty containers and empty strings are always treated as NULL values. The declaration of variables is defined by the classes:

- ResponseDeclaration;
- OutcomeDeclaration;
- TemplateDeclaration.

#### 2.2.2.1 Response Variable

Response variables are declared by response declarations and bound to interactions in the itemBody. Each response variable declared may be bound to one and only one interaction. At runtime, response variables are instantiated as part of an item session. Their values are always initialized to NULL (no value) regardless of whether or not a default value is given in the declaration. A response variable with a NULL value indicates that the candidate has not offered a response, either because they have not attempted the item at all or because they have attempted it and chosen not to provide a response. If a default value has been provided for a response variable then the variable is set to this value at the start of the first attempt. If the candidate never attempts the item, in other words, the item session passes straight from the initial state to the closed state without going through the interacting state, then the response variable remains NULL and the default value is never used.

Implementors of Delivery Engine's should take care when implementing user interfaces for items with default response variable values. If the associated interaction is left in the default state (i.e., representing the default value) then it is important that the system is confident that the candidate intended to submit this value and has not simply failed to notice that a default has been provided. This is especially true if the candidate's attempt ended due to some external event, such as running out of time. The techniques required to distinguish between these cases are an issue for user interface design and are therefore out of scope for this specification.

There are two built-in response variables: 'numAttempts' and 'duration'. These are declared implicitly and must not appear in a 'responseDeclaration'.

All Delivery Engines must maintain the value of numAttempts. This is a single integer that records the number of attempts at each item the candidate has taken. The value defaults to 0 initially and then increases by 1 at the start of each attempt.

Systems that support Time Dependent Items must also maintain the value of duration. The duration is defined as being a single float that records the accumulated time (in seconds) of all Candidate Sessions for all Attempts. In other words the time between the beginning and the end of the item session minus any time the session was in the suspended state. The resolution of the duration must be at least 1s and should be 0.1s or smaller. If the resolution is denoted by epsilon then each value of duration represents the range of values 'duration' <= 't' <= 'duration+epsilon'. In other words, duration values are truncated.

The value of duration for items that are not time dependent must not be used in any item or test-level expression, though systems should still report it in itemResults when it is known.

#### 2.2.2.2 Outcomes Variable

Outcome variables are declared by outcome declarations. Their value is set either from a default given in the declaration itself or by a responseRule during responseProcessing.

Items that declare a numeric outcome variable representing the candidate's overall performance on the item should use the outcome name 'SCORE' for the variable. SCORE needs to be a float.

Items that declare a maximum score (in multiple response choice interactions, for example) should do so by declaring the 'MAXSCORE' variable. MAXSCORE needs to be a float.

Items or tests that want to make the fact that the candidate scored above a predefined treshold available as a variable should use the 'PASSED' variable. PASSED needs to be a boolean.

At runtime, outcome variables are instantiated as part of an item session. Their values may be initialized with a default value and/or set during responseProcessing. If no default value is given in the declaration then the outcome variable is initialized to NULL unless the outcome is of a numeric type (integer or float) in which case it is initialized to 0.

For Non-adaptive Items, the values of the outcome variables are reset to their default values prior to each invocation of responseProcessing. For Adaptive Items the outcome variables retain the values that were assigned to them during the previous invocation of response processing. For more information, see Response Processing (Subsection 2.5).

There is one built-in outcome variable, 'completionStatus', that is declared implicitly and must not appear in an outcomeDeclaration. Delivery Engines must maintain the value of the built-in outcome variable completionStatus, a single identifier. It starts with the reserved value "not_attempted". At the start of the first attempt it changes to the reserved value "unknown". It remains with this value for the duration of the item session unless set to a different value by a setOutcomeValue rule in responseProcessing. There are four permitted values:

- 'completed' - the learner has experienced enough of the item to consider it completed;
- 'incomplete' - the learner has not experienced enough of the item to consider it completed;
- 'not_attempted' - the learner is considered to have not used the item in any significant way;
- 'unknown' - no assertion on the state of completion can be made.

Any one of these values may be set during response processing. If an Adaptive Item sets completionStatus to completed then the session must be placed into the closed state, however an item session is not required to wait for the completed signal before terminating, it may terminate in response to a direct request from the candidate, through running out of time or through some other exceptional circumstance. Adaptive Items must maintain a suitable value and should set completionStatus to "completed" to indicate when the cycle of interaction, response processing and feedback must stop. Non-adaptive Items are not required to set a value for completionStatus, but they may do so. Delivery Engines are encouraged to use the value of completionStatus when communicating externally

## 2.3 The Content Model

Most of the content within QTI is used in the content of the AssessmentItem. The item body contains the text, graphics, media objects and interactions that describe the item's content and information about how it is structured. The body is presented by combining it with stylesheet information, either explicitly or implicitly using the default style rules of the delivery or authoring system.

The body must be presented to the candidate when the associated item session is in the interacting state. In this state, the candidate must be able to interact with each of the visible interactions and therefore set or update the values of the associated response variables. The body may be presented to the candidate when the item session is in the closed or review state. In these states, although the candidate's responses should be visible, the interactions must be disabled so as to prevent the candidate from setting or updating the values of the associated response variables. Finally, the body may be presented to the candidate in the solution state, in which case the correct values of the response variables must be visible and the associated interactions disabled.

The content model employed by this specification uses many concepts taken directly from [XHTML, 10]. In effect, this part of the specification defines a profile of XHTML. Only some of the elements defined in XHTML are allowable in an assessmentItem and of those that are, some have additional constraints placed on their attributes. Only those elements from XHTML that are explicitly defined within this specification can be used (see Subsection 2.3.2 XHTML Elements [XHTML, 10] for details). Finally, this specification defines some new elements which are used to represent the interactions and to control the display of Integrated Feedback and content restricted to one or more of the defined content views.

### 2.3.1 Basic Classes

Underpinning the content model are a number of abstract classes that are used to group elements of the body into categories that define peer-groups. These abstract classes are:

- BlockContentModel - the HTML block elements used in the context of the abstract classeses BlockGroup and BlockStaticGroup;
- BlockGroup - the broader set of Block content that adds the range of QTI interactions, plus other markup, to the base HTML Block content;
- BlockStaticGroup - a subset of BlockGroup that is used for the GapMatch and HotText interactions;
- FeedandTempBlockStatic - content for Template Blocks based upon static content;
- FeedbackBlockStatic - enables the FeedbackBlock class to include any sequence of content based upon the blockGroup, inline content, inline templates, inline feedback and printedVariables;
- FeedbackFlowStaticGroup - to enable the content to be defined for Modal and Test feedback;
- FeedbackInlineGroup - the content for the inline feedback;
- FlowContentModel - HTML flow content (not including QTI interactions). These are tags that can appear inside list items, table cells, etc. which includes block-type and inline-type elements;
- FlowGroup - HTML flow content including the set of QTI interactions. These tags that can appear inside list items, table cells, etc. which includes block-type and inline-type elements;
- FlowStaticGroup - HTML flow content that includes support for feedback and template-base content;
- InlineChoiceGroup - enables a simple run of text to be displayed to the user, may be subject to variable value substitution with printedVariable and may include feedback and template-based content;
- InlineContentModel - the set of HTML inline content tags to be used to create the corresponding HTML content;
- InlineGroup - elements that behave as spans of text, such as the contents of paragraphs and includes the inline QTI interactions;
- InlineStaticGroup - the set of HTML inline content tags plus a limited set of QTI-specific tags to be used to create the corresponding HTML content;
- ItemBodySelect - permits the mixing of 'rubricBock' with BlockContent within the ItemBody;
- ObjectFlowGroup - elements that can appear within an 'object';
- PromptStaticGroup - the content that is permitted within the 'prompt' element
- RubricBlockContentModel - defines the content that is permitted at the top-level wthin a 'rubricBlock' element;
- RubricTemplateBlockContentModel - defines the content that is permitted wthin a 'rubricBlock' element as a child of 'templateBlock';
- RubricTemplateInlineStaticGroup - defines the content that is permitted wthin a 'rubricBlock' element as a child of 'templateInline'.

### 2.3.2 XHTML Elements

The structural elements of the content model are taken from [XHTML, 10]. Only those characteristics listed here may be used (including attributes inherited from parent classes). By default, elements and attributes have the same interpretation and restrictions as the corresponding elements and attributes in [XHTML, 10].

#### 2.3.2.1 Text Elements

The supported text elements are:

- 'abbr', acronym' and 'address';
- 'blockquote' and 'br';
- 'cite' and 'code';
- 'dfn' and 'div';
- 'em';
- 'h1', 'h2', 'h3', 'h4', 'h5' and 'h6';
- 'kbd';
- 'p' and 'pre';
- 'q';
- 'samp', 'span' and 'strong';
- 'var'.

#### 2.3.2.2 List Elements

The supported list elements are:

- 'dl', 'dt' and 'dd';
- 'li';
- 'ol';
- 'ul'.

#### 2.3.2.3 Object Elements

The supported object elements are:

- 'object'.

#### 2.3.2.4 Presentation Elements

The supported presentation elements are:

- 'b' and 'big';
- 'hr';
- 'i';
- 'small', 'sub' and 'sup';
- 'tt'.

#### 2.3.2.5 Table Elements

The supported table elements are:

- 'caption', 'col' and 'colgroup';
- 'table', 'tbody', 'td', 'tfoot', 'thead' and 'tr'.

#### 2.3.2.6 Image Elements

The supported image elements are:

- 'img'.

#### 2.3.2.7 Hypertext Element

The supported hypertext elements are:

- 'a'.

#### 2.3.2.8 HTML5 Elements

The supported HTML5 elements are:

- 'article', 'aside' and 'audio';
- 'bdi';
- 'figcaption', 'figure' and 'footer';
- 'header';
- 'label';
- 'nav';
- 'rb', 'rp', 'rt', 'rtc' and 'ruby';
- 'section' and 'source';
- 'track';
- 'video'.

### 2.3.3 MathML

MathML defines a Markup Language for describing mathematical notation using XML [MathML2, 03], [MathML3, 14]. The primary purpose of MathML is to provide a language for embedding mathematical expressions into other documents, in particular into HTML documents.

It is often desirable to vary elements of a mathematical expression when creating item templates. Although it is impossible to embed objects such as printedVariable defined for that purpose within a math object the techniques described in this section can be used to achieve a similar effect. In MathML, numbers are represented either by the 'mn' or 'cn' tags, for presentation or content representation respectively. Similarly, 'mi' and 'ci' represent identifiers. If mathVariable is set in a template variable's declaration then all instances of 'mi' and 'ci' that match the name of the template variable must be replaced by 'mn' and 'cn' respectively with the template variable's value as their content. It is possible that this technique of expanding template variables will be extended to other elements of MathML in future. The set of classes that support the MathML are:

- MathML 2 (imported);
- MathML 3 (imported).

### 2.3.4 Variable Content

This specification defines two methods by which the content of an assessmentItem can vary depending on the state of the item session. The first method is based on the value of an outcome variable and the second uses templates. When using outcome variables the classes that support this method are:

- FeedbackBlock;
- FeedbackInline;
- RubricBlock;
- PrintedVariable.

The syntax of the format attribute is based on the format conversion specifiers defined in the C programming language [ISO 9899] for use with printf and related functions. Each conversion specifier starts with a '%' character and is followed by zero or more flag characters (#, 0, -, " " [space] and +), an optional digit string indicating the minimum field width, an optional precision (consisting of a "." followed by zero or more digits) and finally one of the conversion type codes: E, e, f, G, g, r, R, i, o, X, or x. These are interpreted according to the C standard with the exception of i, which may be used to format numbers in bases other than 10 using the base attribute, and r/R which round to the number of significant figures given by the precision in the same way as g/G except that scientific format is only used if the requested number of significant figures is less than the number of digits to the left of the decimal point.

### 2.3.5 Formatting Items with Stylesheets

QTI recommends the use of Cascading Style Sheets (CSS) for controlling the content formating. QTI supports CSS 2.1 [CSS2, 11] and CSS 3.0 [CSS3, 11]. The classes that define the associated stylesheet assignment are:

- Stylesheet.

Stylesheets are applicable to the content in the following classes:

- AssessmentItem;
- AssessmentStimulus;
- AssessmentTests;
- FeedbackBlock;
- ModalFeedback;
- RubricBlock;
- RubricBlockTemplateBlock;
- TemplateBlock;
- TemplateBlockFeedbackBlock;
- TestFeedback.

### 2.3.6 Accessibility

There are three accessibility features that are supported by QTI 2.2:

- Accessible Portable Item Protocol (APIP) - enables the APIP markup to be used;
- Speech Synthesis Markup Language (SSML) - enables text to have SSML annotation;
- WAI-ARIA - allows the ARIA annotations to be used on the HTML and interaction tags.

See Subsection 2.14 for more information on how Accessibility is supported.

### 2.3.7 Internationalization

As part of the QTIv2.2 new features, support for internationalization was added. The internationalization features now supported are:

- Bidirectional Text - provision of right-to-left and left-to-right text presentation;
- Ruby - these annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations;
- Vertical Writing - this is achieved by using CSS as recommended in the W3C's 'CSS Writing Modes Module Level 3' [W3C, 14] (at the time of QTI publication this W3C document was a Working Draft).

See Subsection 2.15 for more information on how Internationalization is supported.

## 2.4 Interactions

### 2.4.1 Simple Interactions

The simple interactions are:

- Choice Interaction;
- Order Interaction;
- Associate Interaction;
- Match Interaction;
- Gap Match Interaction.

#### 2.4.1.1 Choice Interaction

The choice interaction presents a set of choices to the candidate. The candidate's task is to select one or more of the choices, up to a maximum of maxChoices. The interaction is always initialized with no choices selected. The choiceInteraction must be bound to a response variable with a baseType of identifier and single or multiple cardinality. The relevant classes are:

- ChoiceInteraction.

#### 2.4.1.2 Order Interaction

In an order interaction the candidate's task is to reorder the choices, the order in which the choices are displayed initially is significant. By default the candidate's task is to order all of the choices but a subset of the choices can be requested using the maxChoices and minChoices attributes. When specified the candidate must select a subset of the choices and impose an ordering on them. If a default value is specified for the response variable associated with an order interaction then its value should be used to override the order of the choices specified here. By its nature, an order interaction may be difficult to render in an unanswered state, especially in the default case where all choices are to be ordered. Implementors should be aware of the issues concerning the use of default values described in the section on Response Variables. The orderInteraction must be bound to a response variable with a baseType of identifier and ordered cardinality only. The relevant classes are:

- OrderInteraction;
- SimpleChoice.

#### 2.4.1.3 Associate Interaction

An associate interaction is a blockInteraction that presents candidates with a number of choices and allows them to create associations between them. The associateInteraction must be bound to a response variable with base-type pair and either single or multiple cardinality. The relevant classes are:

- AssociateInteraction;
- SimpleAssociableChoice.

#### 2.4.1.4 Match Interaction

A match interaction is a blockInteraction that presents candidates with two sets of choices and allows them to create associates between pairs of choices in the two sets, but not between pairs of choices in the same set. Further restrictions can still be placed on the allowable associations using the matchMax attribute of the choices. The matchInteraction must be bound to a response variable with base-type directedPair and either single or multiple cardinality. The relevant classes are:

- MatchInteraction;
- SimpleMatchSet;
- SimpleAssociableChoice.

#### 2.4.1.5 Gap Match Interaction

A gap match interaction is a blockInteraction that contains a number gaps that the candidate can fill from an associated set of choices. The candidate must be able to review the content with the gaps filled in context, as indicated by their choices. The gapMatchInteraction must be bound to a response variable with base-type directedPair and either single or multiple cardinality, depending on the number of gaps. The choices represent the source of the pairing and gaps the targets. Each gap can have at most one choice associated with it. The maximum occurrence of the choices is controlled by the matchMax attribute of gapChoice. The relevant classes are:

- GapMatchInteraction;
- Gap;
- GapChoice;
- GapText;
- GapImg.

### 2.4.2 Text-based Interactions

The text-based interactions are:

- InlineChoiceInteraction;
- TextEntryInteraction;
- ExtendedTextInteraction;
- HotTextInteraction.

#### 2.4.2.1 Inline Choice Interaction

An inline choice is an inlineInteraction that presents the user with a set of choices, each of which is a simple piece of text. The candidate's task is to select one of the choices. Unlike the choiceInteraction, the delivery engine must allow the candidate to review their choice within the context of the surrounding text. The inlineChoiceInteraction must be bound to a response variable with a baseType of identifier and single cardinality only. The relevant classes are:

- InlineChoiceInteraction;
- InlineChoice.

#### 2.4.2.2 Text Interaction

A textEntry interaction is an inlineInteraction that obtains a simple piece of text from the candidate. Like inlineChoiceInteraction, the delivery engine must allow the candidate to review their choice within the context of the surrounding text. The textEntryInteraction must be bound to a response variable with either single or record cardinality only. For single cardinality the baseType must be one of string, integer or float. For record cardinality the fields are 'stringValue', 'floatValue', etc. The relevant class is:

- TextEntryInteraction.

TextEntryInteraction is a String interaction and can be bound to numeric response variables, instead of strings, if desired. If detailed information about a numeric response is required then the string interaction can be bound to a response variable with record cardinality. The resulting value contains the following fields:

- stringValue - the string, as typed by the candidate;
- floatValue - the numeric value of the string typed by the candidate, as a float;
- integerValue - the numeric value of the string typed by the candidate if no fractional digits or exponent were specified, otherwise NULL. An integer;
- leftDigits - the number of digits to the left of the point. An integer;
- rightDigits - rightDigits: the number of digits to the right of the point. An integer;
- ndp- the number of fractional digits specified by the candidate. If no exponent was given this is the same as rightDigits. An integer;
- nsf - the number of significant digits specified by the candidate. An integer;
- exponent - the integer exponent given by the candidate or NULL if none was specified.

#### 2.4.2.3 Extended Text Interaction

An extended text interaction is a blockInteraction that allows the candidate to enter an extended amount of text. The extendedTextInteraction must be bound to a response variable of single, multipe, ordered or record cardinality. If the response variable has record cardinality the fields in the records are 'stringValue' 'floatValue', etc. Otherwise it must have a baseType of string, integer or float. When bound to response variable with single cardinality a single string of text is required from the candidate. When bound to a response variable with multiple or ordered cardinality several separate text strings may be required, see maxStrings below. The relevant class is:

- ExtendedTextInteraction.

ExtendedTextInteraction is a String interactions and can be bound to numeric response variables, instead of strings, if desired. If detailed information about a numeric response is required then the string interaction can be bound to a response variable with record cardinality. The resulting value contains the following fields:

- stringValue - the string, as typed by the candidate;
- floatValue - the numeric value of the string typed by the candidate, as a float;
- integerValue - the numeric value of the string typed by the candidate if no fractional digits or exponent were specified, otherwise NULL. An integer;
- leftDigits - the number of digits to the left of the point. An integer;
- rightDigits - rightDigits: the number of digits to the right of the point. An integer;
- ndp- the number of fractional digits specified by the candidate. If no exponent was given this is the same as rightDigits. An integer;
- nsf - the number of significant digits specified by the candidate. An integer;
- exponent - the integer exponent given by the candidate or NULL if none was specified.

#### 2.4.2.4 Hot Text Interaction

The hottext interaction presents a set of choices to the candidate represented as selectable runs of text embedded within a surrounding context, such as a simple passage of text. Like choiceInteraction, the candidate's task is to select one or more of the choices, up to a maximum of maxChoices. The interaction is initialized from the defaultValue of the associated response variable, a NULL value indicating that no choices are selected (the usual case). The hottextInteraction must be bound to a response variable with a baseType of identifier and single or multiple cardinality. The relevant classes are:

- HotTextInteraction;
- HotText.

### 2.4.3 Graphical Interactions

The graphical interactions are:

- HotspotInteraction;
- GraphicOrderInteraction;
- GraphicAssociateInteraction;
- GraphicGapMatchInteraction;
- SelectPointInteraction;
- PositionObjectInteraction.

#### 2.4.3.1 Hotspot Interaction

A hotspot interaction is a graphical interaction with a corresponding set of choices that are defined as areas of the graphic image. The candidate's task is to select one or more of the areas (hotspots). The hotspot interaction should only be used when the spacial relationship of the choices with respect to each other (as represented by the graphic image) is important to the needs of the item. Otherwise, choiceInteraction should be used instead with separate material for each option. The delivery engine must clearly indicate the selected area(s) of the image and may also indicate the unselected areas as well. Interactions with hidden hotspots are achieved with the selectPointInteraction. The hotspot interaction must be bound to a response variable with a baseType of identifier and single or multiple cardinality.The relevant classes are:

- HotspotInteraction;
- HotspotChoice.

#### 2.4.3.2 Graphic Order Interaction

A graphic order interaction is a graphic interaction with a corresponding set of choices that are defined as areas of the graphic image. The candidate's task is to impose an ordering on the areas (hotspots). The order hotspot interaction should only be used when the spacial relationship of the choices with respect to each other (as represented by the graphic image) is important to the needs of the item. Otherwise, orderInteraction should be used instead with separate material for each option. The delivery engine must clearly indicate all defined area(s) of the image. The order hotspot interaction must be bound to a response variable with a baseType of identifier and ordered cardinality.The relevant classes are:

- GraphicOrderInteraction;
- HotspotChoice.

#### 2.4.3.3 Graphic Associate Interaction

A graphic associate interaction is a graphic interaction with a corresponding set of choices that are defined as areas of the graphic image. The candidate's task is to associate the areas (hotspots) with each other. The graphic associate interaction should only be used when the graphical relationship of the choices with respect to each other (as represented by the graphic image) is important to the needs of the item. Otherwise, associateInteraction should be used instead with separate Material for each option. The delivery engine must clearly indicate all defined area(s) of the image. The graphicAssociateInteraction must be bound to a response variable with base-type pair and either single or multiple cardinality. The relevant classes are:

- GraphicAssociateInteraction;
- AssociableHotspot.

#### 2.4.3.4 Graphic Gap Match Interaction

A graphic gap-match interaction is a graphical interaction with a set of gaps that are defined as areas (hotspots) of the graphic image and an additional set of gap choices that are defined outside the image. The candidate must associate the gap choices with the gaps in the image and be able to review the image with the gaps filled in context, as indicated by their choices. Care should be taken when designing these interactions to ensure that the gaps in the image are a suitable size to receive the required gap choices. It must be clear to the candidate which hotspot each choice has been associated with. When associated, choices must appear wholly inside the gaps if at all possible and, where overlaps are required, should not hide each other completely. If the candidate indicates the association by positioning the choice over the gap (e.g. drag and drop) the system should 'snap' it to the nearest position that satisfies these requirements. The graphicGapMatchInteraction must be bound to a response variable with base-type directedPair and multiple cardinality. The choices represent the source of the pairing and the gaps in the image (the hotspots) the targets. Unlike the simple gapMatchInteraction, each gap can have several choices associated with it if desired, furthermore, the same choice may be associated with an associableHotspot multiple times, in which case the corresponding directed pair appears multiple times in the value of the response variable. The relevant classes are:

- GraphicGapMatchInteraction;
- GapImg;
- AssociableHotspot.

#### 2.4.3.5 Select Point Interaction

Like hotspotInteraction, a select point interaction is a graphic interaction. The candidate's task is to select one or more points. The associated response may have an areaMapping that scores the response on the basis of comparing it against predefined areas but the delivery engine must not indicate these areas of the image. Only the actual point(s) selected by the candidate shall be indicated. The select point interaction must be bound to a response variable with a baseType of point and single or multiple cardinality. The relevant class is:

- SelectPointInteraction.

#### 2.4.3.6 Position Object Interaction

The position object interaction consists of a single image which must be positioned on another graphic image (the stage) by the candidate. Like selectPointInteraction, the associated response may have an areaMapping that scores the response on the basis of comparing it against predefined areas but the delivery engine must not indicate these areas of the stage. Only the actual position(s) selected by the candidate shall be indicated. The position object interaction must be bound to a response variable with a baseType of point and single or multiple cardinality. The point records the coordinates, with respect to the stage, of the centre point of the image being positioned. The relevant classes are:

- PositionObjectInteraction;
- PositionObjectStage.

### 2.4.4 Miscellaneous Interactions

The set of miscellaneous interactions are:

- SliderInteraction;
- MediaInteraction;
- DrawingInteraction;
- UploadInteraction;
- CustomInteraction.

#### 2.4.4.1 Slider Interaction

The slider interaction presents the candidate with a control for selecting a numerical value between a lower and upper bound. It must be bound to a response variable with single cardinality with a base-type of either integer or float. The relevant class is:

- SliderInteraction.

#### 2.4.4.2 Media Interaction

The media interaction allows more control over the way the candidate interacts with a time-based media object and allows the number of times the media object was experienced to be reported in the value of the associated response variable, which must be of base-type integer and single cardinality. The relevant class is:

- MediaInteraction.

#### 2.4.4.3 Drawing Interaction

The drawing interaction allows the candidate to use a common set of drawing tools to modify a given graphical image (the canvas). It must be bound to a response variable with base-type file and single cardinality. The result is a file in the same format as the original image. The relevant class is:

- DrawingInteraction.

#### 2.4.4.4 Upload Interaction

The upload interaction allows the candidate to upload a pre-prepared file representing their response. It must be bound to a response variable with base-type file and single cardinality. The relevant class is:

- UploadInteraction.

#### 2.4.4.5 Custom Interaction

Custom Interaction - the custom interaction provides an opportunity for extensibility of this specification to include support for interactions not currently documented. The relevant class is:

- CustomInteraction.

### 2.4.5 Alternative Ways to End an Attempt

The end attempt interaction is a special type of interaction which allows item authors to provide the candidate with control over the way in which the candidate terminates an attempt. The candidate can use the interaction to terminate the attempt (triggering response processing) immediately, typically to request a hint. It must be bound to a response variable with base-type boolean and single cardinality.

If the candidate invokes response processing using an endAttemptInteraction then the associated response variable is set to true. If response processing is invoked in any other way, either through a different endAttemptInteraction or through the default method for the delivery engine, then the associated response variable is set to false. The default value of the response variable is always ignored. The relevant class is:

- EndAttemptInteraction.

### 2.4.6 Alternative Ways to Provide Hints and Other Supplementary Material

The 'infoControl' element is a means to provide the candidate with extra information about the item when s/he chooses to trigger the control. The extra information can be a hint, but could also be additional tools such as a ruler or a (JavaScript) calculator. Unlike endAttemptInteraction, triggering infoControl has no consequence for response processing. That means that its triggering won't be recorded, nor the candidate penalised for triggering it. The relevant class is:

- InfoControl.

## 2.5 Response Processing

Response processing is the process by which the Delivery Engine assigns outcomes based on the candidate's responses. The state representation for the response processing is shown in Figure 2.2. The outcomes may be used to provide feedback to the candidate. Feedback is either provided immediately following the end of the candidate's attempt or it is provided at some later time, perhaps as part of a summary report on the item session.

Figure 2.2 - The state diagram for response processing.

The end of an attempt, and therefore response processing, must only take place in direct response to a user action or in response to some expected event, such as the end of a test. An item session that enters the suspended state may have values for the response variables that have yet to be submitted for response processing.

For a Non-adaptive Item the values of the outcome variables are reset to their default values (or NULL if no default is given) before each invocation of response processing. However, although a Delivery Engine may invoke response processing multiple times for a Non-adaptive Item it must only report the first set of outcomes produced or limit the number of attempts to some predefined limit agreed outside the scope of this specification.

For an Adaptive Item the values of the outcome variables are not reset to their defaults. A Delivery Engine that supports Adaptive Items must allow the candidate to revise and submit their responses for response processing and must only report the last set of outcomes produced. Furthermore, it must present all applicable modal and integrated feedback to the candidate. Subsequent response processing may take into consideration the feedback seen by the candidate when updating the session outcomes. An adaptive item can signal to the delivery engine that the candidate has completed the interaction and no more attempts are to be allowed by setting the built-in outcome variable 'completionStatus' to completed.

### 2.5.1 Response Processing Templates

Response processing involves the application of a set of responseRules, including the testing of responseConditions and the evaluation of expressions involving the item variables. For delivery engines that are only designed to support very simple use cases the implementation of a system for carrying out this evaluation, conditional testing and processing may pose a barrier to the adoption of the specification.

To alleviate this problem, the implementation of generalized response processing is an optional feature. Engines that do not support it can instead implement a smaller number of standard response processors called response processing templates described below. These templates are described using the processing language defined in this specification and are distributed (in XML form) along with it. Delivery engines that support generalized response processing do not need to implement special mechanisms to support them as a template file can be parsed directly while processing the assessmentItem that refers to it.

Delivery engines that do not support generalized response processing but do support response processing mechanisms that go beyond the standard templates described below should, where possible, define templates of their own. Authors wishing to write items for those delivery engines can then refer to these custom templates. Publishing these custom templates will then ensure that these items can be used with delivery engines that do support generalized response processing.

There are three standard response processing templates available:

- MATCH CORRECT - the match correct response processing template uses the match operator to match the value of a response variable RESPONSE with its correct value. It sets the outcome variable SCORE to either 0 or 1 depending on the outcome of the test. A response variable with called RESPONSE must have been declared and have an associated correct value. Similarly, the outcome variable SCORE must also have been declared. The template applies to responses of any baseType and cardinality though bear in mind the limitations of matching more complex data types. This template shouldn't be used for testing the numerical equality of responses with base-type float. Note that this template always sets a value for SCORE, even if no RESPONSE was given.
  Full template URL: http://www.imsglobal.org/question/qtiv2p2/rptemplates/match_correct.xml
- MAP RESPONSE - the map response processing template uses the mapResponse operator to map the value of a response variable RESPONSE onto a value for the outcome SCORE. Note that when using the mapResponse, the SCORE needs to be of type float. Both variables must have been declared and RESPONSE must have an associated mapping. The template applies to responses of any baseType and cardinality. See the notes about mapResponse for details of its behaviour when applied to containers. If RESPONSE was NULL the SCORE is set to 0.0.
  Full template URL: http://www.imsglobal.org/question/qtiv2p2/rptemplates/map_response.xml
- MAP RESPONSE POINT - the map response point processing template uses the mapResponsePoint operator to map the value of a response variable RESPONSE onto a value for the outcome SCORE. Both variables must been declared and RESPONSE must have baseType point. See the notes about mapResponsePoint for details of its behaviour when applied to containers. If RESPONSE was NULL the SCORE is set to 0.
  Full template URL: http://www.imsglobal.org/question/qtiv2p2/rptemplates/map_response_point.xml

### 2.5.2 Generalized Response Resprocessing

The components for generalized response processing are shown in Figure 2.3.

Figure 2.3 - The components for the response processing.

The classes that are defined to provide the generalized processing are:

- ResponseProcessing;
- ResponseRuleGroup (an abstract class);
- ResponseCondition;
- ResponseIf;
- ResponseElse;
- ResponseProcessingFragment.

## 2.6 Modal Feedback

Modal feedback is shown to the candidate directly following response processing. The value of an outcome variable is used in conjunction with the 'showHide' and 'identifier' attributes to determine whether or not the feedback is shown in a similar way to feedbackElement. The modal feedback is described using the classes:

- ModalFeedback.

## 2.7 Item Templates

Item templates are templates that can be used for producing large numbers of similar items. Such items are often called cloned items. Item templates can be used to produce items by special purpose Cloning Engines or, where delivery engines support them, be used directly to produce a dynamically chosen clone at the start of an item session.

Each item cloned from an item template is identical except for the values given to a set of template variables. An assessmentItem is therefore an item template if it contains one or more templateDeclarations and a set of templateProcessing rules for assigning them values.

A cloning engine that creates cloned items must assign a different identifier to each clone and record the values of the template variables used to create it. A report of an item session with such a clone can then be transformed into an equivalent report for the original item template by substituting the item template's identifier for the cloned item's identifier and adding the values of the template variables to the report. The class that supports template declaration is:

- TemplateDeclaration.

### 2.7.1 Using Template Variables in an Item's Body

Template variables can be referred to by printedVariable objects in the item body. The value of the template variable is used to create an appropriate run of text that is displayed. Template variables can also be used to conditionally control content through templateBlocks and templateInlines in a similar way to outcome variables with feedbackElements. Finally, template variables can be used to control the visibility of choices in interactions. The set of classes that support the use of template variables in an Item are:

- TemplateBlock;
- TemplateInline.

### 2.7.2 Using Template Variables in Operator Attributes Values

Some of the operators used in expressions have attributes to control their behaviour. The value of a template variable evaluated at the time the operator itself is evaluated, can be used as the value of some such attributes by using a reference to a template variable of the appropriate baseType and cardinality instead of a value from the value space of the attribute's target type. Attributes that support this type of attribute value substitution are declared with one of the following types.

When binding variable references as strings the variable's identifier must be enclosed in braces. For example, the string "{myVariable}" refers to the template variable with identifier myVariable. A references must match the identifier in a corresponding 'templateDeclaration'.

### 2.7.3 Template Processing

Template processing consists of one or more TemplateRules that are followed by the cloning engine or delivery system in order to assign values to the template variables. Template processing is identical in form to responseProcessing except that the purpose is to assign values to template variables, not outcome variables. The classes that provide template processing are:

- TemplateProcessing;
- TemplateRuleGroup (an abstract class);
- TemplateCondition;
- TemplateConstraint;
- TemplateIf;
- TemplateElse.

## 2.8 Tests, Testparts and Sections

A test is represented by the AssessmentTest class. A test is a group of assessmentItems with an associated set of rules that determine which of the items the candidate sees, in what order, and in what way the candidate interacts with them. The rules describe the valid paths through the test, when responses are submitted for response processing and when (if at all) feedback is to be given.

There are two constructs that are used to group togther Items: TestParts and Sections. A TestPart is used to divide a Test into parts that would normally be undertaken in separate test sessions. Whereas, a Section establishes groups of Items that have some common pedagogic testing objective. Sections are used to collect together Items which will then be presented to the learner. The order of presentation can be controlled using selection and ordering algorithms. A Test must have at lest one TestPart. A TestPart must have at least one Section. A Section may contain child Sections. A Section must contain at least one other Section or Item. The set of classes that realise the core test structures are:

- AssessmentTest;
- TestPart;
- AssessmentSection;
- AssessmentSectionRef;
- AssessmentItem;
- AssessmentItemRef.

Any Test, Section and/or Item or combination is exchanged as a '.zip' file. The format of this file is based upon the IMS Content Packaging v1.2 specification [CP, 12]. See the QTI ASI v2.2 XSD Binding specification [QTI, 17] for further details on how content packaging is used.

### 2.8.1 Navigation and Submission

This specification defines two ways in which the overall behaviour of each test part can be controlled: the navigation mode and the submission mode (both of which are characteristics on the TestPart class).

The navigation mode determines the general paths that the candidate may take. A testPart in linear mode restricts the candidate to attempt each item in turn. Once the candidate moves on they are not permitted to return. A testPart in nonlinear mode removes this restriction - the candidate is free to navigate to any item in the test at any time. Test delivery systems are free to implement their own user interface elements to facilitate navigation provided they honour the navigation mode currently in effect. A test delivery system may implement nonlinear mode simply by providing a method to step forward or backwards through the test part.

The submission mode determines when the candidate's responses are submitted for response processing. A testPart in individual mode requires the candidate to submit their responses on an item-by-item basis. In simultaneous mode the candidate's responses are all submitted together at the end of the testPart.

The choice of submission mode determines the states through which each item's session can pass during the test. In simultaneous mode, response processing cannot take place until the testPart is complete so each item session passes between the interacting and suspended states only. By definition the candidate can take one and only one attempt at each item and feedback cannot be seen during the test. Whether or not the candidate can return to review their responses and/or any item-level feedback after the test, is outside the scope of this specification. Simultaneous mode is typical of paper-based tests.

In individual mode response processing may take place during the test and the item session may pass through any of the states described in Items, subject to the itemSessionControl settings in force. Care should be taken when designing user interfaces for systems that support nonlinear navigation mode in combination with individual submission. With this combination candidates may change their responses for an item and then leave it in the suspended state by navigating to a different item in the same part of the test. Test delivery systems need to make it clear to candidates that there are unsubmitted responses (akin to unsaved changes in a traditional document editing system) at the end of the test part. A test delivery system may force candidates to submit or discard such responses before moving to a different item in individual mode if this is more appropriate.

### 2.8.2 The Structure of a Test

For each test session, items and sub-sections are selected and arranged into order according to rules defined in the containing section. This process of selection and ordering defines a basic structure for each part of the test on a per-session basis. The paths that a candidate may take through this structure are then controlled by the mode settings for the test part and possibly by further preConditions or branchRules evaluated during the test session itself. Figure 2.4 illustrates part of a test and the way the items are structured into sections and sub-sections.

Figure 2.4 - The structure of the test for selection and ordering.

Figure 2.5 illustrates a specific instance of the same test part after the application of selection and ordering rules. A rule in section S01 selects just one of S01A and S01B, a rule in S02 shuffles the order of the items contained by it and, finally, rules in S03 select 2 out of the 3 items it contains and shuffles the result.

Figure 2.5 - The delivered test after selection and ordering.

The classes that support selection and ordering are:

- Selection;
- Ordering.

### 2.8.3 Time Limits

In the context of a specific assessmentTest an item, or group of items, may be subject to a time constraint. This specification supports both minimum and maximum time constraints. The controlled time for a single item is simply the duration of the item session as defined by the builtin response variable duration. For assessmentSections, testParts and whole assessmentTests the time limits relate to the durations of all the item sessions plus any other time spent navigating that part of the test. In other words, the time includes time spent in states where no item is being interacted with, such as dedicated navigation screens.

The allowLateSubmission attribute regulates whether a candidate's response that is beyond the maxTime should still be accepted.

Minimum times are applicable to assessmentSections and assessmentItems only when linear navigation mode is in effect.

Delivery Engines are required to track and report the time spent on each test part when time limits are in force. If no time limit is in force for a given test part or section then the time spent may be tracked and reported but it is not required. Similarly, if no time limit is in force for an item that is not a Time Dependent Item then the time spent may be reported but is not required either.

The time spent on the test is recorded as if it were a built-in response variable called duration delcared at the test-level and of base-type duration and single cardinality. Similarly, time spent on test parts or sections are treated as built-in response variables declared within each respective scope. The values of these durations can be refered to during outcomeProcessing by using the variable name duration prefixed with the identifier of the part or section followed by the period character. See the variable expression for further information. The classes that realise the time limits are:

- TimeLimits.

## 2.9 Outcome Processing

Outcome processing takes place each time the candidate submits the responses for an item (when in individual submission mode) or a group of items (when in simultaneous submission mode). It happens after any (item level) response processing triggered by the submission. The values of the test's outcome variables are always reset to their defaults prior to carrying out the instructions described by the outcomeRules. Because outcome processing occurs each time the candidate submits responses the resulting values of the test-level outcomes may be used to activate test-level feedback during the test or to control the behaviour of subsequent parts through the use of preConditions and branchRules. The structure of outcome processing is similar to that or responseProcessing. The outcomes processing functionality is described in the classes:

- OutcomeProcessing;
- OutcomeRule;
- OutcomeCondition;
- OutcomeIf;
- OutcomeElse;
- OutcomeProcessingFragment.

## 2.10 Test-level Feedback

Test feedback is shown to the candidate either directly following outcome processing (during the test) or at the end of the testPart or assessmentTest as appropriate (referred to as atEnd). The core functionality of a test feedback is defined using the classes:

- TestFeedback.

## 2.11 Pre-conditions and Branching

### 2.11.1 Pre-conditions

Pre-conditions and branch rules are advanced concepts used to introduce an element of adaptivity into the specification of an assessmentTest. The concepts were introduced in version 1.2 (as pre-conditions and post-conditions) but their specification was postponed until version 2.1. A primary consideration in introducing these features has been to limit the complexity of supporting delivery engines while still enabling some items (or whole sections and test parts) to be skipped depending on the candidate's responses to items presented earlier in the test.

Pre-conditions and branch rules are only applicable to parts of the test that are navigated in linear mode. In nonlinear mode they are ignored. The overarching test parts are effectively navigated in nonlinear mode and so can therefore have associated pre-conditions and branch rules. The pre-condition functionality is provided through the attribute:

- Precondition (for AssessmentItemRef);
- Precondition (for AssessmentSection).

### 2.11.2 Branching

A branch-rule is a simple expression attached to an assessmentItemRef, assessmentSection or testPart that is evaluated after the item, section or part has been presented to the candidate. If the expression evaluates to true the test jumps forward to the item, section or part referred to by the target identifier. In the case of an item or section, the target must refer to an item or section in the same testPart that has not yet been presented. For testParts, the target must refer to another testPart. The branching functionality is provded in the class:

- BranchRule.

[Comment] The above definition restricts the navigation paths through a linear test part to being trees. In other words, cycles are not allowed. In most cases, repitition can be achieved by using a section that selects withReplacement up to a suitable upper bound of repitition in combination with a preCondition or branchRule that terminates the section early when (or if) a certain outcome has been achieved. This technique might be used in conjunction with one or more Item Templates to achieve drill and practice, for example. However, unbounded repetition is not supported. Comments are sought on whether this approach is too restrictive.

## 2.12 Expressions

QTI contains a wide range of expressions used to support the response processing, outcomes processing and template processing capabilities. Expressions are used to assign values to variables and to control conditional actions in response, outcomes and template processing. An expression can be a simple reference to the value of an item variable, a constant value from one of the value sets defined by baseTypes or a hierarchical expression operator. Like itemVariables, each expression can also have the special value NULL. The expressions are grouped into two abstract classes:

- ExpressionGroup - the full set of expressions;
- NumericGroupExpression - identifies the set of expression suited for numeric-bsed processing.

### 2.12.1 Builtin General Expressions

There are several built-in general expressions for handling constants, random values and the values of the varous item variables (response, outcome and template). These built-in expressions are realised using the classes:

- BaseValue - 'baseValue';
- Variable - 'variable';
- Default - 'default';
- Correct - 'correct';
- MapResponse -'mapResponse' and 'mapResponsePoint';
- MathConstant -'mathConstant'.

#### 2.12.1.1 BaseValue Expression

The simplest expression returns a single value from the set defined by the given baseType.

#### 2.12.1.2 Variable Expression

This expression looks up the value of an itemVariable that has been declared in a corresponding variableDeclaration or is one of the built-in variables. The result has the base-type and cardinality declared for the variable subject to the type promotion of weighted outcomes.

During outcomes processing, values taken from an individual item session can be looked up by prefixing the name of the item variable with the identifier assigned to the item in the assessmentItemRef, separated by a period character. For example, to obtain the value of the SCORE variable in the item referred to as Q01 you would use a variable instance with identifier Q01.SCORE.

In adaptive tests that contain items that are allowed to be replaced (i.e. that have the withReplacement attribute set to "true"), the same item can be instantiated more than once. In order to access the outcome variable values of each instantiation, a number that denotes the instance's place in the sequence of the item's instantiation is inserted between the item variable identifier and the item variable, separated by a period character. For example, to obtain the value of the SCORE variable in the item referred to as Q01 in its second instantiation you would use a variable instance, prefixed by the instantiation sequence number, prefixed by an identifier Q01.2.SCORE.

When looking up the value of a response variable it always takes the value assigned to it by the candidate's last submission. Unsubmitted responses are not available during expression evaluation.

The value of an item variable taken from an item instantiated multiple times from the same assessmentItemRef (through the use of selection withReplacement) is taken from the last instance submitted if submission is simultaneous, otherwise it is undefined.

#### 2.12.1.3 Default Expression

This expression looks up the declaration of an itemVariable and returns the associated defaultValue or NULL if no default value was declared. When used in outcomes processing item identifier prefixing (see variable) may be used to obtain the default value from an individual item.

#### 2.12.1.4 Correct Expression

This expression looks up the declaration of a response variable and returns the associated correctResponse or NULL if no correct value was declared. When used in outcomes processing item identifier prefixing (see variable) may be used to obtain the correct response from an individual item.

#### 2.12.1.5 Map Response Exprssion

This expression looks up the value of a response variable and then transforms it using the associated mapping, which must have been declared. The result is a single float. If the response variable has single cardinality then the value returned is simply the mapped target value from the map. If the response variable has multiple or ordered cardinality then the value returned is the sum of the mapped target values. This expression cannot be applied to variables of record cardinality.

For example, if a mapping associates the identifiers {A,B,C,D} with the values {0,1,0.5,0} respectively then mapResponse will map the single value 'C' to the numeric value 0.5 and the set of values {C,B} to the value 1.5.

If a container contains multiple instances of the same value then that value is counted once only. To continue the example above {B,B,C} would still map to 1.5 and not 2.5.

#### 2.12.1.6 Map Response Point Expression

This expression looks up the value of a response variable that must be of base-type point, and transforms it using the associated areaMapping. The transformation is similar to mapResponse except that the points are tested against each area in turn. When mapping containers each area can be mapped once only. For example, if the candidate identified two points that both fall in the same area then the mappedValue is still added to the calculated total just once.

#### 2.12.1.7 Math Constant Expression

The result is a mathematical constant returned as a single float, e.g. Pi and e.

### 2.12.2 Expressions Used only in Outcomes Processing

There are several expressions for handling outcomes processing only. These expressions are realised using the classes:

- Number - 'numberCorrect, 'numberIncorrect', 'numberPresented', 'numberResponded' and 'numberSelected';
- OutcomeMinMax - 'outcomeMinimum' and 'outcomeMaximum';
- TestVariables - 'testVariables'.

#### 2.12.2.1 Number Correct Expression

This expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set, for which the all defined response variables match their associated correctResponse. Only items for which all declared response variables have correct responses defined are considered. The result is an integer with single cardinality.

#### 2.12.2.2 Number Incorrect Expression

This expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set, for which at least one of the defined response variables does not match its associated correctResponse. Only items for which all declared response variables have correct responses defined and have been attempted at least once are considered. The result is an integer with single cardinality.

#### 2.12.2.3 Number Presented Expression

This expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set that have been attempted (at least once). In other words, items with which the user has interacted, whether or not they provided a response. The result is an integer with single cardinality.

#### 2.12.2.4 Number Responded Expresson

This expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set that have been attempted (at least once) and for which a response was given. In other words, items for which at least one declared response has a value that differs from its declared default (typically NULL). The result is an integer with single cardinality.

#### 2.12.2.5 Number Selected Expression

This expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set that have been selected for presentation to the candidate, regardless of whether the candidate has attempted them or not. The result is an integer with single cardinality.

#### 2.12.2.6 Outcome Minimum Expression

This expression, which can only be used in outcomes processing, simultaneously looks up the normalMinimum value of an outcome variable in a sub-set of the items referred to in a test. Only variables with single cardinality are considered. Items with no declared minimum are ignored. The result has cardinality multiple and base-type float.

#### 2.12.2.7 Outcome Maximum Expression

This expression, which can only be used in outcomes processing, simultaneously looks up the normalMaximum value of an outcome variable in a sub-set of the items referred to in a test. Only variables with single cardinality are considered. If any of the items within the given subset have no declared maximum the result is NULL, otherwise the result has cardinality multiple and base-type float.

#### 2.12.2.8 Test Variables Expression

This expression, which can only be used in outcomes processing, simultaneously looks up the value of an itemVariable in a sub-set of the items referred to in a test. Only variables with single cardinality are considered, all NULL values are ignored. The result has cardinality multiple and base-type as specified below.

### 2.12.3 Operators

Operators are a family of classes derived from expression that obtain their value (referred to as their result) either by modifying a single sub-expression or by combining two or more sub-expressions in a specified way. Operators never effect the values of itemVariables directly, in other words, there are no 'side effects'. All operators have a baseType and cardinality though these may be dependent on the sub-expression(s) they contain. The set of classes that realise these operators are:

- AnyN - 'anyN';
- CustomOperator - 'customOperator';
- Equal - 'equal';
- EqualRounded - 'equalRounded';
- FieldValue -'fieldValue';
- Index -'index';
- Inside - 'inside';
- Logic0toMany - 'multiple' and 'ordered';
- Logic1toMany - 'and', 'gcd', 'lcm', 'min', 'max', 'or' and 'product';
- LogicPair - 'contains', 'delete', 'divide', 'durationgte', 'durationlt', 'gt', 'gte', 'integerDivide', 'integerModulus', 'lt', 'lte', 'match', 'member', 'power' and 'subtract';
- LogicSingle - 'containerSize', 'integerToFloat', 'isNull', 'not', 'random', 'round' and 'truncate';
- MathOperator - 'mathOperator';
- NumericLogic1toMany - 'sum';
- PatternMatch -'patternMatch';
- Repeat -'repeat';
- RoundTo - 'roundTo';
- StatsOperator - 'statsOperator';
- StringMatch -'stringMatch';
- Substring - 'substring'.

#### 2.12.3.1 AnyN Expression

The anyN operator takes one or more sub-expressions each with a base-type of boolean and single cardinality. The result is a single boolean which is true if at least min of the sub-expressions are true and at most max of the sub-expressions are true. If more than n - min sub-expressions are false (where n is the total number of sub-expressions) or more than max sub-expressions are true then the result is false. If one or more sub-expressions are NULL then it is possible that neither of these conditions is satisfied, in which case the operator results in NULL. For example, if min is 3 and max is 4 and the sub-expressions have values {true,true,false,NULL} then the operator results in NULL whereas {true,false,false,NULL} results in false and {true,true,true,NULL} results in true. The result NULL indicates that the correct value for the operator cannot be determined.

#### 2.12.3.2 Custom Operator Expression

The custom operator provides an extension mechanism for defining operations not currently supported by this specification.

#### 2.12.3.3 Equal Expression

The equal operator takes two sub-expressions which must both have single cardinality and have a numerical base-type. The result is a single boolean with a value of true if the two expressions are numerically equal and false if they are not. If either sub-expression is NULL then the operator results in NULL.

#### 2.12.3.4 Equal Rounded Expression

The equalRounded operator takes two sub-expressions which must both have single cardinality and have a numerical base-type. The result is a single boolean with a value of true if the two expressions are numerically equal after rounding and false if they are not. If either sub-expression is NULL then the operator results in NULL.

#### 2.12.3.5 Field Value Expression

The identifier of the field to be selected. The field-value operator takes a sub-expression with a record container value. The result is the value of the field with the specified fieldIdentifier. If there is no field with that identifier then the result of the operator is NULL.

#### 2.12.3.6 Index Expression

The index operator takes a sub-expression with an ordered container value and any base-type. The result is the nth value of the container. The result has the same base-type as the sub-expression but single cardinality. The first value of a container has index 1, the second 2 and so on. n must be a positive integer. If n exceeds the number of values in the container (or the sub-expression is NULL) then the result of the index operator is NULL. If n is an identifier, it is the value of n at runtime that is used.

#### 2.12.3.7 Inside Expression

The inside operator takes a single sub-expression which must have a baseType of point. The result is a single boolean with a value of true if the given point is inside the area defined by shape and coords. If the sub-expression is a container the result is true if any of the points are inside the area. If either sub-expression is NULL then the operator results in NULL.

#### 2.12.3.8 Multiple Expression

The multiple operator takes 0 or more sub-expressions all of which must have either single or multiple cardinality. Although the sub-expressions may be of any base-type they must all be of the same base-type. The result is a container with multiple cardinality containing the values of the sub-expressions, sub-expressions with multiple cardinality have their individual values added to the result: containers cannot contain other containers. For example, when applied to A, B and {C,D} the multiple operator results in {A,B,C,D}. All sub-expressions with NULL values are ignored. If no sub-expressions are given (or all are NULL) then the result is NULL.

#### 2.12.3.9 Ordered Expression

The ordered operator takes 0 or more sub-expressions all of which must have either single or ordered cardinality. Although the sub-expressions may be of any base-type they must all be of the same base-type. The result is a container with ordered cardinality containing the values of the sub-expressions, sub-expressions with ordered cardinality have their individual values added (in order) to the result: contains cannot contain other containers. For example, when applied to A, B, {C,D} the ordered operator results in {A,B,C,D}. Note that the ordered operator never results in an empty container. All sub-expressions with NULL values are ignored. If no sub-expressions are given (or all are NULL) then the result is NULL.

#### 2.12.3.10 And Expression

The and operator takes one or more sub-expressions each with a base-type of boolean and single cardinality. The result is a single boolean which is true if all sub-expressions are true and false if any of them are false. If one or more sub-expressions are NULL and all others are true then the operator also results in NULL.

#### 2.12.3.11 GCD Expression

The gcd operator takes 1 or more sub-expressions which all have base-type integer and may have single, multiple or ordered cardinality. The result is a single integer equal in value to the greatest common divisor (gcd) of the argument values. If all the arguments are zero, the result is 0, gcd(0,0)=0; authors should beware of this in calculations which require division by the gcd of random values. If some, but not all, of the arguments are zero, the result is the gcd of the non-zero arguments, gcd(0,n)=n if n!=0. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions is not a numerical value, then the result is NULL.

#### 2.12.3.12 LCM Expression

The lcm operator takes 1 or more sub-expressions which all have base-type integer and may have single, multiple or ordered cardinality. The result is a single integer equal in value to the lowest common multiple (lcm) of the argument values. If any argument is zero, the result is 0, lcm(0,n)=0; authors should beware of this in calculations which require division by the lcm of random values. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions is not a numerical value, then the result is NULL.

#### 2.12.3.13 Min Expression

The min operator takes 1 or more sub-expressions which all have numerical base-types and may have single, multiple or ordered cardinality. The result is a single float, or, if all sub-expressions are of integer type, a single integer, equal in value to the smallest of the argument values, i.e. the result is the argument closest to negative infinity. If the arguments have the same value, the result is that same value. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions is not a numerical value, then the result is NULL.

#### 2.12.3.14 Max Expression

The max operator takes 1 or more sub-expressions which all have numerical base-types and may have single, multiple or ordered cardinality. The result is a single float, or, if all sub-expressions are of integer type, a single integer, equal in value to the greatest of the argument values, i.e. the result is the argument closest to positive infinity. If the arguments have the same value, the result is that same value. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions is not a numerical value, then the result is NULL.

#### 2.12.3.15 Or Expression

The or operator takes one or more sub-expressions each with a base-type of boolean and single cardinality. The result is a single boolean which is true if any of the sub-expressions are true and false if all of them are false. If one or more sub-expressions are NULL and all the others are false then the operator also results in NULL.

#### 2.12.3.16 Product Expression

The product operator takes 1 or more sub-expressions which all have numerical base-types and may have single, multiple or ordered cardinality. The result is a single float or, if all sub-expressions are of integer type, a single integer that corresponds to the product of the numerical values of the sub-expressions. If any of the sub-expressions are NULL then the operator results in NULL.

#### 2.12.3.17 Contains Expression

The contains operator takes two sub-expressions which must both have the same base-type and cardinality - either multiple or ordered. The result is a single boolean with a value of true if the container given by the first sub-expression contains the value given by the second sub-expression and false if it doesn't. Note that the contains operator works differently depending on the cardinality of the two sub-expressions. For unordered containers the values are compared without regard for ordering, for example, [A,B,C] contains [C,A]. Note that [A,B,C] does not contain [B,B] but that [A,B,B,C] does. For ordered containers the second sub-expression must be a strict sub-sequence within the first. In other words, [A,B,C] does not contain [C,A] but it does contain [B,C].

If either sub-expression is NULL then the result of the operator is NULL. Like the member operator, the contains operator should not be used on sub-expressions with a base-type of float and must not be used on sub-expressions with a base-type of duration.

#### 2.12.3.18 Delete Expression

The delete operator takes two sub-expressions which must both have the same base-type. The first sub-expression must have single cardinality and the second must be a multiple or ordered container. The result is a new container derived from the second sub-expression with all instances of the first sub-expression removed. For example, when applied to A and {B,A,C,A} the result is the container {B,C}. If either sub-expression is NULL the result of the operator is NULL. The restrictions that apply to the member operator also apply to the delete operator.

#### 2.12.3.19 Divide Expression

The divide operator takes 2 sub-expressions which both have single cardinality and numerical base-types. The result is a single float that corresponds to the first expression divided by the second expression. If either of the sub-expressions is NULL then the operator results in NULL.

Item authors should make every effort to ensure that the value of the second expression is never 0, however, if it is zero or the resulting value is outside the value set defined by float (not including positive and negative infinity) then the operator should result in NULL.

#### 2.12.3.20 Duration Expression

The durationGTE operator takes two sub-expressions which must both have single cardinality and base-type duration. The result is a single boolean with a value of true if the first duration is longer (or equal, within the limits imposed by truncation as described above) than the second and false if it is shorter than the second. If either sub-expression is NULL then the operator results in NULL. See durationLT for more information about testing the equality of durations.

#### 2.12.3.21 Duration LT Expression

The durationLT operator takes two sub-expressions which must both have single cardinality and base-type duration. The result is a single boolean with a value of true if the first duration is shorter than the second and false if it is longer than (or equal) to the second. If either sub-expression is NULL then the operator results in NULL.

There is no 'durationLTE' or 'durationGT' because equality of duration is meaningless given the variable precision allowed by duration. Given that duration values are obtained by truncation rather than rounding it makes sense to test only less-than or greater-than-equal inequalities only. For example, if we want to determine if a candidate took less than 10 seconds to complete a task in a system that reports durations to a resolution of epsilon seconds (epsilon<1) then a value equal to 10 would cover all durations in the range [10,10+epsilon).

#### 2.12.3.22 GT Expression

The gt operator takes two sub-expressions which must both have single cardinality and have a numerical base-type. The result is a single boolean with a value of true if the first expression is numerically greater than the second and false if it is less than or equal to the second. If either sub-expression is NULL then the operator results in NU

#### 2.12.3.23 GTE Expression

The gte operator takes two sub-expressions which must both have single cardinality and have a numerical base-type. The result is a single boolean with a value of true if the first expression is numerically greater than or equal to the second and false if it is less than the second. If either sub-expression is NULL then the operator results in NULL.

#### 2.12.3.24 Integer Divide Expression

The integer divide operator takes 2 sub-expressions which both have single cardinality and base-type integer. The result is the single integer that corresponds to the first expression (x) divided by the second expression (y) rounded down to the greatest integer (i) such that i LTE (x/y). If y is 0, or if either of the sub-expressions is NULL then the operator results in NULL.

#### 2.12.3.25 Integer Modulus Expression

The integer modulus operator takes 2 sub-expressions which both have single cardinality and base-type integer. The result is the single integer that corresponds to the remainder when the first expression (x) is divided by the second expression (y). If z is the result of the corresponding integerDivide operator then the result is x-z*y. If y is 0, or if either of the sub-expressions is NULL then the operator results in NULL.

#### 2.12.3.26 LT Expression

The lt operator takes two sub-expressions which must both have single cardinality and have a numerical base-type. The result is a single boolean with a value of true if the first expression is numerically less than the second and false if it is greater than or equal to the second. If either sub-expression is NULL then the operator results in NULL.

#### 2.12.3.27 LTE Expression

The lte operator takes two sub-expressions which must both have single cardinality and have a numerical base-type. The result is a single boolean with a value of true if the first expression is numerically less than or equal to the second and false if it is greater than the second. If either sub-expression is NULL then the operator results in NULL.

#### 2.12.3.28 Match Expression

The match operator takes two sub-expressions which must both have the same base-type and cardinality. The result is a single boolean with a value of true if the two expressions represent the same value and false if they do not. If either sub-expression is NULL then the operator results in NULL.

The match operator must not be confused with broader notions of equality such as numerical equality. To avoid confusion, the match operator should not be used to compare subexpressions with base-types of float and must not be used on sub-expressions with a base-type of duration.

#### 2.12.3.29 Member Expression

The member operator takes two sub-expressions which must both have the same base-type. The first sub-expression must have single cardinality and the second must be a multiple or ordered container. The result is a single boolean with a value of true if the value given by the first sub-expression is in the container defined by the second sub-expression. If either sub-expression is NULL then the result of the operator is NULL. The member operator should not be used on sub-expressions with a base-type of float because of the poorly defined comparison of values. It must not be used on sub-expressions with a base-type of duration.

#### 2.12.3.30 Power Expression

The power operator takes 2 sub-expression which both have single cardinality and numerical base-types. The result is a single float that corresponds to the first expression raised to the power of the second. If either or the sub-expressions is NULL then the operator results in NULL. If the resulting value is outside the value set defined by float (not including positive and negative infinity) then the operator shall result in NULL.

#### 2.12.3.31 Subcontract Expression

The subtract operator takes 2 sub-expressions which all have single cardinality and numerical base-types. The result is a single float or, if both sub-expressions are of integer type, a single integer that corresponds to the first value minus the second. If either of the sub-expressions is NULL then the operator results in NULL.

#### 2.12.3.32 Container Expression

The containerSize operator takes a sub-expression with any base-type and either multiple or ordered cardinality. The result is an integer giving the number of values in the sub-expression, in other words, the size of the container. If the sub-expression is NULL the result is 0. This operator can be used for determining how many choices were selected in a multiple-response choiceInteraction, for example.

#### 2.12.3.33 Integer to Float Expression

The integer to float conversion operator takes a single sub-expression which must have single cardinality and base-type integer. The result is a value of base type float with the same numeric value. If the sub-expression is NULL then the operator results in NULL.

#### 2.12.3.34 IsNull Expression

The isNull operator takes a sub-expression with any base-type and cardinality. The result is a single boolean with a value of true if the sub-expression is NULL and false otherwise. Note that empty containers and empty strings are both treated as NULL.

#### 2.12.3.35 Not Expression

The not operator takes a single sub-expression with a base-type of boolean and single cardinality. The result is a single boolean with a value obtained by the logical negation of the sub-expression's value. If the sub-expression is NULL then the not operator also results in NULL.

#### 2.12.3.36 Random Expression

The random operator takes a sub-expression with a multiple or ordered container value and any base-type. The result is a single value randomly selected from the container. The result has the same base-type as the sub-expression but single cardinality. If the sub-expression is NULL then the result is also NULL.

#### 2.12.3.37 Round Expression

The round operator takes a single sub-expression which must have single cardinality and a numerical base-type. The result is a value of base-type integer formed by rounding the value of the sub-expression. The result is the integer n for all input values in the range [n-0.5,n+0.5). In other words, 6.8 and 6.5 both round up to 7, 6.49 rounds down to 6 and -6.5 rounds up to -6. If the sub-expression is NULL then the operator results in NULL. If the sub-expression is NaN, then the result is NULL. If the sub-expression is INF, then the result is INF. If the sub-expression is -INF, then the result is -INF.

#### 2.12.3.38 Truncate Expression

The truncate operator takes a single sub-expression which must have single cardinality and a numerical base-type. The result is a value of base-type integer formed by truncating the value of the sub-expression towards zero. For example, the value 6.8 becomes 6 and the value -6.8 becomes -6. If the sub-expression is NULL then the operator results in NULL. If the sub-expression is NaN, then the result is NULL. If the sub-expression is INF, then the result is INF. If the sub-expression is -INF, then the result is -INF.

#### 2.12.3.39 Math Operator Expression

The mathOperator operator takes 1 or more sub-expressions which all have single cardinality and have numerical base-types. The trigonometric functions, sin, cos and tan, take one argument in radians, which evaluates to a single float. Other functions take one numerical argument. Further functions might take more than one numerical argument, e.g. atan2 (two argument arc tan). The result is a single float, except for the functions signum, floor and ceil, which return a single integer. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions falls outside the natural domain of the function called by mathOperator, e.g. log(0) or asin(2), then the result is NULL.

The reciprocal trigonometric functions also follow these rules:

- If the argument is NaN, then the result is NULL;
- If the value of tan for the argument is INF, then the value of cot is 0;
- If the value of tan for the argument is -INF, then the value of cot is 0;
- If the value of a trigonometric function is 0, then the value of the corresponding reciprocal trigonometric function is NULL.

The reciprocal trigonometric and hyperbolic functions also follow these rules:

- If the argument is NaN, then the result is NULL;
- If the value of a trigonometric or hyperbolic function for the argument is INF, then the value of the corresponding reciprocal trigonometric or hyperbolic function is 0;
- If the value of a trigonometric or hyperbolic function for the argument is -INF, then the value of the corresponding reciprocal trigonometric or hyperbolic function is 0;
- If the value of a trigonometric or hyperbolic function for the argument is 0, then the value of the corresponding reciprocal trigonometric or hyperbolic function is NULL;
- If the value of a trigonometric or hyperbolic function for the argument is -0, then the value of the corresponding reciprocal trigonometric or hyperbolic function is NULL.

The function atan2 also follows these rules:

- If either argument is NaN, then the result is NULL;
- If the first argument is positive zero and the second argument is positive, or the first argument is positive and finite and the second argument is positive infinity, then the result is 0;
- If the first argument is negative zero and the second argument is positive, or the first argument is negative and finite and the second argument is positive infinity, then the result is 0
- If the first argument is positive zero and the second argument is negative, or the first argument is positive and finite and the second argument is negative infinity, then the result is the double value closest to Pi
- If the first argument is negative zero and the second argument is negative, or the first argument is negative and finite and the second argument is negative infinity, then the result is the double value closest to -Pi;
- If the first argument is positive and the second argument is positive zero or negative zero, or the first argument is positive infinity and the second argument is finite, then the result is the double value closest to Pi/2;
- If the first argument is negative and the second argument is positive zero or negative zero, or the first argument is negative infinity and the second argument is finite, then the result is the double value closest to -Pi/2;
- If both arguments are positive infinity, then the result is the double value closest to Pi/4;
- If the first argument is positive infinity and the second argument is negative infinity, then the result is the double value closest to 3*Pi/4;
- If the first argument is negative infinity and the second argument is positive infinity, then the result is the double value closest to -Pi/4;
- If both arguments are negative infinity, then the result is the double value closest to -3*Pi/4.

#### 2.12.3.40 Sum Expression

The sum operator takes 1 or more sub-expressions which all have numerical base-types and may have single, multiple or ordered cardinality. The result is a single float or, if all sub-expressions are of integer type, a single integer that corresponds to the sum of the numerical values of the sub-expressions. If any of the sub-expressions are NULL then the operator results in NULL.

#### 2.12.3.41 Pattern Match Expression

The patternMatch operator takes a sub-expression which must have single cardinality and a base-type of string. The result is a single boolean with a value of true if the sub-expression matches the regular expression given by pattern and false if it doesn't. If the sub-expression is NULL then the operator results in NULL.

#### 2.12.3.42 Repeat Expression

The repeat operator takes 0 or more sub-expressions, all of which must have either single or ordered cardinality and the same baseType. The result is an ordered container having the same baseType as its sub-expressions. The container is filled sequentially by evaluating each sub-expression in turn and adding the resulting single values to the container, iterating this process numberRepeats times in total. If numberRepeats refers to a variable whose value is less than 1, the value of the whole expression is NULL. Any sub-expressions evaluating to NULL are ignored. If all sub-expressions are NULL then the result is NULL.

#### 2.12.3.43 RoundTo Expression

The roundTo operator takes one sub-expression which must have single cardinality and a numerical base-type. The result is a single float with the value nearest to that of the expression's value such that when converted to a decimal string it represents the expression rounded by the specified rounding method to the specified precision. If the sub-expression is NULL, then the result is NULL. If the sub-expression is INF, then the result is INF. If the sub-expression is -INF, then the result is -INF. If the argument is NaN, then the result is NULL.

When rounding to n significant figures, the deciding digit is the (n+1)th digit counting from the first non-zero digit from the left in the number. If the deciding digit is 5 or greater, the nth digit is increased by 1 and all digits to its right are discarded; if the deciding digit is less than 5, all digits to the right of the nth digit are discarded.

When rounding to n decimal places, the deciding digit is the (n+1)th digit counting to the right from the decimal point. If the deciding digit is 5 or greater, the nth digit is increased by 1 and all digits to its right are discarded; if the deciding digit is less than 5, all digits to the right of the nth digit are discarded.

#### 2.12.3.44 Stats Operator Expression

The statsOperator operator takes 1 sub-expression which is a container of multiple or ordered cardinality and has a numerical base-type. The result is a single float. If the sub-expression or any value contained therein is NULL, the result is NULL. If any value contained in the sub-expression is not a numerical value, then the result is NULL.

#### 2.12.3.45 String Match Expression

The stringMatch operator takes two sub-expressions which must have single and a base-type of string. The result is a single boolean with a value of true if the two strings match according to the comparison rules defined by the attributes below and false if they don't. If either sub-expression is NULL then the operator results in NULL.

#### 2.12.3.46 Substring Expression

The substring operator takes two sub-expressions which must both have an effective base-type of string and single cardinality. The result is a single boolean with a value of true if the first expression is a substring of the second expression and false if it isn't. If either sub-expression is NULL then the result of the operator is NULL.

## 2.13 Items and Test Fragments

An Item Fragment is part of an item that is managed independently of the items that depend on it. Similarly, a Test Fragment is part of a test that is managed independently of the tests that depend on it. Fragments are packaged as separate resources and can be transported independently. A fragment may appear anywhere in the model where one of the following abstract classes may appear: flowStatic, inlineStatic, blockStatic, responseRule, sectionPart or outcomeRule. For example, an item fragment may be a division of the itemBody represented by an instance of the 'Div' class or a single interaction.

Fragments are included using the Include mechanism (the actual form of implementation is dependent on the binding approach). The instance of include is treated as if it was actually an instance of the root element of the fragment referred to by the 'href' chracteristic of the 'Include' class. For the purposes of this specification, when using an XML binding, the xpointer mechanism defined by the XInclude specification must not be used. Also, all included fragments must be treated as parsed xml.

This technique is similar to the inclusion of media objects (using object) but allows the inclusion of data that conforms to this specification, specifically, it allows the inclusion of interactions, static content, processing rules or, at test level whole sections, to be included from externally defined fragments.

When including externally defined fragments the content of the fragment must satisfy the requirements of the specification in the context of the item in which it is being included. For example, interactions included from fragments must be correctly bound to response variables declared in the items. Item and Test fragments are supported using the classes:

- Include (an imported class);
- ResponseProcessingFragment;
- OutcomeProcessingFragment.

## 2.14 The Accessibility Features

There are three accessibility features that are supported by QTI 2.2:

- Accessible Portable Item Protocol (APIP) - enables the APIP markup to be used;
- Speech Synthesis Markup Language (SSML) - enables text to have SSML annotation
- WAI-ARIA - allows the ARIA annotations to be used on the HTML and interaction tags

### 2.14.1 APIP Accessibility Functionality

The Accessible Portable Item Protocol (APIP) specification provides a rich set of accessibility annotation capabilities to the core QTI ASI functionality [APIP, 14]. There are five components to the APIP annotation:

- Item Information - this is the metadata that accompanies the Item. This could include information about versioning, subject domain, relevant curriculum standard learning objectives addressed, etc.
- Content Information - information about the contents of the item that are to be presented to an examinee assuming no access needs have been defined for that user;
- Companion Material - content props that provide key information to be used when answering an Item, e.g. a calculator, protractor, lookup chart, map, reading passage, etc.
- Accessibility Information - the alternative content to be used to render the content in its described accessibility forms, e.g., read aloud, Braille, sign language, etc.
- Inclusion Order - the rendering order of the content to be presented to the user undertaking the assessment. The actual order is determined by the user's accessibility preferences and the range of alternative rendering options created for the Item.

APIP functionality is provided through the APIPAccessibility class that is imported. APIP anotations, for QTI ASI these are always optional content , are permitted on the following classes:

- AssessmentItem;
- AssessmentStimulus;
- FeedbackBlock;
- RubricBlock;
- RubricBlockTemplateBlock;
- TemplateBlock;
- TemplateBlockFeedbackBlock;
- TestFeedback.

Further information on on how to apply, and the consequences of, APIP annotation is available in [APIP, 14]. An example of how to use APIP is given in the QTI Best Practices document [QTI, 15].

### 2.14.2 Support for Speech Synthesis Markup Language

The Speech Synthesis Markup Language Specification is designed to provide a rich, XML-based markup language for assisting the generation of synthetic speech in Web and other applications. The essential role of the markup language is to provide authors of synthesizable content a standard way to control aspects of speech such as pronunciation, volume, pitch, rate, etc. across different synthesis-capable platforms.

SSML functionality is provided through the SSMLGroup class that is imported. The SSML tags that are supported are 'p', 's', 'say-as', 'phoneme', 'sub', 'voice', 'emphasis', 'break', 'prosody' 'mark', 'audio' and 'speak'. SSML anotations are supplied through the following classes:

- FlowContentModel (an abstract class);
- InlineContentModel (an abstract class).

Further information on SSMLv1.1 is available in [SSML, 10]. An example of how to use SSML is given in the QTI Best Practices document [QTI, 15].

### 2.14.3 Support for WAI-ARIA

The Accessible Rich Internet Applications (ARIA) specification from W3C [ARIA, 14] provides an ontology of roles, states, and properties that define accessible user interface elements and can be used to improve the accessibility and interoperability of web content and applications. These semantics are designed to allow an author to properly convey user interface behaviors and structural information to assistive technologies in document-level markup. In QTI the ARIA characteristics are used on the following classes:

- BasePromptInteraction;
- BaseSequence;
- BaseSequenceFull;
- BaseSequenceRIdent;
- BaseSequenceXBase;
- BaseSequenceXBaseEmpty.

These classes are used to define the HTML4 and the QTI Interactions. The ARIA features are also supported on the HTML5 tags [QTI, 16a]. The ARIA features that are supported, this is a subset of the possible set of ARIA characteristics, in QTI are:

- role;
- aria-controls;
- aria-describedby;
- aria-flowsto;
- aria-label;
- aria-labelledby;
- aria-level;
- aria-orientation;
- aria-owns.

Further information on WAI-ARIA 1.0 is available in [ARIA, 14]. An example of how to use ARIA is given in the QTI Best Practices document [QTI, 15].

## 2.15 The Internationalization Features

As part of the QTIv2.2 new features, support for internationalization was added. The internationalization features now supported are:

- Bidirectional Text - provision of right-to-left and left-to-right text presentation;
- Ruby - these annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations;
- Vertical Writing - this is achieved by using CSS as recommended in the W3C's 'CSS Writing Modes Module Level 3' [W3C, 12] (at the time of QTI publication this W3C document was a Working Draft).

### 2.15.1 Support for Bidirectional Text

For different languages the text is presented and read either from 'left-to-right' or 'right-to-left'. The corresponding rendering must take into account word and character spacing and justification. The classes that enable the bi-directional text layout support are:

- BDO;
- BDI - this is part of the new HTML5 functionality, see [QTI, 16a].

### 2.15.2 Support for Ruby

Ruby allows one or more spans of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations. In Japanese, this form of typography is also known as furigana. Ruby text can appear on either side, and sometimes both sides, of the base text, and it is possible to control its position using CSS. A more complete introduction to ruby can be found in the Use Cases and Exploratory Approaches for Ruby Markup document as well as in CSS Ruby Module Level 1. [RUBYUC, 13] [CSSRUBY, 15]. The classes that enable the Ruby support are:

- Ruby - this is part of the new HTML5 functionality, see [QTI, 16a];
- RB - this is part of the new HTML5 functionality, see [QTI, 16a];
- RP- this is part of the new HTML5 functionality, see [QTI, 16a];
- RT - this is part of the new HTML5 functionality, see [QTI, 16a];
- RTC - this is part of the new HTML5 functionality, see [QTI, 16a];
- RPRTSelection - abstract class and this is part of the new HTML5 functionality, see [QTI, 16a];
- RTRTCSelection - abstract class and this is part of the new HTML5 functionality, see [QTI, 16a];
- RTubySelection - abstract class and this is part of the new HTML5 functionality, see [QTI, 16a].

toc | top

# 3. Root Attribute Descriptions

All of the Root attributes (the root name for the instances that can be exchanged) used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.3. The root attributes are:

- assessmentItem - this is the root element for the exchange of items. The assessmentItem may reference any required content stimuli contained within an assessmentStimulus. The exchange of a single assessmentItem instance is permitted;

- assessmentSection - this is the root element for the exchange of sections. An assessmentSection can contain any order and hierarchy of contained/referenced assessmentSections and referenced assessmentItems. The assessmentItems can only be referenced from within an assessmentSection i.e. they cannot be contained in the same instance as the assessmentSection. The exchange of a single root assessmentSection instance is permitted but any number of contained assessmentSections can also be exchanged;

- assessmentStimulus - this is the root element for the exchange of stimuli i.e. content that is to be shared and referenced by multiple items. This allows the stimulus content to be managed as a separate first class object. The exchange of a single assessmentStimulus instance is permitted;

- assessmentTest - this is the root element for the exchange of tests, quizzes, etc. The test must contain at least one test part which in turn must contain, or reference, at least one assessmentSection. The associated assessmentItems can only be referenced from within an assessmentSection and cannot be contained in the same instance as the assessmentTest. The exchange of a single assessmentTest instance is permitted;

- outcomeDeclaration - this is the root element for the exchange of outcomes declarations. These declarations are typically used to identify the relationship between an outcome and the associated curriculum standard i.e. to indicate which outcomes support specific learning objectives. The exchange of a single outcome declaration instance is permitted;

- responseProcessing - this is the root element for the exchange of response processing templates. Response processing templates are used to define generic templates that can be applied to response processing for a range of types of assessmentItems. The exchange of a single response processing template instance is permitted.

## 3.1 "assessmentItem" Root Attribute Description

The definition of the "assessmentItem" root attribute is shown in Table 3.1.

Table 3.1 Description of the "assessmentItem" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | assessmentItem
Data Type | AssessmentItem
Description | This is the root element for the exchange of items. The assessmentItem may reference any required content stimuli contained within an assessmentStimulus. The exchange of a single assessmentItem instance is permitted;

## 3.2 "assessmentSection" Root Attribute Description

The definition of the "assessmentSection" root attribute is shown in Table 3.2.

Table 3.2 Description of the "assessmentSection" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | assessmentSection
Data Type | AssessmentSection
Description | This is the root element for the exchange of sections. An assessmentSection can contain any order and hierarchy of contained/referenced assessmentSections and referenced assessmentItems. The assessmentItems can only be referenced from within an assessmentSection i.e. they cannot be contained in the same instance as the assessmentSection. The exchange of a single root assessmentSection instance is permitted but any number of contained assessmentSections can also be exchanged;

## 3.3 "assessmentStimulus" Root Attribute Description

The definition of the "assessmentStimulus" root attribute is shown in Table 3.3.

Table 3.3 Description of the "assessmentStimulus" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | assessmentStimulus
Data Type | AssessmentStimulus
Description | This is the root element for the exchange of stimuli i.e. content that is to be shared and referenced by multiple items. This allows the stimulus content to be managed as a separate first class object. The exchange of a single assessmentStimulus instance is permitted;

## 3.4 "assessmentTest" Root Attribute Description

The definition of the "assessmentTest" root attribute is shown in Table 3.4.

Table 3.4 Description of the "assessmentTest" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | assessmentTest
Data Type | AssessmentTest
Description | This is the root element for the exchange of tests, quizzes, etc. The test must contain at least one test part which in turn must contain, or reference, at least one assessmentSection. The associated assessmentItems can only be referenced from within an assessmentSection and cannot be contained in the same instance as the assessmentTest. The exchange of a single assessmentTest instance is permitted;

## 3.5 "outcomeDeclaration" Root Attribute Description

The definition of the "outcomeDeclaration" root attribute is shown in Table 3.5.

Table 3.5 Description of the "outcomeDeclaration" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | outcomeDeclaration
Data Type | OutcomeDeclaration
Description | This is the root element for the exchange of outcomes declarations. These declarations are typically used to identify the relationship between an outcome and the associated curriculum standard i.e. to indicate which outcomes support specific learning objectives. The exchange of a single outcome declaration instance is permitted;

## 3.6 "responseProcessing" Root Attribute Description

The definition of the "responseProcessing" root attribute is shown in Table 3.6.

Table 3.6 Description of the "responseProcessing" root attribute.
Descriptor | Definition
--- | ---
Attribute Name | responseProcessing
Data Type | ResponseProcessing
Description | This is the root element for the exchange of response processing templates. Response processing templates are used to define generic templates that can be applied to response processing for a range of types of assessmentItems. The exchange of a single response processing template instance is permitted.

toc | top

# 4. Root Class Descriptions

All of the Root data classes (the first class objects that can be exchanged using the data model) used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.2.

## 4.1 AssessmentItem Root Class Description

The data model for the "AssessmentItem" root class is shown in Figure 4.1 and the accompanying definition in Table 4.1.

Figure 4.1 - AssessmentItem class definitions.

Table 4.1 Description of the "AssessmentItem" class.
Descriptor | Definition
--- | ---
Class Name | AssessmentItem
Class Type | Container [ Sequence ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: identifier title label language toolName toolVersion adaptive timeDependent
Children | The set of children attributes are: responseDeclaration outcomeDeclaration templateDeclaration templateProcessing assessmentStimulusRef stylesheet itemBody responseProcessing modalFeedback apipAccessibility
Description | An assessment item encompasses the information that is presented to a candidate and information about how to score the item. Scoring takes place when candidate responses are transformed into outcomes by response processing rules. It is sometimes desirable to have several different items that appear the same to the candidate but which are scored differently. In this specification, these are distinct items by definition and must therefore have distinct identifiers. To help facilitate the exchange of items that share significant parts of their presentation this specification supports the inclusion of separately managed item fragments (see Item and Test Fragments) in the itemBody.

### 4.1.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "AssessmentItem" root class is given in Table 4.1.1

Table 4.1.1 Description of the "identifier" characteristic for the "AssessmentItem" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The principle identifier of the item. This identifier must have a corresponding entry in the item's metadata. See QTI Metadata [QTI, 16b] for more information.

### 4.1.2 "title" Characteristic Description

The description of the "title" characteristic for the "AssessmentItem" root class is given in Table 4.1.2

Table 4.1.2 Description of the "title" characteristic for the "AssessmentItem" class.
Descriptor | Definition
--- | ---
Characteristic Name | title
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The title of an assessmentItem is intended to enable the item to be selected in situations where the full text of the itemBody is not available, for example when a candidate is browsing a set of items to determine the order in which to attempt them. Therefore, delivery engines may reveal the title to candidates at any time but are not required to do so.

### 4.1.3 "label" Characteristic Description

The description of the "label" characteristic for the "AssessmentItem" root class is given in Table 4.1.3

Table 4.1.3 Description of the "label" characteristic for the "AssessmentItem" class.
Descriptor | Definition
--- | ---
Characteristic Name | label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | A human readable label that can be used to describe the Item.

### 4.1.4 "language" Characteristic Description

The description of the "language" characteristic for the "AssessmentItem" root class is given in Table 4.1.4

Table 4.1.4 Description of the "language" characteristic for the "AssessmentItem" class.
Descriptor | Definition
--- | ---
Characteristic Name | language
Data Type | Language (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The default language for the Item. Natural language identifiers as defined by [RFC 3066].

### 4.1.5 "toolName" Characteristic Description

The description of the "toolName" characteristic for the "AssessmentItem" root class is given in Table 4.1.5

Table 4.1.5 Description of the "toolName" characteristic for the "AssessmentItem" class.
Descriptor | Definition
--- | ---
Characteristic Name | toolName
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The tool name characteristic allows the tool creating the item to identify itself. Other processing systems may use this information to interpret the content of application specific data, such as labels on the elements of the item's itemBody.

### 4.1.6 "toolVersion" Characteristic Description

The description of the "toolVersion" characteristic for the "AssessmentItem" root class is given in Table 4.1.6

Table 4.1.6 Description of the "toolVersion" characteristic for the "AssessmentItem" class.
Descriptor | Definition
--- | ---
Characteristic Name | toolVersion
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The tool version characteristic allows the tool creating the item to identify its version. This value must only be interpreted in the context of the toolName.

### 4.1.7 "adaptive" Characteristic Description

The description of the "adaptive" characteristic for the "AssessmentItem" root class is given in Table 4.1.7

Table 4.1.7 Description of the "adaptive" characteristic for the "AssessmentItem" class.
Descriptor | Definition
--- | ---
Characteristic Name | adaptive
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Denotes the adaptive nature of the Item. Items are classified as either Adaptive or Non-adaptive.

### 4.1.8 "timeDependent" Characteristic Description

The description of the "timeDependent" characteristic for the "AssessmentItem" root class is given in Table 4.1.8

Table 4.1.8 Description of the "timeDependent" characteristic for the "AssessmentItem" class.
Descriptor | Definition
--- | ---
Characteristic Name | timeDependent
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | Denotes if the Item must be answered within some defined time limit.

### 4.1.9 "responseDeclaration" Attribute Description

The description of the "responseDeclaration" attribute for the "AssessmentItem" root class is given in Table 4.1.9.

Table 4.1.9 Description of the "responseDeclaration" attribute for the "AssessmentItem" root class.
Descriptor | Definition
--- | ---
Attribute Name | responseDeclaration
Data Type | ResponseDeclaration
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is the set of response variable declarations that are associated with the Item. Response variables are only relevant within the parent Item and so every declared variable must be referenced in the corresponding response processing.

### 4.1.10 "outcomeDeclaration" Attribute Description

The description of the "outcomeDeclaration" attribute for the "AssessmentItem" root class is given in Table 4.1.10.

Table 4.1.10 Description of the "outcomeDeclaration" attribute for the "AssessmentItem" root class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeDeclaration
Data Type | OutcomeDeclaration
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is the set of outcome variable declarations that are associated with the Item. Outcome variables are only relevant within the parent Item and so every declared variable must be referenced in the corresponding outcomes processing.

### 4.1.11 "templateDeclaration" Attribute Description

The description of the "templateDeclaration" attribute for the "AssessmentItem" root class is given in Table 4.1.11.

Table 4.1.11 Description of the "templateDeclaration" attribute for the "AssessmentItem" root class.
Descriptor | Definition
--- | ---
Attribute Name | templateDeclaration
Data Type | TemplateDeclaration
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is the set of template variable declarations that are associated with the Item. Template variables are only relevant within the parent Item and so every declared variable must be referenced in the corresponding template processing.

### 4.1.12 "templateProcessing" Attribute Description

The description of the "templateProcessing" attribute for the "AssessmentItem" root class is given in Table 4.1.12.

Table 4.1.12 Description of the "templateProcessing" attribute for the "AssessmentItem" root class.
Descriptor | Definition
--- | ---
Attribute Name | templateProcessing
Data Type | TemplateProcessing
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The response processing rules that are used for this Item. These rules are embedded within the ItemBody.

### 4.1.13 "assessmentStimulusRef" Attribute Description

The description of the "assessmentStimulusRef" attribute for the "AssessmentItem" root class is given in Table 4.1.13.

Table 4.1.13 Description of the "assessmentStimulusRef" attribute for the "AssessmentItem" root class.
Descriptor | Definition
--- | ---
Attribute Name | assessmentStimulusRef
Data Type | AssessmentStimulusRef
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The set of identifier references to the stimulus content that should be associated with the Item. Each identifier must resolve to some AssessmentStimulus object that has been associated with the Item.

### 4.1.14 "stylesheet" Attribute Description

The description of the "stylesheet" attribute for the "AssessmentItem" root class is given in Table 4.1.14.

Table 4.1.14 Description of the "stylesheet" attribute for the "AssessmentItem" root class.
Descriptor | Definition
--- | ---
Attribute Name | stylesheet
Data Type | StyleSheet
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The set of external style sheets that are associated with the Item. The order of definition is significant.

### 4.1.15 "itemBody" Attribute Description

The description of the "itemBody" attribute for the "AssessmentItem" root class is given in Table 4.1.15.

Table 4.1.15 Description of the "itemBody" attribute for the "AssessmentItem" root class.
Descriptor | Definition
--- | ---
Attribute Name | itemBody
Data Type | ItemBody
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The item body for the Item. The itembody contains the text, graphics, media objects and interactions that describe the item's content and information about how it is structured.

### 4.1.16 "responseProcessing" Attribute Description

The description of the "responseProcessing" attribute for the "AssessmentItem" root class is given in Table 4.1.16.

Table 4.1.16 Description of the "responseProcessing" attribute for the "AssessmentItem" root class.
Descriptor | Definition
--- | ---
Attribute Name | responseProcessing
Data Type | ResponseProcessing
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The response processing rules that are used for this Item. These rules may either be embedded within the ItemBody or a reference to some external response processing template may be supplied. If both embedded rules and a template reference are supplied then the internal rules take precedence.

### 4.1.17 "modalFeedback" Attribute Description

The description of the "modalFeedback" attribute for the "AssessmentItem" root class is given in Table 4.1.17.

Table 4.1.17 Description of the "modalFeedback" attribute for the "AssessmentItem" root class.
Descriptor | Definition
--- | ---
Attribute Name | modalFeedback
Data Type | ModalFeedback
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The Modal feedback that is to be shown to the candidate directly following response processing.

### 4.1.18 "apipAccessibility" Attribute Description

The description of the "apipAccessibility" attribute for the "AssessmentItem" root class is given in Table 4.1.18.

Table 4.1.18 Description of the "apipAccessibility" attribute for the "AssessmentItem" root class.
Descriptor | Definition
--- | ---
Attribute Name | apipAccessibility
Data Type | APIPAccessibility
Value Space | Imported
Scope | Global ("+")
Multiplicity | [0..1]
Description | The accessibility information that is to be associated with the content in the ItemBody. The structure of this content is defined in [APIP, 14].

## 4.2 AssessmentSection Root Class Description

The data model for the "AssessmentSection" root class is shown in Figure 4.2 and the accompanying definition in Table 4.2.

Figure 4.2 - AssessmentSection class definitions.

Table 4.2 Description of the "AssessmentSection" class.
Descriptor | Definition
--- | ---
Class Name | AssessmentSection
Class Type | Container [ Sequence ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: identifier required fixed title visible keepTogether
Children | The set of children attributes are: preCondition branchRule itemSessionControl timeLimits selection ordering rubricBlock sectionPart
Description | An assessment section groups together individual item references and/or sub-sections. A section can be composed of any hierarchy/combination of items and sections. A section can only reference an item using an assessmentItemRef object but it may contain or reference other sections. The grouping of the sections/items depends upon the nature of the parent section i.e. each section can be used for different grouping criteria e.g. organizational, pedagogic, etc.

### 4.2.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "AssessmentSection" root class is given in Table 4.2.1

Table 4.2.1 Description of the "identifier" characteristic for the "AssessmentSection" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The unique identifier for the Section. The identifier of the section or item reference must be unique within the test and must not be the identifier of any testPart. The identifier is a string of characters that must start with a Letter or an underscore ('_') and contain only Letters, underscores, hyphens ('-'), period ('.', a.k.a. full-stop), Digits, CombiningChars and Extenders. Identifiers containing the period character are reserved for use in prefixing, as described in the definition of variable. The character classes Letter, Digit, CombiningChar and Extender are defined in the Extensible Markup Language (XML) 1.0 (Second Edition) [XML, 00]. Note particularly that identifiers may not contain the colon (':') character. Identifiers should have no more than 32 characters for compatibility with version 1. They are always compared case-sensitively.

### 4.2.2 "required" Characteristic Description

The description of the "required" characteristic for the "AssessmentSection" root class is given in Table 4.2.2

Table 4.2.2 Description of the "required" characteristic for the "AssessmentSection" class.
Descriptor | Definition
--- | ---
Characteristic Name | required
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If a child element is required it must appear (at least once) in the selection. It is in error if a section contains a selection rule that selects fewer child elements than the number of required elements it contains.

### 4.2.3 "fixed" Characteristic Description

The description of the "fixed" characteristic for the "AssessmentSection" root class is given in Table 4.2.3

Table 4.2.3 Description of the "fixed" characteristic for the "AssessmentSection" class.
Descriptor | Definition
--- | ---
Characteristic Name | fixed
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If a child element is fixed it must never be shuffled. When used in combination with a selection rule fixed elements do not have their position fixed until after selection has taken place. For example, selecting 3 elements from {A,B,C,D} without replacement might result in the selection {A,B,C}. If the section is subject to shuffling but B is fixed then permutations such as {A,C,B} are not allowed whereas permutations like {C,B,A} are.

### 4.2.4 "title" Characteristic Description

The description of the "title" characteristic for the "AssessmentSection" root class is given in Table 4.2.4

Table 4.2.4 Description of the "title" characteristic for the "AssessmentSection" class.
Descriptor | Definition
--- | ---
Characteristic Name | title
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The title of the section is intended to enable the section to be selected in situations where the contents of the section are not available, for example when a candidate is browsing a test. Therefore, delivery engines may reveal the title to candidates at any time during the test but are not required to do so.

### 4.2.5 "visible" Characteristic Description

The description of the "visible" characteristic for the "AssessmentSection" root class is given in Table 4.2.5

Table 4.2.5 Description of the "visible" characteristic for the "AssessmentSection" class.
Descriptor | Definition
--- | ---
Characteristic Name | visible
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | A visible section is one that is identifiable by the candidate. For example, delivery engines might provide a hierarchical view of the test to aid navigation. In such a view, a visible section would be a visible node in the hierarchy. Conversely, an invisible section is one that is not visible to the candidate - the child elements of an invisible section appear to the candidate as if they were part of the parent section (or testPart). The visibility of a section does not affect the visibility of its child elements. The visibility of each section is determined solely by the value of its own visible attribute.

### 4.2.6 "keepTogether" Characteristic Description

The description of the "keepTogether" characteristic for the "AssessmentSection" root class is given in Table 4.2.6

Table 4.2.6 Description of the "keepTogether" characteristic for the "AssessmentSection" class.
Descriptor | Definition
--- | ---
Characteristic Name | keepTogether
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "true".
Scope | Global ("+")
Multiplicity | [0..1]
Description | An invisible section with a parent that is subject to shuffling can specify whether or not its children, which will appear to the candidate as if they were part of the parent, are shuffled as a block or mixed up with the other children of the parent section.

### 4.2.7 "preCondition" Attribute Description

The description of the "preCondition" attribute for the "AssessmentSection" root class is given in Table 4.2.7.

Table 4.2.7 Description of the "preCondition" attribute for the "AssessmentSection" root class.
Descriptor | Definition
--- | ---
Attribute Name | preCondition
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | An optional set of conditions evaluated during the test, that determine if the item or section is to be skipped (in nonlinear mode, pre-conditions are ignored). The order of the conditions is significant.

### 4.2.8 "branchRule" Attribute Description

The description of the "branchRule" attribute for the "AssessmentSection" root class is given in Table 4.2.8.

Table 4.2.8 Description of the "branchRule" attribute for the "AssessmentSection" root class.
Descriptor | Definition
--- | ---
Attribute Name | branchRule
Data Type | BranchRule
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | An optional set of rules, evaluated during the test, for setting an alternative target as the next item or section (in nonlinear mode, branch rules are ignored).

### 4.2.9 "itemSessionControl" Attribute Description

The description of the "itemSessionControl" attribute for the "AssessmentSection" root class is given in Table 4.2.9.

Table 4.2.9 Description of the "itemSessionControl" attribute for the "AssessmentSection" root class.
Descriptor | Definition
--- | ---
Attribute Name | itemSessionControl
Data Type | ItemSessionControl
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | Parameters used to control the allowable states of each item session (may be overridden at sub-section or item level).

### 4.2.10 "timeLimits" Attribute Description

The description of the "timeLimits" attribute for the "AssessmentSection" root class is given in Table 4.2.10.

Table 4.2.10 Description of the "timeLimits" attribute for the "AssessmentSection" root class.
Descriptor | Definition
--- | ---
Attribute Name | timeLimits
Data Type | TimeLimits
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | Optionally controls the amount of time a candidate is allowed for this item or section.

### 4.2.11 "selection" Attribute Description

The description of the "selection" attribute for the "AssessmentSection" root class is given in Table 4.2.11.

Table 4.2.11 Description of the "selection" attribute for the "AssessmentSection" root class.
Descriptor | Definition
--- | ---
Attribute Name | selection
Data Type | Selection
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The rules used to select which children of the section are to be used for each instance of the test. Each child section has its own selection and ordering rules followed before those of its parent. A child section may shuffle the order of its own children while still requiring that they are kept together when shuffling the parent section.

### 4.2.12 "ordering" Attribute Description

The description of the "ordering" attribute for the "AssessmentSection" root class is given in Table 4.2.12.

Table 4.2.12 Description of the "ordering" attribute for the "AssessmentSection" root class.
Descriptor | Definition
--- | ---
Attribute Name | ordering
Data Type | Ordering
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The rules used to determine the order in which the children of the section are to be arranged for each instance of the test. Each child section has its own selection and ordering rules followed before those of its parent. A child section may shuffle the order of its own children while still requiring that they are kept together when shuffling the parent section.

### 4.2.13 "rubricBlock" Attribute Description

The description of the "rubricBlock" attribute for the "AssessmentSection" root class is given in Table 4.2.13.

Table 4.2.13 Description of the "rubricBlock" attribute for the "AssessmentSection" root class.
Descriptor | Definition
--- | ---
Attribute Name | rubricBlock
Data Type | RubricBlock
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | Section rubric is presented to the candidate with each item contained (directly or indirectly) by the section. As sections are nestable the rubric presented for each item is the concatenation of the rubric blocks from the top-most section down to the item's immediately enclosing section.

### 4.2.14 "sectionPart" Attribute Description

The description of the "sectionPart" attribute for the "AssessmentSection" root class is given in Table 4.2.14.

Table 4.2.14 Description of the "sectionPart" attribute for the "AssessmentSection" root class.
Descriptor | Definition
--- | ---
Attribute Name | sectionPart
Data Type | SectionPart
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the definition of the set of assessmentItemRefs, assessmentSectionRefs and assessmentSections to be included as children of the parent assessmentSection. Sections group together individual item references and/or sub-sections.

## 4.3 AssessmentStimulus Root Class Description

The data model for the "AssessmentStimulus" root class is shown in Figure 4.3 and the accompanying definition in Table 4.3.

Figure 4.3 - AssessmentStimulus class definitions.

Table 4.3 Description of the "AssessmentStimulus" class.
Descriptor | Definition
--- | ---
Class Name | AssessmentStimulus
Class Type | Container [ Sequence ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: identifier title label language toolName toolVersion
Children | The set of children attributes are: stylesheet stimulusBody apipAccessibility
Description | An assessment stimulus object is the used to enable content to be shared by several Assessment Items. The key feature is that this shared stimulus content must be supplied in the same context for each of the Assessment Items that make use of it. The assessment stimulus approach provides a mechanism to allow the stimulus content to be managed independently.

### 4.3.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "AssessmentStimulus" root class is given in Table 4.3.1

Table 4.3.1 Description of the "identifier" characteristic for the "AssessmentStimulus" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The unique identifier for the Stimulus. The identifier is a string of characters that must start with a Letter or an underscore ('_') and contain only Letters, underscores, hyphens ('-'), period ('.', a.k.a. full-stop), Digits, CombiningChars and Extenders. Identifiers containing the period character are reserved for use in prefixing, as described in the definition of variable. The character classes Letter, Digit, CombiningChar and Extender are defined in the Extensible Markup Language (XML) 1.0 (Second Edition) [XML, 10]. Note particularly that identifiers may not contain the colon (':') character. Identifiers should have no more than 32 characters for compatibility with version 1. They are always compared case-sensitively.

### 4.3.2 "title" Characteristic Description

The description of the "title" characteristic for the "AssessmentStimulus" root class is given in Table 4.3.2

Table 4.3.2 Description of the "title" characteristic for the "AssessmentStimulus" class.
Descriptor | Definition
--- | ---
Characteristic Name | title
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The title of the stimulus is intended to enable the stimulus to be selected in situations where the contents are not available, for example when an author is browsing a repository.

### 4.3.3 "label" Characteristic Description

The description of the "label" characteristic for the "AssessmentStimulus" root class is given in Table 4.3.3

Table 4.3.3 Description of the "label" characteristic for the "AssessmentStimulus" class.
Descriptor | Definition
--- | ---
Characteristic Name | label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | A human readable label that can be used to describe the Stimulus.

### 4.3.4 "language" Characteristic Description

The description of the "language" characteristic for the "AssessmentStimulus" root class is given in Table 4.3.4

Table 4.3.4 Description of the "language" characteristic for the "AssessmentStimulus" class.
Descriptor | Definition
--- | ---
Characteristic Name | language
Data Type | Language (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The default language for the Stimulus. Natural language identifiers as defined by [RFC 3066].

### 4.3.5 "toolName" Characteristic Description

The description of the "toolName" characteristic for the "AssessmentStimulus" root class is given in Table 4.3.5

Table 4.3.5 Description of the "toolName" characteristic for the "AssessmentStimulus" class.
Descriptor | Definition
--- | ---
Characteristic Name | toolName
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The tool name characteristic allows the tool creating the stimulus to identify itself. Other processing systems may use this information to interpret the content of application specific data, such as labels on the elements of the stimulus's stimulusBody.

### 4.3.6 "toolVersion" Characteristic Description

The description of the "toolVersion" characteristic for the "AssessmentStimulus" root class is given in Table 4.3.6

Table 4.3.6 Description of the "toolVersion" characteristic for the "AssessmentStimulus" class.
Descriptor | Definition
--- | ---
Characteristic Name | toolVersion
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The tool version characteristic allows the tool creating the item to identify its version. This value must only be interpreted in the context of the toolName.

### 4.3.7 "stylesheet" Attribute Description

The description of the "stylesheet" attribute for the "AssessmentStimulus" root class is given in Table 4.3.7.

Table 4.3.7 Description of the "stylesheet" attribute for the "AssessmentStimulus" root class.
Descriptor | Definition
--- | ---
Attribute Name | stylesheet
Data Type | StyleSheet
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The set of external style sheets that are associated with the Stimulus. The order of definition is significant.

### 4.3.8 "stimulusBody" Attribute Description

The description of the "stimulusBody" attribute for the "AssessmentStimulus" root class is given in Table 4.3.8.

Table 4.3.8 Description of the "stimulusBody" attribute for the "AssessmentStimulus" root class.
Descriptor | Definition
--- | ---
Attribute Name | stimulusBody
Data Type | StimulusBody
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The stimulus body for the Stimulus. The itembody contains the text, graphics, media objects and interactions that describe the simulus's content and information about how it is structured.

### 4.3.9 "apipAccessibility" Attribute Description

The description of the "apipAccessibility" attribute for the "AssessmentStimulus" root class is given in Table 4.3.9.

Table 4.3.9 Description of the "apipAccessibility" attribute for the "AssessmentStimulus" root class.
Descriptor | Definition
--- | ---
Attribute Name | apipAccessibility
Data Type | APIPAccessibility
Value Space | Imported
Scope | Global ("+")
Multiplicity | [0..1]
Description | The accessibility information that is to be associated with the content in the ItemBody. The structure of this content is defined in [APIP, 14].

## 4.4 AssessmentTest Root Class Description

The data model for the "AssessmentTest" root class is shown in Figure 4.4 and the accompanying definition in Table 4.4.

Figure 4.4 - AssessmentTest class definitions.

Table 4.4 Description of the "AssessmentTest" class.
Descriptor | Definition
--- | ---
Class Name | AssessmentTest
Class Type | Container [ Sequence ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: identifier title toolName toolVersion
Children | The set of children attributes are: outcomeDeclaration timeLimits stylesheet testPart outcomeProcessing testFeedback
Description | An assessment test is a group of assessmentItems with an associated set of rules that determine which of the items the candidate sees, in what order, and in what way the candidate interacts with them. The rules describe the valid paths through the test, when responses are submitted for response processing and when (if at all) feedback is to be given. Assessment tests are composed of one or more test parts.

### 4.4.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "AssessmentTest" root class is given in Table 4.4.1

Table 4.4.1 Description of the "identifier" characteristic for the "AssessmentTest" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The principle identifier of the test. This identifier must have a corresponding entry in the test's metadata. See QTI Metadata and QTI Usage Data for more information [QTI, 16c], [QTI, 16d].

### 4.4.2 "title" Characteristic Description

The description of the "title" characteristic for the "AssessmentTest" root class is given in Table 4.4.2

Table 4.4.2 Description of the "title" characteristic for the "AssessmentTest" class.
Descriptor | Definition
--- | ---
Characteristic Name | title
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The title of an assessmentTest is intended to enable the test to be selected outside of any test session. Therefore, delivery engines may reveal the title to candidates at any time, but are not required to do so.

### 4.4.3 "toolName" Characteristic Description

The description of the "toolName" characteristic for the "AssessmentTest" root class is given in Table 4.4.3

Table 4.4.3 Description of the "toolName" characteristic for the "AssessmentTest" class.
Descriptor | Definition
--- | ---
Characteristic Name | toolName
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The tool name characteristic allows the tool creating the test to identify itself. Other processing systems may use this information to interpret the content of application specific data, such as labels on the elements of the test rubric.

### 4.4.4 "toolVersion" Characteristic Description

The description of the "toolVersion" characteristic for the "AssessmentTest" root class is given in Table 4.4.4

Table 4.4.4 Description of the "toolVersion" characteristic for the "AssessmentTest" class.
Descriptor | Definition
--- | ---
Characteristic Name | toolVersion
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The tool version characteristic allows the tool creating the test to identify its version. This value must only be interpreted in the context of the toolName.

### 4.4.5 "outcomeDeclaration" Attribute Description

The description of the "outcomeDeclaration" attribute for the "AssessmentTest" root class is given in Table 4.4.5.

Table 4.4.5 Description of the "outcomeDeclaration" attribute for the "AssessmentTest" root class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeDeclaration
Data Type | OutcomeDeclaration
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | Each test has an associated set of outcomes. The values of these outcomes are set by the test's outcomeProcessing rules.

### 4.4.6 "timeLimits" Attribute Description

The description of the "timeLimits" attribute for the "AssessmentTest" root class is given in Table 4.4.6.

Table 4.4.6 Description of the "timeLimits" attribute for the "AssessmentTest" root class.
Descriptor | Definition
--- | ---
Attribute Name | timeLimits
Data Type | TimeLimits
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | Optionally controls the amount of time a candidate is allowed for the entire test.

### 4.4.7 "stylesheet" Attribute Description

The description of the "stylesheet" attribute for the "AssessmentTest" root class is given in Table 4.4.7.

Table 4.4.7 Description of the "stylesheet" attribute for the "AssessmentTest" root class.
Descriptor | Definition
--- | ---
Attribute Name | stylesheet
Data Type | StyleSheet
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | Used to associate an external stylesheet with an assessmentTest.

### 4.4.8 "testPart" Attribute Description

The description of the "testPart" attribute for the "AssessmentTest" root class is given in Table 4.4.8.

Table 4.4.8 Description of the "testPart" attribute for the "AssessmentTest" root class.
Descriptor | Definition
--- | ---
Attribute Name | testPart
Data Type | TestPart
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | Each test is divided into one or more parts which may in turn be divided into sections, sub-sections and so on. A testPart represents a major division of the test and is used to control the basic mode parameters that apply to all sections and sub-sections within that part.

### 4.4.9 "outcomeProcessing" Attribute Description

The description of the "outcomeProcessing" attribute for the "AssessmentTest" root class is given in Table 4.4.9.

Table 4.4.9 Description of the "outcomeProcessing" attribute for the "AssessmentTest" root class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeProcessing
Data Type | OutcomeProcessing
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The set of rules used for calculating the values of the test outcomes.

### 4.4.10 "testFeedback" Attribute Description

The description of the "testFeedback" attribute for the "AssessmentTest" root class is given in Table 4.4.10.

Table 4.4.10 Description of the "testFeedback" attribute for the "AssessmentTest" root class.
Descriptor | Definition
--- | ---
Attribute Name | testFeedback
Data Type | TestFeedback
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | Contains the test-level feedback controlled by the test outcomes.

## 4.5 OutcomeDeclaration Root Class Description

The data model for the "OutcomeDeclaration" root class is shown in Figure 4.5 and the accompanying definition in Table 4.5.

Figure 4.5 - OutcomeDeclaration class definitions.

Table 4.5 Description of the "OutcomeDeclaration" class.
Descriptor | Definition
--- | ---
Class Name | OutcomeDeclaration
Class Type | Container [ Sequence ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: identifier cardinality baseType view interpretation longInterpretation normalMaximum normalMinimum masteryValue externalScored variableIdentifierRef
Children | The set of children attributes are: defaultValue lookupTable
Description | Outcome variables are declared by outcome declarations. Their value is set either from a default given in the declaration itself or by a responseRule during responseProcessing. Items that declare a numeric outcome variable representing the candidate's overall performance on the item should use the outcome name 'SCORE' for the variable. SCORE needs to be a float. Items that declare a maximum score (in multiple response choice interactions, for example) should do so by declaring the 'MAXSCORE' variable. MAXSCORE needs to be a float. Items or tests that want to make the fact that the candidate scored above a predefined treshold available as a variable should use the 'PASSED' variable. PASSED needs to be a boolean. At runtime, outcome variables are instantiated as part of an item session. Their values may be initialized with a default value and/or set during responseProcessing. If no default value is given in the declaration then the outcome variable is initialized to NULL unless the outcome is of a numeric type (integer or float) in which case it is initialized to 0. Declared outcomes with numeric types should indicate their range of possible values using normalMaximum and normalMinimum, especially if this range differs from [0,1].

### 4.5.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "OutcomeDeclaration" root class is given in Table 4.5.1

Table 4.5.1 Description of the "identifier" characteristic for the "OutcomeDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifiers of the built-in session variables are reserved. They are completionStatus, numAttempts and duration. All item variables declared in an item share the same namespace. Different items have different namespaces.

### 4.5.2 "cardinality" Characteristic Description

The description of the "cardinality" characteristic for the "OutcomeDeclaration" root class is given in Table 4.5.2

Table 4.5.2 Description of the "cardinality" characteristic for the "OutcomeDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | cardinality
Data Type | Cardinality
Value Space | Enumerated value set of: { multiple | ordered | record | single }
Scope | Global ("+")
Multiplicity | [1]
Description | Each variable is either single valued or multi-valued. Multi-valued variables are referred to as containers and come in ordered, unordered and record types. See the cardinality enumerated vocabulary for more information.

### 4.5.3 "baseType" Characteristic Description

The description of the "baseType" characteristic for the "OutcomeDeclaration" root class is given in Table 4.5.3

Table 4.5.3 Description of the "baseType" characteristic for the "OutcomeDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | baseType
Data Type | BaseType
Value Space | Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope | Global ("+")
Multiplicity | [0..1]
Description | The value space from which the variable's value can be drawn (or in the case of containers, from which the individual values are drawn) is identified with a baseType. The baseType selects one of a small set of predefined types that are considered to have atomic values within the runtime data model. Variables with record cardinality have no base-type.

### 4.5.4 "view" Characteristic Description

The description of the "view" characteristic for the "OutcomeDeclaration" root class is given in Table 4.5.4

Table 4.5.4 Description of the "view" characteristic for the "OutcomeDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | view
Data Type | View
Value Space | A list from an enumerated value set of: { author | candidate | proctor | scorer | testConstructor | tutor }
Scope | Global ("+")
Multiplicity | [0..1]
Description | The intended audience for an outcome variable can be set with the view attribute. If no view is specified the outcome is treated as relevant to all views. Complex items, such as adaptive items or complex templates, may declare outcomes that are of no interest to the candidate at all, but are merely used to hold intermediate values or other information useful during the item or test session. Such variables should be declared with a view of author (for item outcomes) or testConstructor (for test outcomes). Systems may exclude outcomes from result reports on the basis of their declared view if appropriate. Where more than one class of user should be able to view an outcome variable the view attribute should contain a comma delimited list.

### 4.5.5 "interpretation" Characteristic Description

The description of the "interpretation" characteristic for the "OutcomeDeclaration" root class is given in Table 4.5.5

Table 4.5.5 Description of the "interpretation" characteristic for the "OutcomeDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | interpretation
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | A human interpretation of the variable's value.

### 4.5.6 "longInterpretation" Characteristic Description

The description of the "longInterpretation" characteristic for the "OutcomeDeclaration" root class is given in Table 4.5.6

Table 4.5.6 Description of the "longInterpretation" characteristic for the "OutcomeDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | longInterpretation
Data Type | AnyURI (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | An optional link to an extended interpretation of the outcome variable's value.

### 4.5.7 "normalMaximum" Characteristic Description

The description of the "normalMaximum" characteristic for the "OutcomeDeclaration" root class is given in Table 4.5.7

Table 4.5.7 Description of the "normalMaximum" characteristic for the "OutcomeDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | normalMaximum
Data Type | NonNegativeDouble
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The normalMaximum characteristic optionally defines the maximum magnitude of numeric outcome variables, it must be a positive value. If given, the outcome's value can be divided by normalMaximum and then truncated (if necessary) to obtain a normalized score in the range [-1.0,1.0]. normalMaximum has no affect on responseProcessing or the values that the outcome variable itself can take.

### 4.5.8 "normalMinimum" Characteristic Description

The description of the "normalMinimum" characteristic for the "OutcomeDeclaration" root class is given in Table 4.5.8

Table 4.5.8 Description of the "normalMinimum" characteristic for the "OutcomeDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | normalMinimum
Data Type | Double (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The normalMinimum characteristic optionally defines the minimum value of numeric outcome variables, it may be negative.

### 4.5.9 "masteryValue" Characteristic Description

The description of the "masteryValue" characteristic for the "OutcomeDeclaration" root class is given in Table 4.5.9

Table 4.5.9 Description of the "masteryValue" characteristic for the "OutcomeDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | masteryValue
Data Type | Double (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The masteryValue characteristic optionally defines a value for numeric outcome variables above which the aspect being measured is considered to have been mastered by the candidate.

### 4.5.10 "externalScored" Characteristic Description

The description of the "externalScored" characteristic for the "OutcomeDeclaration" root class is given in Table 4.5.10

Table 4.5.10 Description of the "externalScored" characteristic for the "OutcomeDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | externalScored
Data Type | ExternalScored
Value Space | Enumerated value set of: { externalMachine | human }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This identifies whether or not the value for this outcome is produced by human and machine scoring.

### 4.5.11 "variableIdentifierRef" Characteristic Description

The description of the "variableIdentifierRef" characteristic for the "OutcomeDeclaration" root class is given in Table 4.5.11

Table 4.5.11 Description of the "variableIdentifierRef" characteristic for the "OutcomeDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | variableIdentifierRef
Data Type | UniqueIdentifierRef
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the identifier for an external variable that will be used to provide the external scoring value.

### 4.5.12 "defaultValue" Attribute Description

The description of the "defaultValue" attribute for the "OutcomeDeclaration" root class is given in Table 4.5.12.

Table 4.5.12 Description of the "defaultValue" attribute for the "OutcomeDeclaration" root class.
Descriptor | Definition
--- | ---
Attribute Name | defaultValue
Data Type | DefaultValue
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The default outcome value to be used when no matching tabel entry is found. If omitted, the NULL value is used.

### 4.5.13 "lookupTable" Attribute Description

The description of the "lookupTable" attribute for the "OutcomeDeclaration" root class is given in Table 4.5.13.

Table 4.5.13 Description of the "lookupTable" attribute for the "OutcomeDeclaration" root class.
Descriptor | Definition
--- | ---
Attribute Name | lookupTable
Data Type | LookupTable
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0..1]
Description | An abstract attribute to create a lookup table from a numeric source value to a single outcome value in the declared value set. A lookup table works in the reverse sense to the similar mapping as it defines how a source numeric value is transformed into the outcome value, whereas a (response) mapping defines how the response value is mapped onto a target numeric value.

## 4.6 ResponseProcessing Root Class Description

The data model for the "ResponseProcessing" root class is shown in Figure 4.6 and the accompanying definition in Table 4.6.

Figure 4.6 - ResponseProcessing class definitions.

Table 4.6 Description of the "ResponseProcessing" class.
Descriptor | Definition
--- | ---
Class Name | ResponseProcessing
Class Type | Container [ Sequence ]
Parents | None (Root Class)
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: template templateLocation
Children | The set of children attributes are: responseRuleGroup
Description | Response processing is the process by which the Delivery Engine assigns outcomes based on the candidate's responses. The outcomes may be used to provide feedback to the candidate. Feedback is either provided immediately following the end of the candidate's attempt or it is provided at some later time, perhaps as part of a summary report on the item session. The end of an attempt, and therefore response processing, must only take place in direct response to a user action or in response to some expected event, such as the end of a test. An item session that enters the suspended state may have values for the response variables that have yet to be submitted for response processing.

### 4.6.1 "template" Characteristic Description

The description of the "template" characteristic for the "ResponseProcessing" root class is given in Table 4.6.1

Table 4.6.1 Description of the "template" characteristic for the "ResponseProcessing" class.
Descriptor | Definition
--- | ---
Characteristic Name | template
Data Type | AnyURI (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | If a template identifier is given it may be used to locate an externally defined responseProcessing template. The rules obtained from the external template may be used instead of the rules defined within the item itself, though if both are given the internal rules are still preferred.

### 4.6.2 "templateLocation" Characteristic Description

The description of the "templateLocation" characteristic for the "ResponseProcessing" root class is given in Table 4.6.2

Table 4.6.2 Description of the "templateLocation" characteristic for the "ResponseProcessing" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateLocation
Data Type | AnyURI (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | In practice, the template attribute may well contain a URN or the URI of a template stored on a remote web server, such as the standard response processing templates defined by this specification. When processing an assessmentItem tools working offline will not be able to obtain the template from a URN or remote URI. The templateLocation attribute provides an alternative URI, typically a relative URI to be resolved relative to the location of the assessmentItem itself, that can be used to obtain a copy of the response processing template. If a delivery system is able to determine the correct behaviour from the template identifier alone the templateLocation should be ignored. For example, a delivery system may have built-in procedures for handling the standard templates defined above.

### 4.6.3 "responseRuleGroup" Attribute Description

The description of the "responseRuleGroup" attribute for the "ResponseProcessing" root class is given in Table 4.6.3.

Table 4.6.3 Description of the "responseRuleGroup" attribute for the "ResponseProcessing" root class.
Descriptor | Definition
--- | ---
Attribute Name | responseRuleGroup
Data Type | ResponseRuleGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that provides the selection of the constructs that can be used to compose a response rule group. This allows arbitraily complex response processing rules to be constructed for the processing of the responses to the presented item interactions.

toc | top

# 5. Data Class Descriptions

All of the data classes used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.2.

## 5.1 A Class Description

The data model for the "A" class is shown in Figure 5.1 and the accompanying definition in Table 5.1.

Figure 5.1 - A class definitions.

Table 5.1 Description of the "A" class.
Descriptor | Definition
--- | ---
Class Name | A
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: FlowContentModel InlineContentModel
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of characteristics are: href type The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: inlineGroup
Description | This provides the functionality of the HTML 'a' tag and is used to identifiy a link. If the 'a' tag has an href attribute, then it represents a hyperlink (a hypertext anchor) labeled by its contents. If the a element has no href attribute, then the element represents a placeholder for where a link might otherwise have been placed, if it had been relevant, consisting of just the element's contents.

### 5.1.1 "href" Characteristic Description

The description of the "href" characteristic for the "A" class is given in Table 5.1.1.

Table 5.1.1 Description of the "href" characteristic for the "A" class.
Descriptor | Definition
--- | ---
Characteristic Name | href
Data Type | AnyURI (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The URL for the hyperlink.

### 5.1.2 "type" Characteristic Description

The description of the "type" characteristic for the "A" class is given in Table 5.1.2.

Table 5.1.2 Description of the "type" characteristic for the "A" class.
Descriptor | Definition
--- | ---
Characteristic Name | type
Data Type | MimeType
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | If present, this gives the MIME type of the linked resource. It is purely advisory. The value must be a valid MIME type. User agents must not consider the type attribute authoritative.

### 5.1.3 "inlineGroup" Attribute Description

The description of the "inlineGroup" attribute for the "A" class is given in Table 5.1.3.

Table 5.1.3 Description of the "inlineGroup" attribute for the "A" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineGroup
Data Type | InlineGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the insertion of the inline content (inline content as defined for HTML). Any combination of the inline content is permitted.

## 5.2 AnyN Class Description

The data model for the "AnyN" class is shown in Figure 5.2 and the accompanying definition in Table 5.2.

Figure 5.2 - AnyN class definitions.

Table 5.2 Description of the "AnyN" class.
Descriptor | Definition
--- | ---
Class Name | AnyN
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: min max
Children | The set of children attributes are: logic
Description | This is one of the expression functions. The 'anyN' operator takes one or more sub-expressions each with a base-type of boolean and single cardinality. The result is a single boolean which is true if at least min of the sub-expressions are true and at most max of the sub-expressions are true. If more than n - min sub-expressions are false (where n is the total number of sub-expressions) or more than max sub-expressions are true then the result is false. If one or more sub-expressions are NULL then it is possible that neither of these conditions is satisfied, in which case the operator results in NULL. For example, if min is 3 and max is 4 and the sub-expressions have values {true,true,false,NULL} then the operator results in NULL whereas {true,false,false,NULL} results in false and {true,true,true,NULL} results in true. The result NULL indicates that the correct value for the operator cannot be determined.

### 5.2.1 "min" Characteristic Description

The description of the "min" characteristic for the "AnyN" class is given in Table 5.2.1.

Table 5.2.1 Description of the "min" characteristic for the "AnyN" class.
Descriptor | Definition
--- | ---
Characteristic Name | min
Data Type | IntegerOrVariableRef
Value Space | The union consist of values of data-type(s): Integer (Primitive-type), VariableString (Derived-type)
Scope | Global ("+")
Multiplicity | [1]
Description | The minimum number of sub-expressions that must be true.

### 5.2.2 "max" Characteristic Description

The description of the "max" characteristic for the "AnyN" class is given in Table 5.2.2.

Table 5.2.2 Description of the "max" characteristic for the "AnyN" class.
Descriptor | Definition
--- | ---
Characteristic Name | max
Data Type | IntegerOrVariableRef
Value Space | The union consist of values of data-type(s): Integer (Primitive-type), VariableString (Derived-type)
Scope | Global ("+")
Multiplicity | [1]
Description | The maximum number of sub-expressions that must be true.

### 5.2.3 "logic" Attribute Description

The description of the "logic" attribute for the "AnyN" class is given in Table 5.2.3.

Table 5.2.3 Description of the "logic" attribute for the "AnyN" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1.. unbounded]
Description | This is an abstract attribute that allows any combination of QTI expressions to be inserted. There must be a least one child expression.

## 5.3 AreaMapping Class Description

The data model for the "AreaMapping" class is shown in Figure 5.3 and the accompanying definition in Table 5.3.

Figure 5.3 - AreaMapping class definitions.

Table 5.3 Description of the "AreaMapping" class.
Descriptor | Definition
--- | ---
Class Name | AreaMapping
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ResponseDeclaration
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: lowerBound upperBound defaultValue
Children | The set of children attributes are: areaMapEntry
Description | A special class used to create a mapping from a source set of point values to a target set of float values. When mapping containers, the result is the sum of the mapped values from the target set. See mapResponsePoint for details. The attributes have the same meaning as the similarly named attributes on mapping.

### 5.3.1 "lowerBound" Characteristic Description

The description of the "lowerBound" characteristic for the "AreaMapping" class is given in Table 5.3.1.

Table 5.3.1 Description of the "lowerBound" characteristic for the "AreaMapping" class.
Descriptor | Definition
--- | ---
Characteristic Name | lowerBound
Data Type | Double (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The lower bound on the value.

### 5.3.2 "upperBound" Characteristic Description

The description of the "upperBound" characteristic for the "AreaMapping" class is given in Table 5.3.2.

Table 5.3.2 Description of the "upperBound" characteristic for the "AreaMapping" class.
Descriptor | Definition
--- | ---
Characteristic Name | upperBound
Data Type | Double (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The upper bound on the value.

### 5.3.3 "defaultValue" Characteristic Description

The description of the "defaultValue" characteristic for the "AreaMapping" class is given in Table 5.3.3.

Table 5.3.3 Description of the "defaultValue" characteristic for the "AreaMapping" class.
Descriptor | Definition
--- | ---
Characteristic Name | defaultValue
Data Type | Double (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The default value.

### 5.3.4 "areaMapEntry" Attribute Description

The description of the "areaMapEntry" attribute for the "AreaMapping" class is given in Table 5.3.4.

Table 5.3.4 Description of the "areaMapEntry" attribute for the "AreaMapping" class.
Descriptor | Definition
--- | ---
Attribute Name | areaMapEntry
Data Type | AreaMapEntry
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | The map is defined by a set of areaMapEntries, each of which maps an area of the coordinate space onto a single float. When mapping points each area is tested in turn, with those listed first taking priority in the case where areas overlap and a point falls in the intersection

## 5.4 AssessmentItemRef Class Description

The data model for the "AssessmentItemRef" class is shown in Figure 5.4 and the accompanying definition in Table 5.4.

Figure 5.4 - AssessmentItemRef class definitions.

Table 5.4 Description of the "AssessmentItemRef" class.
Descriptor | Definition
--- | ---
Class Name | AssessmentItemRef
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: SectionPart
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: identifier required fixed href category
Children | The set of children attributes are: preCondition branchRule itemSessionControl timeLimits variableMapping weight templateDefault
Description | Items are incorporated into the test by reference and not by direct aggregation. Note that the identifier of the reference need not have any meaning outside the test. In particular it is not required to be unique in the context of any catalog, or be represented in the item's metadata. The syntax of this identifier is more restrictive than that of the identifier attribute of the assessmentItem itself.

### 5.4.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "AssessmentItemRef" class is given in Table 5.4.1.

Table 5.4.1 Description of the "identifier" characteristic for the "AssessmentItemRef" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the item reference must be unique within the test.

### 5.4.2 "required" Characteristic Description

The description of the "required" characteristic for the "AssessmentItemRef" class is given in Table 5.4.2.

Table 5.4.2 Description of the "required" characteristic for the "AssessmentItemRef" class.
Descriptor | Definition
--- | ---
Characteristic Name | required
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If a child element is required it must appear (at least once) in the selection. It is in error if a section contains a selection rule that selects fewer child elements than the number of required elements it contains.

### 5.4.3 "fixed" Characteristic Description

The description of the "fixed" characteristic for the "AssessmentItemRef" class is given in Table 5.4.3.

Table 5.4.3 Description of the "fixed" characteristic for the "AssessmentItemRef" class.
Descriptor | Definition
--- | ---
Characteristic Name | fixed
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If a child element is fixed it must never be shuffled. When used in combination with a selection rule fixed elements do not have their position fixed until after selection has taken place. For example, selecting 3 elements from {A,B,C,D} without replacement might result in the selection {A,B,C}. If the section is subject to shuffling but B is fixed then permutations such as {A,C,B} are not allowed whereas permutations like {C,B,A} are.

### 5.4.4 "href" Characteristic Description

The description of the "href" characteristic for the "AssessmentItemRef" class is given in Table 5.4.4.

Table 5.4.4 Description of the "href" characteristic for the "AssessmentItemRef" class.
Descriptor | Definition
--- | ---
Characteristic Name | href
Data Type | AnyURI (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The uri used to refer to the item's file (e.g., elsewhere in the same content package). There is no requirement that this be unique. A test may refer to the same item multiple times within a test. Note however that each reference must have a unique identifier.

### 5.4.5 "category" Characteristic Description

The description of the "category" characteristic for the "AssessmentItemRef" class is given in Table 5.4.5.

Table 5.4.5 Description of the "category" characteristic for the "AssessmentItemRef" class.
Descriptor | Definition
--- | ---
Characteristic Name | category
Data Type | IdentifierList
Value Space | The list consist of values of data-type(s): NCName (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | Items can optionally be assigned to one or more categories. Categories are used to allow custom sets of item outcomes to be aggregated during outcomes processing.

### 5.4.6 "preCondition" Attribute Description

The description of the "preCondition" attribute for the "AssessmentItemRef" class is given in Table 5.4.6.

Table 5.4.6 Description of the "preCondition" attribute for the "AssessmentItemRef" class.
Descriptor | Definition
--- | ---
Attribute Name | preCondition
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | An optional set of conditions evaluated during the test, that determine if the item or section is to be skipped (in nonlinear mode, pre-conditions are ignored).

### 5.4.7 "branchRule" Attribute Description

The description of the "branchRule" attribute for the "AssessmentItemRef" class is given in Table 5.4.7.

Table 5.4.7 Description of the "branchRule" attribute for the "AssessmentItemRef" class.
Descriptor | Definition
--- | ---
Attribute Name | branchRule
Data Type | BranchRule
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | An optional set of rules, evaluated during the test, for setting an alternative target as the next item or section (in nonlinear mode, branch rules are ignored).

### 5.4.8 "itemSessionControl" Attribute Description

The description of the "itemSessionControl" attribute for the "AssessmentItemRef" class is given in Table 5.4.8.

Table 5.4.8 Description of the "itemSessionControl" attribute for the "AssessmentItemRef" class.
Descriptor | Definition
--- | ---
Attribute Name | itemSessionControl
Data Type | ItemSessionControl
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | Parameters used to control the allowable states of each item session.

### 5.4.9 "timeLimits" Attribute Description

The description of the "timeLimits" attribute for the "AssessmentItemRef" class is given in Table 5.4.9.

Table 5.4.9 Description of the "timeLimits" attribute for the "AssessmentItemRef" class.
Descriptor | Definition
--- | ---
Attribute Name | timeLimits
Data Type | TimeLimits
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | Optionally controls the amount of time a candidate is allowed for this item.

### 5.4.10 "variableMapping" Attribute Description

The description of the "variableMapping" attribute for the "AssessmentItemRef" class is given in Table 5.4.10.

Table 5.4.10 Description of the "variableMapping" attribute for the "AssessmentItemRef" class.
Descriptor | Definition
--- | ---
Attribute Name | variableMapping
Data Type | VariableMapping
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | Variable mappings are used to alter the name of an item outcome for the purposes of this test.

### 5.4.11 "weight" Attribute Description

The description of the "weight" attribute for the "AssessmentItemRef" class is given in Table 5.4.11.

Table 5.4.11 Description of the "weight" attribute for the "AssessmentItemRef" class.
Descriptor | Definition
--- | ---
Attribute Name | weight
Data Type | Weight
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | Weights allow custom values to be defined for scaling an item's outcomes.

### 5.4.12 "templateDefault" Attribute Description

The description of the "templateDefault" attribute for the "AssessmentItemRef" class is given in Table 5.4.12.

Table 5.4.12 Description of the "templateDefault" attribute for the "AssessmentItemRef" class.
Descriptor | Definition
--- | ---
Attribute Name | templateDefault
Data Type | TemplateDefault
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | A template default is used to alter the default value of a template variable declared by the item based on an expression evaluated at test-level. See templateDefault for more information.

## 5.5 AssociableHotspot Class Description

The data model for the "AssociableHotspot" class is shown in Figure 5.5 and the accompanying definition in Table 5.5.

Figure 5.5 - AssociableHotspot class definitions.

Table 5.5 Description of the "AssociableHotspot" class.
Descriptor | Definition
--- | ---
Class Name | AssociableHotspot
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: GraphicAssociateInteraction GraphicGapMatchInteraction
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBaseEmpty
Characteristics | The set of characteristics are: identifier templateIdentifier showHide matchGroup shape coords hotspotLabel matchMax matchMin The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | This is used to define the hotspots that are associated with the features in the 'graphicAssociateInteraction' and 'graphicGapMatchInteraction' interactions.

### 5.5.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "AssociableHotspot" class is given in Table 5.5.1.

Table 5.5.1 Description of the "identifier" characteristic for the "AssociableHotspot" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the hotspot. This identifier must not be used by any other hotspot or item variable.

### 5.5.2 "templateIdentifier" Characteristic Description

The description of the "templateIdentifier" characteristic for the "AssociableHotspot" class is given in Table 5.5.2.

Table 5.5.2 Description of the "templateIdentifier" characteristic for the "AssociableHotspot" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The identifier of a template variable that must have a base-type of identifier and be of either single or multiple cardinality. The visibility of the templateElement is controlled by the value of the variable.

### 5.5.3 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "AssociableHotspot" class is given in Table 5.5.3.

Table 5.5.3 Description of the "showHide" characteristic for the "AssociableHotspot" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide characteristic determines how the visibility of the hotspot is controlled. If set to show then the hotspot is hidden by default and shown only if the associated template variable matches, or contains, the identifier of the hotspot. If set to hide then the hotspot is shown by default and hidden if the associated template variable matches, or contains, the hotspot's identifier.

### 5.5.4 "matchGroup" Characteristic Description

The description of the "matchGroup" characteristic for the "AssociableHotspot" class is given in Table 5.5.4.

Table 5.5.4 Description of the "matchGroup" characteristic for the "AssociableHotspot" class.
Descriptor | Definition
--- | ---
Characteristic Name | matchGroup
Data Type | IdentifierList
Value Space | The list consist of values of data-type(s): NCName (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | [ ED NOTE: How is this used?]

### 5.5.5 "shape" Characteristic Description

The description of the "shape" characteristic for the "AssociableHotspot" class is given in Table 5.5.5.

Table 5.5.5 Description of the "shape" characteristic for the "AssociableHotspot" class.
Descriptor | Definition
--- | ---
Characteristic Name | shape
Data Type | Shape
Value Space | Enumerated value set of: { circle | default | ellipse | poly | rect }
Scope | Global ("+")
Multiplicity | [1]
Description | The shape of the hotspot.

### 5.5.6 "coords" Characteristic Description

The description of the "coords" characteristic for the "AssociableHotspot" class is given in Table 5.5.6.

Table 5.5.6 Description of the "coords" characteristic for the "AssociableHotspot" class.
Descriptor | Definition
--- | ---
Characteristic Name | coords
Data Type | Coords
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The size and position of the hotspot, interpreted in conjunction with the shape.

### 5.5.7 "hotspotLabel" Characteristic Description

The description of the "hotspotLabel" characteristic for the "AssociableHotspot" class is given in Table 5.5.7.

Table 5.5.7 Description of the "hotspotLabel" characteristic for the "AssociableHotspot" class.
Descriptor | Definition
--- | ---
Characteristic Name | hotspotLabel
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The alternative text for this (hot) area of the image, if specified it must be treated in the same way as alternative text for img. For hidden hotspots this label is ignored.

### 5.5.8 "matchMax" Characteristic Description

The description of the "matchMax" characteristic for the "AssociableHotspot" class is given in Table 5.5.8.

Table 5.5.8 Description of the "matchMax" characteristic for the "AssociableHotspot" class.
Descriptor | Definition
--- | ---
Characteristic Name | matchMax
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The maximum number of choices this choice may be associated with. If matchMax is 0 there is no restriction.

### 5.5.9 "matchMin" Characteristic Description

The description of the "matchMin" characteristic for the "AssociableHotspot" class is given in Table 5.5.9.

Table 5.5.9 Description of the "matchMin" characteristic for the "AssociableHotspot" class.
Descriptor | Definition
--- | ---
Characteristic Name | matchMin
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of choices this choice must be associated with to form a valid response. If matchMin is 0 then the candidate is not required to associate this choice with any others at all. matchMin must be less than or equal to the limit imposed by matchMax.

## 5.6 AssociateInteraction Class Description

The data model for the "AssociateInteraction" class is shown in Figure 5.6 and the accompanying definition in Table 5.6.

Figure 5.6 - AssociateInteraction class definitions.

Table 5.6 Description of the "AssociateInteraction" class.
Descriptor | Definition
--- | ---
Class Name | AssociateInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BasePromptInteraction
Characteristics | The set of characteristics are: shuffle maxAssociations minAssociations The set of inherited characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: simpleAssociableChoice The set of inherited children attributes are: prompt
Description | An Associate Interaction is a blockInteraction that presents candidates with a number of choices and allows them to create associations between them. The associateInteraction must be bound to a response variable with base-type pair and either single or multiple cardinality.

### 5.6.1 "shuffle" Characteristic Description

The description of the "shuffle" characteristic for the "AssociateInteraction" class is given in Table 5.6.1.

Table 5.6.1 Description of the "shuffle" characteristic for the "AssociateInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | shuffle
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If the shuffle characteristic is 'true' then the delivery engine must randomize the order in which the choices are initially presented, subject to the value of the fixed attribute of each choice.

### 5.6.2 "maxAssociations" Characteristic Description

The description of the "maxAssociations" characteristic for the "AssociateInteraction" class is given in Table 5.6.2.

Table 5.6.2 Description of the "maxAssociations" characteristic for the "AssociateInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxAssociations
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "1".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The maximum number of associations that the candidate is allowed to make. If maxAssociations is 0 then there is no restriction. If maxAssociations is greater than 1 (or 0) then the interaction must be bound to a response with multiple cardinality.

### 5.6.3 "minAssociations" Characteristic Description

The description of the "minAssociations" characteristic for the "AssociateInteraction" class is given in Table 5.6.3.

Table 5.6.3 Description of the "minAssociations" characteristic for the "AssociateInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | minAssociations
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of associations that the candidate is required to make to form a valid response. If minAssociations is 0 then the candidate is not required to make any associations. minAssociations must be less than or equal to the limit imposed by maxAssociations.

### 5.6.4 "simpleAssociableChoice" Attribute Description

The description of the "simpleAssociableChoice" attribute for the "AssociateInteraction" class is given in Table 5.6.4.

Table 5.6.4 Description of the "simpleAssociableChoice" attribute for the "AssociateInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | simpleAssociableChoice
Data Type | SimpleAssociableChoice
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | An ordered set of choices.

## 5.7 BDO Class Description

The data model for the "BDO" class is shown in Figure 5.7 and the accompanying definition in Table 5.7.

Figure 5.7 - BDO class definitions.

Table 5.7 Description of the "BDO" class.
Descriptor | Definition
--- | ---
Class Name | BDO
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: FlowContentModel InlineContentModel
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of characteristics are: title The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: inlineContentModel
Description | This enables the HTML 'bdo' tag. The 'bdo' tag represents explicit text directionality formatting control for its children. It allows authors to override the Unicode bidirectional algorithm by explicitly specifying a direction override. Authors must specify the dir attribute on this tag, with the value ltr to specify a left-to-right override and with the value rtl to specify a right-to-left override. The auto value must not be specified.

### 5.7.1 "title" Characteristic Description

The description of the "title" characteristic for the "BDO" class is given in Table 5.7.1.

Table 5.7.1 Description of the "title" characteristic for the "BDO" class.
Descriptor | Definition
--- | ---
Characteristic Name | title
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The title for the content. This is used to provide advisory information for the tag.

### 5.7.2 "inlineContentModel" Attribute Description

The description of the "inlineContentModel" attribute for the "BDO" class is given in Table 5.7.2.

Table 5.7.2 Description of the "inlineContentModel" attribute for the "BDO" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineContentModel
Data Type | InlineContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is the abstract attribute that enables the insertion of the inline content (as defined in HTML).

## 5.8 BR Class Description

The data model for the "BR" class is shown in Figure 5.8 and the accompanying definition in Table 5.8.

Figure 5.8 - BR class definitions.

Table 5.8 Description of the "BR" class.
Descriptor | Definition
--- | ---
Class Name | BR
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: FlowContentModel InlineContentModel
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBaseEmpty
Characteristics | The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | This provides the functionality of the HTML 'br' tag. The 'br' tag represents a line break.This tag has no children.

## 5.9 BasePromptInteraction Class Description

The data model for the "BasePromptInteraction" class is shown in Figure 5.9 and the accompanying definition in Table 5.9.

Figure 5.9 - BasePromptInteraction class definitions.

Table 5.9 Description of the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Class Name | BasePromptInteraction
Class Type | Container [ Sequence ]
Parents | There are no parent classes.
Derived Classes | The set of derived classes are: AssociateInteraction ChoiceInteraction DrawingInteraction ExtendedTextInteraction GapMatchInteraction GraphicAssociateInteraction HotTextInteraction HotspotInteraction MatchInteraction MediaInteraction OrderInteraction SelectPointInteraction SliderInteraction UploadInteraction
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: prompt
Description | The BasePromptInteraction is the base class for the QTI interactions that support a Prompt. This also consists of a set of children characteristics.

### 5.9.1 "id" Characteristic Description

The description of the "id" characteristic for the "BasePromptInteraction" class is given in Table 5.9.1.

Table 5.9.1 Description of the "id" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | id
Data Type | UniqueIdentifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The unique identifier assigned to the HTML tag. This must be unique otherwise features such as the APIP accessibilty text cannot be supplied as an alternative.

### 5.9.2 "class" Characteristic Description

The description of the "class" characteristic for the "BasePromptInteraction" class is given in Table 5.9.2.

Table 5.9.2 Description of the "class" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | class
Data Type | StringList
Value Space | The list consist of values of data-type(s): String (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | Every HTML tag may have a class characteristic specified. If specified, it must have a value that is a set of space-separated tokens representing the various classes to which the element belongs.

### 5.9.3 "language" Characteristic Description

The description of the "language" characteristic for the "BasePromptInteraction" class is given in Table 5.9.3.

Table 5.9.3 Description of the "language" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | language
Data Type | Language (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This characteristic specifies the primary language for the element's contents and for any of the element's characteristics that contain text. Its value must be a valid [RFC 3066] language tag, or the empty string. Setting the characteristic to the empty string indicates that the primary language is unknown.

### 5.9.4 "label" Characteristic Description

The description of the "label" characteristic for the "BasePromptInteraction" class is given in Table 5.9.4.

Table 5.9.4 Description of the "label" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The label characteristic provides authoring systems with a mechanism for labelling elements of the content model with application specific data. If an item uses labels then values for the associated toolName and toolVersion characteristics must also be provided.

### 5.9.5 "base" Characteristic Description

The description of the "base" characteristic for the "BasePromptInteraction" class is given in Table 5.9.5.

Table 5.9.5 Description of the "base" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | base
Data Type | Base (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | An optional URI used to change the base for resolving relative URI for the scope of this object. Particular care needs to be taken when resolving relative URI included as part of an Item Fragment. See Item and Test Fragments for more information.

### 5.9.6 "responseIdentifier" Characteristic Description

The description of the "responseIdentifier" characteristic for the "BasePromptInteraction" class is given in Table 5.9.6.

Table 5.9.6 Description of the "responseIdentifier" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | responseIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The response variable associated with the interaction.

### 5.9.7 "dir" Characteristic Description

The description of the "dir" characteristic for the "BasePromptInteraction" class is given in Table 5.9.7.

Table 5.9.7 Description of the "dir" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | dir
Data Type | DIR
Value Space | Enumerated value set of: { ltr | rtl | auto } Default = "auto".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Specifies the element's text directionality.

### 5.9.8 "role" Characteristic Description

The description of the "role" characteristic for the "BasePromptInteraction" class is given in Table 5.9.8.

Table 5.9.8 Description of the "role" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | role
Data Type | ARIARoleValue
Value Space | Enumerated value set of: { article | columnheader | definition | directory | document | group | heading | img | list | listitem | math | note | presentation | region | row | rowgroup | rowheader | separator | toolbar | button | checkbox | gridcell | link | log | option | radio | slider | spinbutton | status | tab | tabpanel | textbox | timer | listbox | radiogroup | tablist | complementary | contentinfo }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the ARIA role. Roles are defined and described by their characteristics. Characteristics define the structural function of a role, such as what a role is, concepts behind it, and what instances the role can or must contain.

### 5.9.9 "aria-controls" Characteristic Description

The description of the "aria-controls" characteristic for the "BasePromptInteraction" class is given in Table 5.9.9.

Table 5.9.9 Description of the "aria-controls" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-controls
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. This identifies the element (or elements) whose contents or presence are controlled by the current element.

### 5.9.10 "aria-describedby" Characteristic Description

The description of the "aria-describedby" characteristic for the "BasePromptInteraction" class is given in Table 5.9.10.

Table 5.9.10 Description of the "aria-describedby" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-describedby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the element (or elements) that describes the object.

### 5.9.11 "aria-flowsto" Characteristic Description

The description of the "aria-flowsto" characteristic for the "BasePromptInteraction" class is given in Table 5.9.11.

Table 5.9.11 Description of the "aria-flowsto" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-flowsto
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.

### 5.9.12 "aria-label" Characteristic Description

The description of the "aria-label" characteristic for the "BasePromptInteraction" class is given in Table 5.9.12.

Table 5.9.12 Description of the "aria-label" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines a string value that labels the current element. See related aria-labelledby. The purpose of aria-label is the same as that of aria-labelledby. It provides the user with a recognizable name of the object.

### 5.9.13 "aria-labelledby" Characteristic Description

The description of the "aria-labelledby" characteristic for the "BasePromptInteraction" class is given in Table 5.9.13.

Table 5.9.13 Description of the "aria-labelledby" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-labelledby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the tag (or tags) that labels the current element. See related aria-label and aria-describedby. The purpose of aria-labelledby is the same as that of aria-label. It provides the user with a recognizable name of the object. The most common accessibility API mapping for a label is the accessible name property. If the label text is visible on screen, authors SHOULD use aria-labelledby and SHOULD NOT use aria-label. Use aria-label only if the interface is such that it is not possible to have a visible label on the screen. As required by the text alternative computation, user agents give precedence to aria-labelledby over aria-label when computing the accessible name property. The aria-labelledby attribute is similar to aria-describedby in that both reference other elements to calculate a text alternative, but a label should be concise, where a description is intended to provide more verbose information.

### 5.9.14 "aria-level" Characteristic Description

The description of the "aria-level" characteristic for the "BasePromptInteraction" class is given in Table 5.9.14.

Table 5.9.14 Description of the "aria-level" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-level
Data Type | ARIALevelInteger
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines the hierarchical level of an element within a structure. This can be applied inside trees to tree items, to headings inside a document, to nested grids, nested tablists and to other structural items that may appear inside a container or participate in an ownership hierarchy. The value for aria-level is an integer greater than or equal to 1.

### 5.9.15 "aria-live" Characteristic Description

The description of the "aria-live" characteristic for the "BasePromptInteraction" class is given in Table 5.9.15.

Table 5.9.15 Description of the "aria-live" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-live
Data Type | ARIALiveValue
Value Space | Enumerated value set of: { off | polite | assertive }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. The values of this attribute are expressed in degrees of importance. When regions are specified as polite, assistive technologies will notify users of updates but generally do not interrupt the current task, and updates take low priority. When regions are specified as assertive, assistive technologies will immediately notify the user, and could potentially clear the speech queue of previous updates.

### 5.9.16 "aria-orientation" Characteristic Description

The description of the "aria-orientation" characteristic for the "BasePromptInteraction" class is given in Table 5.9.16.

Table 5.9.16 Description of the "aria-orientation" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-orientation
Data Type | ARIAOrientationValue
Value Space | Enumerated value set of: { vertical | horizontal } Default = "horizontal".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates whether the element and orientation is horizontal or vertical.

### 5.9.17 "aria-owns" Characteristic Description

The description of the "aria-owns" characteristic for the "BasePromptInteraction" class is given in Table 5.9.17.

Table 5.9.17 Description of the "aria-owns" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-owns
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. See related aria-controls. The value of the aria-owns attribute is a space-separated list of IDREFS that reference one or more elements in the document by ID.

### 5.9.18 "dataExtension" Characteristic Description

The description of the "dataExtension" characteristic for the "BasePromptInteraction" class is given in Table 5.9.18.

Table 5.9.18 Description of the "dataExtension" characteristic for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | dataExtension
Data Type | DataHTML5Extension
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is the HTML5 extension characteristic. A custom data characteristic is a characteristic in no namespace whose name starts with the string 'data-', has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters.

### 5.9.19 "prompt" Attribute Description

The description of the "prompt" attribute for the "BasePromptInteraction" class is given in Table 5.9.19.

Table 5.9.19 Description of the "prompt" attribute for the "BasePromptInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | prompt
Data Type | Prompt
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is an optional prompt that can be used to guide the learner. A prompt must not contain any nested interactions. A prompt is NOT the same as the actual question construct.

## 5.10 BaseSequence Class Description

The data model for the "BaseSequence" class is shown in Figure 5.10 and the accompanying definition in Table 5.10.

Figure 5.10 - BaseSequence class definitions.

Table 5.10 Description of the "BaseSequence" class.
Descriptor | Definition
--- | ---
Class Name | BaseSequence
Class Type | Container [ Sequence ]
Parents | There are no parent classes.
Derived Classes | The set of derived classes are: BDO Caption ColGroup GapImg GapText InfoControl InlineChoice LI Prompt SimpleAssociableChoice SimpleChoice StimulusBody TDH TR TablePart
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | The BaseSequence class provides the base characteristics for some of the HTML tag and QTI interactions.

### 5.10.1 "id" Characteristic Description

The description of the "id" characteristic for the "BaseSequence" class is given in Table 5.10.1.

Table 5.10.1 Description of the "id" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | id
Data Type | UniqueIdentifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The unique identifier assigned to the HTML tag. This must be unique otherwise features such as the APIP accessibilty text cannot be supplied as an alternative.

### 5.10.2 "class" Characteristic Description

The description of the "class" characteristic for the "BaseSequence" class is given in Table 5.10.2.

Table 5.10.2 Description of the "class" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | class
Data Type | StringList
Value Space | The list consist of values of data-type(s): String (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | Every HTML tag may have a class characteristic specified. If specified, it must have a value that is a set of space-separated tokens representing the various classes to which the element belongs.

### 5.10.3 "language" Characteristic Description

The description of the "language" characteristic for the "BaseSequence" class is given in Table 5.10.3.

Table 5.10.3 Description of the "language" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | language
Data Type | Language (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This characteristic specifies the primary language for the element's contents and for any of the element's characteristics that contain text. Its value must be a valid [RFC 3066] language tag, or the empty string. Setting the characteristic to the empty string indicates that the primary language is unknown.

### 5.10.4 "label" Characteristic Description

The description of the "label" characteristic for the "BaseSequence" class is given in Table 5.10.4.

Table 5.10.4 Description of the "label" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The label characteristic provides authoring systems with a mechanism for labelling elements of the content model with application specific data. If an item uses labels then values for the associated toolName and toolVersion characteristics must also be provided.

### 5.10.5 "dir" Characteristic Description

The description of the "dir" characteristic for the "BaseSequence" class is given in Table 5.10.5.

Table 5.10.5 Description of the "dir" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | dir
Data Type | DIR
Value Space | Enumerated value set of: { ltr | rtl | auto } Default = "auto".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Specifies the element's text directionality.

### 5.10.6 "role" Characteristic Description

The description of the "role" characteristic for the "BaseSequence" class is given in Table 5.10.6.

Table 5.10.6 Description of the "role" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | role
Data Type | ARIARoleValue
Value Space | Enumerated value set of: { article | columnheader | definition | directory | document | group | heading | img | list | listitem | math | note | presentation | region | row | rowgroup | rowheader | separator | toolbar | button | checkbox | gridcell | link | log | option | radio | slider | spinbutton | status | tab | tabpanel | textbox | timer | listbox | radiogroup | tablist | complementary | contentinfo }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the ARIA role. Roles are defined and described by their characteristics. Characteristics define the structural function of a role, such as what a role is, concepts behind it, and what instances the role can or must contain.

### 5.10.7 "aria-controls" Characteristic Description

The description of the "aria-controls" characteristic for the "BaseSequence" class is given in Table 5.10.7.

Table 5.10.7 Description of the "aria-controls" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-controls
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. This identifies the element (or elements) whose contents or presence are controlled by the current element.

### 5.10.8 "aria-describedby" Characteristic Description

The description of the "aria-describedby" characteristic for the "BaseSequence" class is given in Table 5.10.8.

Table 5.10.8 Description of the "aria-describedby" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-describedby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the element (or elements) that describes the object.

### 5.10.9 "aria-flowto" Characteristic Description

The description of the "aria-flowto" characteristic for the "BaseSequence" class is given in Table 5.10.9.

Table 5.10.9 Description of the "aria-flowto" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-flowto
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.

### 5.10.10 "aria-label" Characteristic Description

The description of the "aria-label" characteristic for the "BaseSequence" class is given in Table 5.10.10.

Table 5.10.10 Description of the "aria-label" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines a string value that labels the current element. See related aria-labelledby. The purpose of aria-label is the same as that of aria-labelledby. It provides the user with a recognizable name of the object.

### 5.10.11 "aria-labelledby" Characteristic Description

The description of the "aria-labelledby" characteristic for the "BaseSequence" class is given in Table 5.10.11.

Table 5.10.11 Description of the "aria-labelledby" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-labelledby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the tag (or tags) that labels the current element. See related aria-label and aria-describedby. The purpose of aria-labelledby is the same as that of aria-label. It provides the user with a recognizable name of the object. The most common accessibility API mapping for a label is the accessible name property. If the label text is visible on screen, authors SHOULD use aria-labelledby and SHOULD NOT use aria-label. Use aria-label only if the interface is such that it is not possible to have a visible label on the screen. As required by the text alternative computation, user agents give precedence to aria-labelledby over aria-label when computing the accessible name property. The aria-labelledby attribute is similar to aria-describedby in that both reference other elements to calculate a text alternative, but a label should be concise, where a description is intended to provide more verbose information.

### 5.10.12 "aria-level" Characteristic Description

The description of the "aria-level" characteristic for the "BaseSequence" class is given in Table 5.10.12.

Table 5.10.12 Description of the "aria-level" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-level
Data Type | ARIALevelInteger
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines the hierarchical level of an element within a structure. This can be applied inside trees to tree items, to headings inside a document, to nested grids, nested tablists and to other structural items that may appear inside a container or participate in an ownership hierarchy. The value for aria-level is an integer greater than or equal to 1.

### 5.10.13 "aria-live" Characteristic Description

The description of the "aria-live" characteristic for the "BaseSequence" class is given in Table 5.10.13.

Table 5.10.13 Description of the "aria-live" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-live
Data Type | ARIALiveValue
Value Space | Enumerated value set of: { off | polite | assertive } Default = "off".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. The values of this attribute are expressed in degrees of importance. When regions are specified as polite, assistive technologies will notify users of updates but generally do not interrupt the current task, and updates take low priority. When regions are specified as assertive, assistive technologies will immediately notify the user, and could potentially clear the speech queue of previous updates.

### 5.10.14 "aria-orientation" Characteristic Description

The description of the "aria-orientation" characteristic for the "BaseSequence" class is given in Table 5.10.14.

Table 5.10.14 Description of the "aria-orientation" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-orientation
Data Type | ARIAOrientationValue
Value Space | Enumerated value set of: { vertical | horizontal } Default = "horizontal".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates whether the element and orientation is horizontal or vertical.

### 5.10.15 "aria-owns" Characteristic Description

The description of the "aria-owns" characteristic for the "BaseSequence" class is given in Table 5.10.15.

Table 5.10.15 Description of the "aria-owns" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-owns
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. See related aria-controls. The value of the aria-owns attribute is a space-separated list of IDREFS that reference one or more elements in the document by ID.

### 5.10.16 "dataExtension" Characteristic Description

The description of the "dataExtension" characteristic for the "BaseSequence" class is given in Table 5.10.16.

Table 5.10.16 Description of the "dataExtension" characteristic for the "BaseSequence" class.
Descriptor | Definition
--- | ---
Characteristic Name | dataExtension
Data Type | DataHTML5Extension
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is the HTML5 extension characteristic. A custom data characteristic is a characteristic in no namespace whose name starts with the string 'data-', has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters.

## 5.11 BaseSequenceFull Class Description

The data model for the "BaseSequenceFull" class is shown in Figure 5.11 and the accompanying definition in Table 5.11.

Figure 5.11 - BaseSequenceFull class definitions.

Table 5.11 Description of the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Class Name | BaseSequenceFull
Class Type | Container [ Sequence ]
Parents | There are no parent classes.
Derived Classes | The set of derived classes are: CustomInteraction GraphicGapMatchInteraction GraphicOrderInteraction InlineChoiceInteraction
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: id class language label responseIdentifier base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | The BaseSequenceFull class provides the base characteristics for some of the QTI interactions that support the full set of base characteristics.

### 5.11.1 "id" Characteristic Description

The description of the "id" characteristic for the "BaseSequenceFull" class is given in Table 5.11.1.

Table 5.11.1 Description of the "id" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | id
Data Type | UniqueIdentifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The unique identifier assigned to the HTML tag. This must be unique otherwise features such as the APIP accessibilty text cannot be supplied as an alternative.

### 5.11.2 "class" Characteristic Description

The description of the "class" characteristic for the "BaseSequenceFull" class is given in Table 5.11.2.

Table 5.11.2 Description of the "class" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | class
Data Type | StringList
Value Space | The list consist of values of data-type(s): String (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | Every HTML tag may have a class characteristic specified. If specified, it must have a value that is a set of space-separated tokens representing the various classes to which the element belongs.

### 5.11.3 "language" Characteristic Description

The description of the "language" characteristic for the "BaseSequenceFull" class is given in Table 5.11.3.

Table 5.11.3 Description of the "language" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | language
Data Type | Language (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This characteristic specifies the primary language for the element's contents and for any of the element's characteristics that contain text. Its value must be a valid [RFC 3066] language tag, or the empty string. Setting the characteristic to the empty string indicates that the primary language is unknown.

### 5.11.4 "label" Characteristic Description

The description of the "label" characteristic for the "BaseSequenceFull" class is given in Table 5.11.4.

Table 5.11.4 Description of the "label" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The label characteristic provides authoring systems with a mechanism for labelling elements of the content model with application specific data. If an item uses labels then values for the associated toolName and toolVersion characteristics must also be provided.

### 5.11.5 "responseIdentifier" Characteristic Description

The description of the "responseIdentifier" characteristic for the "BaseSequenceFull" class is given in Table 5.11.5.

Table 5.11.5 Description of the "responseIdentifier" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | responseIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The response variable associated with the interaction.

### 5.11.6 "base" Characteristic Description

The description of the "base" characteristic for the "BaseSequenceFull" class is given in Table 5.11.6.

Table 5.11.6 Description of the "base" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | base
Data Type | Base (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | An optional URI used to change the base for resolving relative URI for the scope of this object. Particular care needs to be taken when resolving relative URI included as part of an Item Fragment. See Item and Test Fragments (Section 2) for more information.

### 5.11.7 "dir" Characteristic Description

The description of the "dir" characteristic for the "BaseSequenceFull" class is given in Table 5.11.7.

Table 5.11.7 Description of the "dir" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | dir
Data Type | DIR
Value Space | Enumerated value set of: { ltr | rtl | auto } Default = "auto".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Specifies the element's text directionality.

### 5.11.8 "role" Characteristic Description

The description of the "role" characteristic for the "BaseSequenceFull" class is given in Table 5.11.8.

Table 5.11.8 Description of the "role" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | role
Data Type | ARIARoleValue
Value Space | Enumerated value set of: { article | columnheader | definition | directory | document | group | heading | img | list | listitem | math | note | presentation | region | row | rowgroup | rowheader | separator | toolbar | button | checkbox | gridcell | link | log | option | radio | slider | spinbutton | status | tab | tabpanel | textbox | timer | listbox | radiogroup | tablist | complementary | contentinfo }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the ARIA role. Roles are defined and described by their characteristics. Characteristics define the structural function of a role, such as what a role is, concepts behind it, and what instances the role can or must contain.

### 5.11.9 "aria-controls" Characteristic Description

The description of the "aria-controls" characteristic for the "BaseSequenceFull" class is given in Table 5.11.9.

Table 5.11.9 Description of the "aria-controls" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-controls
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. This identifies the element (or elements) whose contents or presence are controlled by the current element.

### 5.11.10 "aria-describedby" Characteristic Description

The description of the "aria-describedby" characteristic for the "BaseSequenceFull" class is given in Table 5.11.10.

Table 5.11.10 Description of the "aria-describedby" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-describedby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the element (or elements) that describes the object.

### 5.11.11 "aria-flowto" Characteristic Description

The description of the "aria-flowto" characteristic for the "BaseSequenceFull" class is given in Table 5.11.11.

Table 5.11.11 Description of the "aria-flowto" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-flowto
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.

### 5.11.12 "aria-label" Characteristic Description

The description of the "aria-label" characteristic for the "BaseSequenceFull" class is given in Table 5.11.12.

Table 5.11.12 Description of the "aria-label" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines a string value that labels the current element. See related aria-labelledby. The purpose of aria-label is the same as that of aria-labelledby. It provides the user with a recognizable name of the object.

### 5.11.13 "aria-labelledby" Characteristic Description

The description of the "aria-labelledby" characteristic for the "BaseSequenceFull" class is given in Table 5.11.13.

Table 5.11.13 Description of the "aria-labelledby" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-labelledby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the tag (or tags) that labels the current element. See related aria-label and aria-describedby. The purpose of aria-labelledby is the same as that of aria-label. It provides the user with a recognizable name of the object. The most common accessibility API mapping for a label is the accessible name property. If the label text is visible on screen, authors SHOULD use aria-labelledby and SHOULD NOT use aria-label. Use aria-label only if the interface is such that it is not possible to have a visible label on the screen. As required by the text alternative computation, user agents give precedence to aria-labelledby over aria-label when computing the accessible name property. The aria-labelledby attribute is similar to aria-describedby in that both reference other elements to calculate a text alternative, but a label should be concise, where a description is intended to provide more verbose information.

### 5.11.14 "aria-level" Characteristic Description

The description of the "aria-level" characteristic for the "BaseSequenceFull" class is given in Table 5.11.14.

Table 5.11.14 Description of the "aria-level" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-level
Data Type | ARIALevelInteger
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines the hierarchical level of an element within a structure. This can be applied inside trees to tree items, to headings inside a document, to nested grids, nested tablists and to other structural items that may appear inside a container or participate in an ownership hierarchy. The value for aria-level is an integer greater than or equal to 1.

### 5.11.15 "aria-live" Characteristic Description

The description of the "aria-live" characteristic for the "BaseSequenceFull" class is given in Table 5.11.15.

Table 5.11.15 Description of the "aria-live" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-live
Data Type | ARIALiveValue
Value Space | Enumerated value set of: { off | polite | assertive }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. The values of this attribute are expressed in degrees of importance. When regions are specified as polite, assistive technologies will notify users of updates but generally do not interrupt the current task, and updates take low priority. When regions are specified as assertive, assistive technologies will immediately notify the user, and could potentially clear the speech queue of previous updates.

### 5.11.16 "aria-orientation" Characteristic Description

The description of the "aria-orientation" characteristic for the "BaseSequenceFull" class is given in Table 5.11.16.

Table 5.11.16 Description of the "aria-orientation" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-orientation
Data Type | ARIAOrientationValue
Value Space | Enumerated value set of: { vertical | horizontal } Default = "horizontal".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates whether the element and orientation is horizontal or vertical.

### 5.11.17 "aria-owns" Characteristic Description

The description of the "aria-owns" characteristic for the "BaseSequenceFull" class is given in Table 5.11.17.

Table 5.11.17 Description of the "aria-owns" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-owns
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. See related aria-controls. The value of the aria-owns attribute is a space-separated list of IDREFS that reference one or more elements in the document by ID.

### 5.11.18 "dataExtension" Characteristic Description

The description of the "dataExtension" characteristic for the "BaseSequenceFull" class is given in Table 5.11.18.

Table 5.11.18 Description of the "dataExtension" characteristic for the "BaseSequenceFull" class.
Descriptor | Definition
--- | ---
Characteristic Name | dataExtension
Data Type | DataHTML5Extension
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is the HTML5 extension characteristic. A custom data characteristic is a characteristic in no namespace whose name starts with the string 'data-', has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters.

## 5.12 BaseSequenceRIdent Class Description

The data model for the "BaseSequenceRIdent" class is shown in Figure 5.12 and the accompanying definition in Table 5.12.

Figure 5.12 - BaseSequenceRIdent class definitions.

Table 5.12 Description of the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Class Name | BaseSequenceRIdent
Class Type | Container [ Sequence ]
Parents | There are no parent classes.
Derived Classes | The set of derived classes are: PositionObjectInteraction
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: id class language label responseIdentifier dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | The BaseSequenceRIdent class provides the base characteristics (as per the BaseSequence plus 'rident') for some of the QTI interactions.

### 5.12.1 "id" Characteristic Description

The description of the "id" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.1.

Table 5.12.1 Description of the "id" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | id
Data Type | UniqueIdentifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The unique identifier assigned to the HTML tag. This must be unique otherwise features such as the APIP accessibilty text cannot be supplied as an alternative.

### 5.12.2 "class" Characteristic Description

The description of the "class" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.2.

Table 5.12.2 Description of the "class" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | class
Data Type | StringList
Value Space | The list consist of values of data-type(s): String (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | Every HTML tag may have a class characteristic specified. If specified, it must have a value that is a set of space-separated tokens representing the various classes to which the element belongs.

### 5.12.3 "language" Characteristic Description

The description of the "language" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.3.

Table 5.12.3 Description of the "language" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | language
Data Type | Language (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This characteristic specifies the primary language for the element's contents and for any of the element's characteristics that contain text. Its value must be a valid [RFC 3066] language tag, or the empty string. Setting the characteristic to the empty string indicates that the primary language is unknown.

### 5.12.4 "label" Characteristic Description

The description of the "label" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.4.

Table 5.12.4 Description of the "label" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The label characteristic provides authoring systems with a mechanism for labelling elements of the content model with application specific data. If an item uses labels then values for the associated toolName and toolVersion characteristics must also be provided.

### 5.12.5 "responseIdentifier" Characteristic Description

The description of the "responseIdentifier" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.5.

Table 5.12.5 Description of the "responseIdentifier" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | responseIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The response variable associated with the interaction.

### 5.12.6 "dir" Characteristic Description

The description of the "dir" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.6.

Table 5.12.6 Description of the "dir" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | dir
Data Type | DIR
Value Space | Enumerated value set of: { ltr | rtl | auto } Default = "auto".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Specifies the element's text directionality.

### 5.12.7 "role" Characteristic Description

The description of the "role" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.7.

Table 5.12.7 Description of the "role" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | role
Data Type | ARIARoleValue
Value Space | Enumerated value set of: { article | columnheader | definition | directory | document | group | heading | img | list | listitem | math | note | presentation | region | row | rowgroup | rowheader | separator | toolbar | button | checkbox | gridcell | link | log | option | radio | slider | spinbutton | status | tab | tabpanel | textbox | timer | listbox | radiogroup | tablist | complementary | contentinfo }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the ARIA role. Roles are defined and described by their characteristics. Characteristics define the structural function of a role, such as what a role is, concepts behind it, and what instances the role can or must contain.

### 5.12.8 "aria-controls" Characteristic Description

The description of the "aria-controls" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.8.

Table 5.12.8 Description of the "aria-controls" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-controls
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. This identifies the element (or elements) whose contents or presence are controlled by the current element.

### 5.12.9 "aria-describedby" Characteristic Description

The description of the "aria-describedby" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.9.

Table 5.12.9 Description of the "aria-describedby" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-describedby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the element (or elements) that describes the object.

### 5.12.10 "aria-flowto" Characteristic Description

The description of the "aria-flowto" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.10.

Table 5.12.10 Description of the "aria-flowto" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-flowto
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.

### 5.12.11 "aria-label" Characteristic Description

The description of the "aria-label" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.11.

Table 5.12.11 Description of the "aria-label" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines a string value that labels the current element. See related aria-labelledby. The purpose of aria-label is the same as that of aria-labelledby. It provides the user with a recognizable name of the object.

### 5.12.12 "aria-labelledby" Characteristic Description

The description of the "aria-labelledby" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.12.

Table 5.12.12 Description of the "aria-labelledby" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-labelledby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the tag (or tags) that labels the current element. See related aria-label and aria-describedby. The purpose of aria-labelledby is the same as that of aria-label. It provides the user with a recognizable name of the object. The most common accessibility API mapping for a label is the accessible name property. If the label text is visible on screen, authors SHOULD use aria-labelledby and SHOULD NOT use aria-label. Use aria-label only if the interface is such that it is not possible to have a visible label on the screen. As required by the text alternative computation, user agents give precedence to aria-labelledby over aria-label when computing the accessible name property. The aria-labelledby attribute is similar to aria-describedby in that both reference other elements to calculate a text alternative, but a label should be concise, where a description is intended to provide more verbose information.

### 5.12.13 "aria-level" Characteristic Description

The description of the "aria-level" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.13.

Table 5.12.13 Description of the "aria-level" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-level
Data Type | ARIALevelInteger
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines the hierarchical level of an element within a structure. This can be applied inside trees to tree items, to headings inside a document, to nested grids, nested tablists and to other structural items that may appear inside a container or participate in an ownership hierarchy. The value for aria-level is an integer greater than or equal to 1.

### 5.12.14 "aria-live" Characteristic Description

The description of the "aria-live" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.14.

Table 5.12.14 Description of the "aria-live" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-live
Data Type | ARIALiveValue
Value Space | Enumerated value set of: { off | polite | assertive }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. The values of this attribute are expressed in degrees of importance. When regions are specified as polite, assistive technologies will notify users of updates but generally do not interrupt the current task, and updates take low priority. When regions are specified as assertive, assistive technologies will immediately notify the user, and could potentially clear the speech queue of previous updates.

### 5.12.15 "aria-orientation" Characteristic Description

The description of the "aria-orientation" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.15.

Table 5.12.15 Description of the "aria-orientation" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-orientation
Data Type | ARIAOrientationValue
Value Space | Enumerated value set of: { vertical | horizontal } Default = "horizontal".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates whether the element and orientation is horizontal or vertical.

### 5.12.16 "aria-owns" Characteristic Description

The description of the "aria-owns" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.16.

Table 5.12.16 Description of the "aria-owns" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-owns
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. See related aria-controls. The value of the aria-owns attribute is a space-separated list of IDREFS that reference one or more elements in the document by ID.

### 5.12.17 "dataExtension" Characteristic Description

The description of the "dataExtension" characteristic for the "BaseSequenceRIdent" class is given in Table 5.12.17.

Table 5.12.17 Description of the "dataExtension" characteristic for the "BaseSequenceRIdent" class.
Descriptor | Definition
--- | ---
Characteristic Name | dataExtension
Data Type | DataHTML5Extension
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is the HTML5 extension characteristic. A custom data characteristic is a characteristic in no namespace whose name starts with the string 'data-', has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters.

## 5.13 BaseSequenceXBase Class Description

The data model for the "BaseSequenceXBase" class is shown in Figure 5.13 and the accompanying definition in Table 5.13.

Figure 5.13 - BaseSequenceXBase class definitions.

Table 5.13 Description of the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Class Name | BaseSequenceXBase
Class Type | Container [ Sequence ]
Parents | There are no parent classes.
Derived Classes | The set of derived classes are: A BlockQuote DD DL DT Div FeedbackBlock FeedbackInline HTMLText HotText Label OUL Object Q RubricBlock RubricBlockTemplateBlock RubricBlockTemplateInline Table TemplateBlock TemplateBlockFeedbackBlock TemplateInline
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | The BaseSequenceXBase class provides the base characteristics (as per the BaseSequence plus 'base') for some of the HTML tags and QTI interactions.

### 5.13.1 "id" Characteristic Description

The description of the "id" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.1.

Table 5.13.1 Description of the "id" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | id
Data Type | UniqueIdentifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The unique identifier assigned to the HTML tag. This must be unique otherwise features such as the APIP accessibilty text cannot be supplied as an alternative.

### 5.13.2 "class" Characteristic Description

The description of the "class" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.2.

Table 5.13.2 Description of the "class" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | class
Data Type | StringList
Value Space | The list consist of values of data-type(s): String (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | Every HTML tag may have a class characteristic specified. If specified, it must have a value that is a set of space-separated tokens representing the various classes to which the element belongs.

### 5.13.3 "language" Characteristic Description

The description of the "language" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.3.

Table 5.13.3 Description of the "language" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | language
Data Type | Language (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This characteristic specifies the primary language for the element's contents and for any of the element's characteristics that contain text. Its value must be a valid [RFC 3066] language tag, or the empty string. Setting the characteristic to the empty string indicates that the primary language is unknown.

### 5.13.4 "label" Characteristic Description

The description of the "label" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.4.

Table 5.13.4 Description of the "label" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The label characteristic provides authoring systems with a mechanism for labelling elements of the content model with application specific data. If an item uses labels then values for the associated toolName and toolVersion characteristics must also be provided.

### 5.13.5 "base" Characteristic Description

The description of the "base" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.5.

Table 5.13.5 Description of the "base" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | base
Data Type | Base (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | An optional URI used to change the base for resolving relative URI for the scope of this object. Particular care needs to be taken when resolving relative URI included as part of an Item Fragment. See Item and Test Fragments (Section 2) for more information.

### 5.13.6 "dir" Characteristic Description

The description of the "dir" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.6.

Table 5.13.6 Description of the "dir" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | dir
Data Type | DIR
Value Space | Enumerated value set of: { ltr | rtl | auto } Default = "auto".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Specifies the element's text directionality.

### 5.13.7 "role" Characteristic Description

The description of the "role" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.7.

Table 5.13.7 Description of the "role" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | role
Data Type | ARIARoleValue
Value Space | Enumerated value set of: { article | columnheader | definition | directory | document | group | heading | img | list | listitem | math | note | presentation | region | row | rowgroup | rowheader | separator | toolbar | button | checkbox | gridcell | link | log | option | radio | slider | spinbutton | status | tab | tabpanel | textbox | timer | listbox | radiogroup | tablist | complementary | contentinfo }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the ARIA role. Roles are defined and described by their characteristics. Characteristics define the structural function of a role, such as what a role is, concepts behind it, and what instances the role can or must contain.

### 5.13.8 "aria-controls" Characteristic Description

The description of the "aria-controls" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.8.

Table 5.13.8 Description of the "aria-controls" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-controls
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. This identifies the element (or elements) whose contents or presence are controlled by the current element.

### 5.13.9 "aria-describedby" Characteristic Description

The description of the "aria-describedby" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.9.

Table 5.13.9 Description of the "aria-describedby" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-describedby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the element (or elements) that describes the object.

### 5.13.10 "aria-flowto" Characteristic Description

The description of the "aria-flowto" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.10.

Table 5.13.10 Description of the "aria-flowto" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-flowto
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.

### 5.13.11 "aria-label" Characteristic Description

The description of the "aria-label" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.11.

Table 5.13.11 Description of the "aria-label" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines a string value that labels the current element. See related aria-labelledby. The purpose of aria-label is the same as that of aria-labelledby. It provides the user with a recognizable name of the object.

### 5.13.12 "aria-labelledby" Characteristic Description

The description of the "aria-labelledby" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.12.

Table 5.13.12 Description of the "aria-labelledby" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-labelledby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the tag (or tags) that labels the current element. See related aria-label and aria-describedby. The purpose of aria-labelledby is the same as that of aria-label. It provides the user with a recognizable name of the object. The most common accessibility API mapping for a label is the accessible name property. If the label text is visible on screen, authors SHOULD use aria-labelledby and SHOULD NOT use aria-label. Use aria-label only if the interface is such that it is not possible to have a visible label on the screen. As required by the text alternative computation, user agents give precedence to aria-labelledby over aria-label when computing the accessible name property. The aria-labelledby attribute is similar to aria-describedby in that both reference other elements to calculate a text alternative, but a label should be concise, where a description is intended to provide more verbose information.

### 5.13.13 "aria-level" Characteristic Description

The description of the "aria-level" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.13.

Table 5.13.13 Description of the "aria-level" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-level
Data Type | ARIALevelInteger
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines the hierarchical level of an element within a structure. This can be applied inside trees to tree items, to headings inside a document, to nested grids, nested tablists and to other structural items that may appear inside a container or participate in an ownership hierarchy. The value for aria-level is an integer greater than or equal to 1.

### 5.13.14 "aria-live" Characteristic Description

The description of the "aria-live" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.14.

Table 5.13.14 Description of the "aria-live" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-live
Data Type | ARIALiveValue
Value Space | Enumerated value set of: { off | polite | assertive }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. The values of this attribute are expressed in degrees of importance. When regions are specified as polite, assistive technologies will notify users of updates but generally do not interrupt the current task, and updates take low priority. When regions are specified as assertive, assistive technologies will immediately notify the user, and could potentially clear the speech queue of previous updates.

### 5.13.15 "aria-orientation" Characteristic Description

The description of the "aria-orientation" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.15.

Table 5.13.15 Description of the "aria-orientation" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-orientation
Data Type | ARIAOrientationValue
Value Space | Enumerated value set of: { vertical | horizontal } Default = "horizontal".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates whether the element and orientation is horizontal or vertical.

### 5.13.16 "aria-owns" Characteristic Description

The description of the "aria-owns" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.16.

Table 5.13.16 Description of the "aria-owns" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-owns
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. See related aria-controls. The value of the aria-owns attribute is a space-separated list of IDREFS that reference one or more elements in the document by ID.

### 5.13.17 "dataExtension" Characteristic Description

The description of the "dataExtension" characteristic for the "BaseSequenceXBase" class is given in Table 5.13.17.

Table 5.13.17 Description of the "dataExtension" characteristic for the "BaseSequenceXBase" class.
Descriptor | Definition
--- | ---
Characteristic Name | dataExtension
Data Type | DataHTML5Extension
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is the HTML5 extension characteristic. A custom data characteristic is a characteristic in no namespace whose name starts with the string 'data-', has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters.

## 5.14 BlockQuote Class Description

The data model for the "BlockQuote" class is shown in Figure 5.14 and the accompanying definition in Table 5.14.

Figure 5.14 - BlockQuote class definitions.

Table 5.14 Description of the "BlockQuote" class.
Descriptor | Definition
--- | ---
Class Name | BlockQuote
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockContentModel FlowContentModel
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of characteristics are: cite The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: blockGroup
Description | This defines the content of the 'blockquote' HTML tag. The 'blockquote' tag represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations. Content inside a blockquote other than citations and in-line changes must be quoted from another source, whose address, if it has one, may be cited in the cite attribute. The content of a blockquote may be abbreviated, may have context added or may have annotations. Any such additions or changes to quoted text must be indicated in the text (at the text level). This may mean the use of notational conventions or explicit remarks, such as "emphasis mine".

### 5.14.1 "cite" Characteristic Description

The description of the "cite" characteristic for the "BlockQuote" class is given in Table 5.14.1.

Table 5.14.1 Description of the "cite" characteristic for the "BlockQuote" class.
Descriptor | Definition
--- | ---
Characteristic Name | cite
Data Type | AnyURI (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | If the 'cite' characteristic is present, it must be a valid URL potentially surrounded by spaces. To obtain the corresponding citation link, the value of the attribute must be resolved relative to the element. User agents may allow users to follow such citation links, but they are primarily intended for private use (e.g. by server-side scripts collecting statistics about a site's use of quotations), not for readers.

### 5.14.2 "blockGroup" Attribute Description

The description of the "blockGroup" attribute for the "BlockQuote" class is given in Table 5.14.2.

Table 5.14.2 Description of the "blockGroup" attribute for the "BlockQuote" class.
Descriptor | Definition
--- | ---
Attribute Name | blockGroup
Data Type | BlockGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the insertion of HTML block content.

## 5.15 BranchRule Class Description

The data model for the "BranchRule" class is shown in Figure 5.15 and the accompanying definition in Table 5.15.

Figure 5.15 - BranchRule class definitions.

Table 5.15 Description of the "BranchRule" class.
Descriptor | Definition
--- | ---
Class Name | BranchRule
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: AssessmentItemRef AssessmentSection TestPart
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: target
Children | The set of children attributes are: logic
Description | A branch-rule is a simple expression attached to an assessmentItemRef, assessmentSection or testPart that is evaluated after the item, section or part has been presented to the candidate. If the expression evaluates to 'true' the test jumps forward to the item, section or part referred to by the target identifier. In the case of an item or section, the target must refer to an item or section in the same testPart that has not yet been presented. For testParts, the target must refer to another testPart.

### 5.15.1 "target" Characteristic Description

The description of the "target" characteristic for the "BranchRule" class is given in Table 5.15.1.

Table 5.15.1 Description of the "target" characteristic for the "BranchRule" class.
Descriptor | Definition
--- | ---
Characteristic Name | target
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The following values are reserved and have special meaning when used as a target identifier: EXIT_SECTION jumps over all the remaining children of the current section to the item (or section) immediately following it; EXIT_TESTPART finishes the current testPart immediately and EXIT_TEST finishes the entire assessmentTest immediately.

### 5.15.2 "logic" Attribute Description

The description of the "logic" attribute for the "BranchRule" class is given in Table 5.15.2.

Table 5.15.2 Description of the "logic" attribute for the "BranchRule" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the insertion of a single QTI expression function.

## 5.16 Caption Class Description

The data model for the "Caption" class is shown in Figure 5.16 and the accompanying definition in Table 5.16.

Figure 5.16 - Caption class definitions.

Table 5.16 Description of the "Caption" class.
Descriptor | Definition
--- | ---
Class Name | Caption
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: Table
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: inlineGroup
Description | Provides the HTML 'caption' tag functionality. The 'caption' tag represents the title of the table that is its parent, if it has a parent and that is a 'table' tag. The caption tag takes part in the table model. When a table tag is the only content in a figure tag other than the figcaption, the caption tag should be omitted in favor of the figcaption. A caption can introduce context for a table, making it significantly easier to understand.

### 5.16.1 "inlineGroup" Attribute Description

The description of the "inlineGroup" attribute for the "Caption" class is given in Table 5.16.1.

Table 5.16.1 Description of the "inlineGroup" attribute for the "Caption" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineGroup
Data Type | InlineGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the inline content (as defined in HTML) to be included.

## 5.17 ChoiceInteraction Class Description

The data model for the "ChoiceInteraction" class is shown in Figure 5.17 and the accompanying definition in Table 5.17.

Figure 5.17 - ChoiceInteraction class definitions.

Table 5.17 Description of the "ChoiceInteraction" class.
Descriptor | Definition
--- | ---
Class Name | ChoiceInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BasePromptInteraction
Characteristics | The set of characteristics are: shuffle maxChoices minChoices orientation The set of inherited characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: simpleChoice The set of inherited children attributes are: prompt
Description | The choice interaction presents a set of choices to the candidate. The candidate's task is to select one or more of the choices, up to a maximum of maxChoices. The interaction is always initialized with no choices selected. The choiceInteraction must be bound to a response variable with a baseType of identifier and single or multiple cardinality.

### 5.17.1 "shuffle" Characteristic Description

The description of the "shuffle" characteristic for the "ChoiceInteraction" class is given in Table 5.17.1.

Table 5.17.1 Description of the "shuffle" characteristic for the "ChoiceInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | shuffle
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If the shuffle characteristic is 'true' then the delivery engine must randomize the order in which the choices are initially presented, subject to the value of the fixed attribute of each choice.

### 5.17.2 "maxChoices" Characteristic Description

The description of the "maxChoices" characteristic for the "ChoiceInteraction" class is given in Table 5.17.2.

Table 5.17.2 Description of the "maxChoices" characteristic for the "ChoiceInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxChoices
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "1".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The maximum number of choices that the candidate is allowed to select. If maxChoices is 0 then there is no restriction. If maxChoices is greater than 1 (or 0) then the interaction must be bound to a response with multiple cardinality.

### 5.17.3 "minChoices" Characteristic Description

The description of the "minChoices" characteristic for the "ChoiceInteraction" class is given in Table 5.17.3.

Table 5.17.3 Description of the "minChoices" characteristic for the "ChoiceInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | minChoices
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of choices that the candidate is required to select to form a valid response. If minChoices is 0 then the candidate is not required to select any choices. minChoices must be less than or equal to the limit imposed by maxChoices.

### 5.17.4 "orientation" Characteristic Description

The description of the "orientation" characteristic for the "ChoiceInteraction" class is given in Table 5.17.4.

Table 5.17.4 Description of the "orientation" characteristic for the "ChoiceInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | orientation
Data Type | Orientation
Value Space | Enumerated value set of: { horizontal | vertical } Default = "vertical".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The orientation characteristic provides a hint to rendering systems that the choices have an inherent vertical or horizontal interpretation.

### 5.17.5 "simpleChoice" Attribute Description

The description of the "simpleChoice" attribute for the "ChoiceInteraction" class is given in Table 5.17.5.

Table 5.17.5 Description of the "simpleChoice" attribute for the "ChoiceInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | simpleChoice
Data Type | SimpleChoice
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | This is an ordered list of the choices that are displayed to the user. The order is the order of the choices presented to the user unless shuffle is true.

## 5.18 Col Class Description

The data model for the "Col" class is shown in Figure 5.18 and the accompanying definition in Table 5.18.

Figure 5.18 - Col class definitions.

Table 5.18 Description of the "Col" class.
Descriptor | Definition
--- | ---
Class Name | Col
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ColGroup Table
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBaseEmpty
Characteristics | The set of characteristics are: span The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | Provides the functionality of the HTML 'col' tag. If a 'col' tag has a parent and that is a colgroup tag that itself has a parent that is a table tag, then the col tag represents one or more columns in the column group represented by that colgroup. The tag may have a span content attribute specified, whose value must be a valid non-negative integer greater than zero. The col tag and its span attribute take part in the table model.

### 5.18.1 "span" Characteristic Description

The description of the "span" characteristic for the "Col" class is given in Table 5.18.1.

Table 5.18.1 Description of the "span" characteristic for the "Col" class.
Descriptor | Definition
--- | ---
Characteristic Name | span
Data Type | Int (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | Defines the number of columns spanned by the 'col' tag.

## 5.19 ColGroup Class Description

The data model for the "ColGroup" class is shown in Figure 5.19 and the accompanying definition in Table 5.19.

Figure 5.19 - ColGroup class definitions.

Table 5.19 Description of the "ColGroup" class.
Descriptor | Definition
--- | ---
Class Name | ColGroup
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: Table
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of characteristics are: span The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: col
Description | Provides the functionality of the HTML 'colgroup' tag. The colgroup element represents a group of one or more columns in the table that is its parent, if it has a parent and that is a table element. If the colgroup element contains no col elements, then the element may have a span content attribute specified, whose value must be a valid non-negative integer greater than zero. The colgroup element and its span attribute take part in the table model.

### 5.19.1 "span" Characteristic Description

The description of the "span" characteristic for the "ColGroup" class is given in Table 5.19.1.

Table 5.19.1 Description of the "span" characteristic for the "ColGroup" class.
Descriptor | Definition
--- | ---
Characteristic Name | span
Data Type | Int (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | Defnes the number of columns spanned by the colgroup.

### 5.19.2 "col" Attribute Description

The description of the "col" attribute for the "ColGroup" class is given in Table 5.19.2.

Table 5.19.2 Description of the "col" attribute for the "ColGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | col
Data Type | Col
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This enables the set of 'col' tag children to be entered.

## 5.20 CorrectResponse Class Description

The data model for the "CorrectResponse" class is shown in Figure 5.20 and the accompanying definition in Table 5.20.

Figure 5.20 - CorrectResponse class definitions.

Table 5.20 Description of the "CorrectResponse" class.
Descriptor | Definition
--- | ---
Class Name | CorrectResponse
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ResponseDeclaration
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: interpretation
Children | The set of children attributes are: value
Description | This class is used to define, as part of the response declaration, the values(s) for the correct response.

### 5.20.1 "interpretation" Characteristic Description

The description of the "interpretation" characteristic for the "CorrectResponse" class is given in Table 5.20.1.

Table 5.20.1 Description of the "interpretation" characteristic for the "CorrectResponse" class.
Descriptor | Definition
--- | ---
Characteristic Name | interpretation
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | A human readable interpretation of the correct value.

### 5.20.2 "value" Attribute Description

The description of the "value" attribute for the "CorrectResponse" class is given in Table 5.20.2.

Table 5.20.2 Description of the "value" attribute for the "CorrectResponse" class.
Descriptor | Definition
--- | ---
Attribute Name | value
Data Type | Value
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | The order of the values is signficant only when the response is of ordered cardinality.

## 5.21 CustomInteraction Class Description

The data model for the "CustomInteraction" class is shown in Figure 5.21 and the accompanying definition in Table 5.21.

Figure 5.21 - CustomInteraction class definitions.

Table 5.21 Description of the "CustomInteraction" class.
Descriptor | Definition
--- | ---
Class Name | CustomInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup InlineGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceFull
Characteristics | The set of characteristics are: extension The set of inherited characteristics are: id class language label responseIdentifier base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: extension
Description | The custom interaction provides an opportunity for extensibility of this specification to include support for interactions not currently documented. The Portable Custom Interaction specification should be used in conjunction with this class [PCI, 14].

### 5.21.1 "extension" Characteristic Description

The description of the "extension" characteristic for the "CustomInteraction" class is given in Table 5.21.1.

Table 5.21.1 Description of the "extension" characteristic for the "CustomInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | extension
Data Type | NamespaceLax (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is an extension point to enable any set of characteristics to be entered to support the definition of the custom interaction(s).

### 5.21.2 "extension" Attribute Description

The description of the "extension" attribute for the "CustomInteraction" class is given in Table 5.21.2.

Table 5.21.2 Description of the "extension" attribute for the "CustomInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | extension
Data Type | AnyTypeLax (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is an extension point to enable any set of child tags to be entered. The child tags must be new tags and not the reuse of other tags available in QTI ASI. Note that this class is used to support the definition of all of the types of custom interactions used in the content.

## 5.22 CustomOperator Class Description

The data model for the "CustomOperator" class is shown in Figure 5.22 and the accompanying definition in Table 5.22.

Figure 5.22 - CustomOperator class definitions.

Table 5.22 Description of the "CustomOperator" class.
Descriptor | Definition
--- | ---
Class Name | CustomOperator
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: class definition extension
Children | The set of children attributes are: logic extension
Description | The custom operator provides an extension mechanism for defining operations not currently supported by this specification. It has been suggested that customOperator might be used to help link processing rules defined by this specification to instances of web-service based processing engines. For example, a web-service which offered automated marking of free text responses. Implementors experimenting with this approach are encouraged to share information about their solutions to help determine the best way to achieve this type of processing.

### 5.22.1 "class" Characteristic Description

The description of the "class" characteristic for the "CustomOperator" class is given in Table 5.22.1.

Table 5.22.1 Description of the "class" characteristic for the "CustomOperator" class.
Descriptor | Definition
--- | ---
Characteristic Name | class
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The class characteristic allows simple sub-classes to be named. The definition of a sub-class is tool specific and may be inferred from toolName and toolVersion.

### 5.22.2 "definition" Characteristic Description

The description of the "definition" characteristic for the "CustomOperator" class is given in Table 5.22.2.

Table 5.22.2 Description of the "definition" characteristic for the "CustomOperator" class.
Descriptor | Definition
--- | ---
Characteristic Name | definition
Data Type | AnyURI (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | A URI that identifies the definition of the custom operator in the global namespace.

### 5.22.3 "extension" Characteristic Description

The description of the "extension" characteristic for the "CustomOperator" class is given in Table 5.22.3.

Table 5.22.3 Description of the "extension" characteristic for the "CustomOperator" class.
Descriptor | Definition
--- | ---
Characteristic Name | extension
Data Type | NamespaceLax (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | In addition to the class and definition characteristic, sub-classes may add any number of characteristics of their own.

### 5.22.4 "logic" Attribute Description

The description of the "logic" attribute for the "CustomOperator" class is given in Table 5.22.4.

Table 5.22.4 Description of the "logic" attribute for the "CustomOperator" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract class that enables the entry of any number of QTI expressions to form the basis of the functional capability of the custom operator.

### 5.22.5 "extension" Attribute Description

The description of the "extension" attribute for the "CustomOperator" class is given in Table 5.22.5.

Table 5.22.5 Description of the "extension" attribute for the "CustomOperator" class.
Descriptor | Definition
--- | ---
Attribute Name | extension
Data Type | NamespaceLax (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is an extension point to enable any set of child tags to be entered. The child tags must be new tags and not reused tags available in QTI ASI. Note that this class is used to support the definition of all of the types of custom interactions used in the content.

## 5.23 DD Class Description

The data model for the "DD" class is shown in Figure 5.23 and the accompanying definition in Table 5.23.

Figure 5.23 - DD class definitions.

Table 5.23 Description of the "DD" class.
Descriptor | Definition
--- | ---
Class Name | DD
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: DLSelection
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowGroup
Description | The 'dd' tag is a part of the HTML content. The 'dd' tag represents the description, definition, or value, part of a term-description group in a description list ('dl' tag).

### 5.23.1 "flowGroup" Attribute Description

The description of the "flowGroup" attribute for the "DD" class is given in Table 5.23.1.

Table 5.23.1 Description of the "flowGroup" attribute for the "DD" class.
Descriptor | Definition
--- | ---
Attribute Name | flowGroup
Data Type | FlowGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the HTML-defined flow content to be added as children of the 'dd' tag.

## 5.24 DL Class Description

The data model for the "DL" class is shown in Figure 5.24 and the accompanying definition in Table 5.24.

Figure 5.24 - DL class definitions.

Table 5.24 Description of the "DL" class.
Descriptor | Definition
--- | ---
Class Name | DL
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockContentModel FlowContentModel
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: dlSelection
Description | Denotes the 'dl' HTML tag. The 'dl' tag represents an association list consisting of zero or more name-value groups (a description list). A name-value group consists of one or more names ('dt' tags) followed by one or more values ('dd' tags), ignoring any nodes other than 'dt' and 'dd' tags. Within a single 'dl' tag, there should not be more than one 'dt' tag for each name.

### 5.24.1 "dlSelection" Attribute Description

The description of the "dlSelection" attribute for the "DL" class is given in Table 5.24.1.

Table 5.24.1 Description of the "dlSelection" attribute for the "DL" class.
Descriptor | Definition
--- | ---
Attribute Name | dlSelection
Data Type | DLSelection
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the HTML-defined flow content and block content to be added as children of the 'dl' tag.

## 5.25 DT Class Description

The data model for the "DT" class is shown in Figure 5.25 and the accompanying definition in Table 5.25.

Figure 5.25 - DT class definitions.

Table 5.25 Description of the "DT" class.
Descriptor | Definition
--- | ---
Class Name | DT
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: DLSelection
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: inlineGroup
Description | The 'dt' tag is a part of the HTML content. The 'dt' tag represents the term, or name, part of a term-description group in a description list (dl element).

### 5.25.1 "inlineGroup" Attribute Description

The description of the "inlineGroup" attribute for the "DT" class is given in Table 5.25.1.

Table 5.25.1 Description of the "inlineGroup" attribute for the "DT" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineGroup
Data Type | InlineGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that is used to enable the insertion of any combination of the tags defined as HTML inline content.

## 5.26 DefaultValue Class Description

The data model for the "DefaultValue" class is shown in Figure 5.26 and the accompanying definition in Table 5.26.

Figure 5.26 - DefaultValue class definitions.

Table 5.26 Description of the "DefaultValue" class.
Descriptor | Definition
--- | ---
Class Name | DefaultValue
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: OutcomeDeclaration ResponseDeclaration TemplateDeclaration
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: interpretation
Children | The set of children attributes are: value
Description | Defines the default value of the associated response, outcome and template variable.

### 5.26.1 "interpretation" Characteristic Description

The description of the "interpretation" characteristic for the "DefaultValue" class is given in Table 5.26.1.

Table 5.26.1 Description of the "interpretation" characteristic for the "DefaultValue" class.
Descriptor | Definition
--- | ---
Characteristic Name | interpretation
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | A human readable interpretation of the default value.

### 5.26.2 "value" Attribute Description

The description of the "value" attribute for the "DefaultValue" class is given in Table 5.26.2.

Table 5.26.2 Description of the "value" attribute for the "DefaultValue" class.
Descriptor | Definition
--- | ---
Attribute Name | value
Data Type | Value
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | The default value(s). The order of the values is significant only if the variable being set has ordered cardinality.

## 5.27 Div Class Description

The data model for the "Div" class is shown in Figure 5.27 and the accompanying definition in Table 5.27.

Figure 5.27 - Div class definitions.

Table 5.27 Description of the "Div" class.
Descriptor | Definition
--- | ---
Class Name | Div
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: BlockContentModel FlowContentModel
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: divSelection
Description | This provides the functionality of the HTML 'div' tag. The div tag has no special meaning at all. It represents its children. It can be used with the class, lang, and title characteristics to mark up semantics common to a group of consecutive elements. Authors are strongly encouraged to view the div tag as an element of last resort, for when no other element is suitable. Use of more appropriate elements instead of the div element leads to better accessibility for readers and easier maintainability for authors.

### 5.27.1 "divSelection" Attribute Description

The description of the "divSelection" attribute for the "Div" class is given in Table 5.27.1.

Table 5.27.1 Description of the "divSelection" attribute for the "Div" class.
Descriptor | Definition
--- | ---
Attribute Name | divSelection
Data Type | DivSelection
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the selection of an arbitrary number and ordering of the permitted children for a 'div tag' (see the associated abstract data-type definition).

## 5.28 DrawingInteraction Class Description

The data model for the "DrawingInteraction" class is shown in Figure 5.28 and the accompanying definition in Table 5.28.

Figure 5.28 - DrawingInteraction class definitions.

Table 5.28 Description of the "DrawingInteraction" class.
Descriptor | Definition
--- | ---
Class Name | DrawingInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BasePromptInteraction
Characteristics | The set of inherited characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: object The set of inherited children attributes are: prompt
Description | The drawing interaction allows the candidate to use a common set of drawing tools to modify a given graphical image (the canvas). It must be bound to a response variable with base-type file and single cardinality. The result is a file in the same format as the original image.

### 5.28.1 "object" Attribute Description

The description of the "object" attribute for the "DrawingInteraction" class is given in Table 5.28.1.

Table 5.28.1 Description of the "object" attribute for the "DrawingInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | object
Data Type | Object
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The image that acts as the canvas on which the drawing takes place is given as an object which must be of an image type, as specified by the type attribute.

## 5.29 EndAttemptInteraction Class Description

The data model for the "EndAttemptInteraction" class is shown in Figure 5.29 and the accompanying definition in Table 5.29.

Figure 5.29 - EndAttemptInteraction class definitions.

Table 5.29 Description of the "EndAttemptInteraction" class.
Descriptor | Definition
--- | ---
Class Name | EndAttemptInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: FlowGroup InlineGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBaseEmpty
Characteristics | The set of characteristics are: responseIdentifier title countAttempt The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | The end attempt interaction is a special type of interaction which allows item authors to provide the candidate with control over the way in which the candidate terminates an attempt. The candidate can use the interaction to terminate the attempt (triggering response processing) immediately, typically to request a hint. It must be bound to a response variable with base-type boolean and single cardinality. If the candidate invokes response processing using an endAttemptInteraction then the associated response variable is set to 'true'. If response processing is invoked in any other way, either through a different endAttemptInteraction or through the default method for the delivery engine, then the associated response variable is set to 'false'. The default value of the response variable is always ignored.

### 5.29.1 "responseIdentifier" Characteristic Description

The description of the "responseIdentifier" characteristic for the "EndAttemptInteraction" class is given in Table 5.29.1.

Table 5.29.1 Description of the "responseIdentifier" characteristic for the "EndAttemptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | responseIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The response variable associated with the interaction.

### 5.29.2 "title" Characteristic Description

The description of the "title" characteristic for the "EndAttemptInteraction" class is given in Table 5.29.2.

Table 5.29.2 Description of the "title" characteristic for the "EndAttemptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | title
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The string that should be displayed to the candidate as a prompt for ending the attempt using this interaction. This should be short, preferably one word. A typical value would be "Hint". For example, in a graphical environment it would be presented as the label on a button that, when pressed, ends the attempt.

### 5.29.3 "countAttempt" Characteristic Description

The description of the "countAttempt" characteristic for the "EndAttemptInteraction" class is given in Table 5.29.3.

Table 5.29.3 Description of the "countAttempt" characteristic for the "EndAttemptInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | countAttempt
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | Defines the number of attempts that a user can make using the 'endAttemptInteraction' mechanism (this can be used to limit the number of hints, etc.).

## 5.30 Equal Class Description

The data model for the "Equal" class is shown in Figure 5.30 and the accompanying definition in Table 5.30.

Figure 5.30 - Equal class definitions.

Table 5.30 Description of the "Equal" class.
Descriptor | Definition
--- | ---
Class Name | Equal
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: toleranceMode tolerance includeLowerBound includeUpperBound
Children | The set of children attributes are: logic
Description | The equal operator takes two sub-expressions which must both have single cardinality and have a numerical base-type. The result is a single boolean with a value of 'true' if the two expressions are numerically equal and 'false' if they are not. If either sub-expression is NULL then the operator results in NULL.

### 5.30.1 "toleranceMode" Characteristic Description

The description of the "toleranceMode" characteristic for the "Equal" class is given in Table 5.30.1.

Table 5.30.1 Description of the "toleranceMode" characteristic for the "Equal" class.
Descriptor | Definition
--- | ---
Characteristic Name | toleranceMode
Data Type | ToleranceMode
Value Space | Enumerated value set of: { absolute | exact | relative } Default = "exact".
Scope | Global ("+")
Multiplicity | [0..1]
Description | When comparing two floating point numbers for equality it is often desirable to have a tolerance to ensure that spurious errors in scoring are not introduced by rounding errors. The tolerance mode determines whether the comparison is done exactly, using an absolute range or a relative range.

### 5.30.2 "tolerance" Characteristic Description

The description of the "tolerance" characteristic for the "Equal" class is given in Table 5.30.2.

Table 5.30.2 Description of the "tolerance" characteristic for the "Equal" class.
Descriptor | Definition
--- | ---
Characteristic Name | tolerance
Data Type | ToleranceList
Value Space | The list consist of values of data-type(s): String (Primitive-type), Double (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | If the tolerance mode is absolute or relative then the tolerance must be specified. The tolerance consists of two positive numbers, t0 and t1, that define the lower and upper bounds. If only one value is given it is used for both. In absolute mode the result of the comparison is true if the value of the second expression, y is within the following range defined by the first value, x: x-t0,x+t1. In relative mode, t0 and t1 are treated as percentages and the following range is used instead: x*(1-t0/100),x*(1+t1/100)

### 5.30.3 "includeLowerBound" Characteristic Description

The description of the "includeLowerBound" characteristic for the "Equal" class is given in Table 5.30.3.

Table 5.30.3 Description of the "includeLowerBound" characteristic for the "Equal" class.
Descriptor | Definition
--- | ---
Characteristic Name | includeLowerBound
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "true".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Controls whether or not the lower bound is included in the comparison.

### 5.30.4 "includeUpperBound" Characteristic Description

The description of the "includeUpperBound" characteristic for the "Equal" class is given in Table 5.30.4.

Table 5.30.4 Description of the "includeUpperBound" characteristic for the "Equal" class.
Descriptor | Definition
--- | ---
Characteristic Name | includeUpperBound
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "true".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Controls whether or not the upper bound is included in the comparison.

### 5.30.5 "logic" Attribute Description

The description of the "logic" attribute for the "Equal" class is given in Table 5.30.5.

Table 5.30.5 Description of the "logic" attribute for the "Equal" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [2]
Description | This is an abstract class that enables the two required QTI expressions to be identifed.

## 5.31 EqualRounded Class Description

The data model for the "EqualRounded" class is shown in Figure 5.31 and the accompanying definition in Table 5.31.

Figure 5.31 - EqualRounded class definitions.

Table 5.31 Description of the "EqualRounded" class.
Descriptor | Definition
--- | ---
Class Name | EqualRounded
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: roundingMode figures
Children | The set of children attributes are: logic
Description | The equalRounded operator takes two sub-expressions which must both have single cardinality and have a numerical base-type. The result is a single boolean with a value of 'true' if the two expressions are numerically equal after rounding and 'false' if they are not. If either sub-expression is NULL then the operator results in NULL.

### 5.31.1 "roundingMode" Characteristic Description

The description of the "roundingMode" characteristic for the "EqualRounded" class is given in Table 5.31.1.

Table 5.31.1 Description of the "roundingMode" characteristic for the "EqualRounded" class.
Descriptor | Definition
--- | ---
Characteristic Name | roundingMode
Data Type | RoundingMode
Value Space | Enumerated value set of: { decimalPlaces | significantFigures } Default = "significantFigures".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Numbers are rounded to a given number of significantFigures or decimalPlaces.

### 5.31.2 "figures" Characteristic Description

The description of the "figures" characteristic for the "EqualRounded" class is given in Table 5.31.2.

Table 5.31.2 Description of the "figures" characteristic for the "EqualRounded" class.
Descriptor | Definition
--- | ---
Characteristic Name | figures
Data Type | IntegerOrVariableRef
Value Space | The union consist of values of data-type(s): Integer (Primitive-type), VariableString (Derived-type)
Scope | Global ("+")
Multiplicity | [1]
Description | The number of figures to round to. If roundingMode= 'significantFigures', the value of figures must be a non-zero positive integer. If roundingMode='decimalPlaces', the value of figures must be an integer greater than or equal to zero. For example, if significantFigures mode is used with figures=3, and the values are 3.175 and 3.183, the result is 'true', but for 3.175 and 3.1749, the result is 'false'; if decimalPlaces mode is used with figures=2, 1.68572 and 1.69 the result is 'true', but for 1.68572 and 1.68432, the result is 'false'.

### 5.31.3 "logic" Attribute Description

The description of the "logic" attribute for the "EqualRounded" class is given in Table 5.31.3.

Table 5.31.3 Description of the "logic" attribute for the "EqualRounded" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [2]
Description | This is an abstract class that enables the two required QTI expressions to be identifed.

## 5.32 ExtendedTextInteraction Class Description

The data model for the "ExtendedTextInteraction" class is shown in Figure 5.32 and the accompanying definition in Table 5.32.

Figure 5.32 - ExtendedTextInteraction class definitions.

Table 5.32 Description of the "ExtendedTextInteraction" class.
Descriptor | Definition
--- | ---
Class Name | ExtendedTextInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BasePromptInteraction
Characteristics | The set of characteristics are: base stringIdentifier expectedLength patternMask placeholderText maxStrings minStrings expectedLines format The set of inherited characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of inherited children attributes are: prompt
Description | An Extended Text Interaction is a blockInteraction that allows the candidate to enter an extended amount of text. The extendedTextInteraction must be bound to a response variable of single, multiple, ordered or record cardinality. If the response variable has record cardinality the fields in the record must be 'stringValue', 'floatValue', etc. Otherwise it ust have a baseType of string, integer or float. When bound to response variable with single cardinality a single string of text is required from the candidate. When bound to a response variable with multiple or ordered cardinality several separate text strings may be required.

### 5.32.1 "base" Characteristic Description

The description of the "base" characteristic for the "ExtendedTextInteraction" class is given in Table 5.32.1.

Table 5.32.1 Description of the "base" characteristic for the "ExtendedTextInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | base
Data Type | Int (Primitive-type)
Value Space | See Appendix A1.3. Default = "10".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If the string interaction is bound to a numeric response variable then the base attribute must be used to set the number base in which to interpret the value entered by the candidate.

### 5.32.2 "stringIdentifier" Characteristic Description

The description of the "stringIdentifier" characteristic for the "ExtendedTextInteraction" class is given in Table 5.32.2.

Table 5.32.2 Description of the "stringIdentifier" characteristic for the "ExtendedTextInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | stringIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | If the string interaction is bound to a numeric response variable then the actual string entered by the candidate can also be captured by binding the interaction to a second response variable (of base-type string).

### 5.32.3 "expectedLength" Characteristic Description

The description of the "expectedLength" characteristic for the "ExtendedTextInteraction" class is given in Table 5.32.3.

Table 5.32.3 Description of the "expectedLength" characteristic for the "ExtendedTextInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | expectedLength
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The expectedLength characteristic provides a hint to the candidate as to the expected overall length of the desired response measured in number of characters. A Delivery Engine should use the value of this characteristic to set the size of the response box, where applicable. This is not a validity constraint.

### 5.32.4 "patternMask" Characteristic Description

The description of the "patternMask" characteristic for the "ExtendedTextInteraction" class is given in Table 5.32.4.

Table 5.32.4 Description of the "patternMask" characteristic for the "ExtendedTextInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | patternMask
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | If given, the pattern mask specifies a regular expression that the candidate's response must match in order to be considered valid. The regular expression language used is defined in Appendix F of [XSCHEMA2, 01]. Care is needed to ensure that the format of the required input is clear to the candidate, especially when validity checking of responses is required for progression through a test. This could be done by providing an illustrative sample response in the prompt, for example.

### 5.32.5 "placeholderText" Characteristic Description

The description of the "placeholderText" characteristic for the "ExtendedTextInteraction" class is given in Table 5.32.5.

Table 5.32.5 Description of the "placeholderText" characteristic for the "ExtendedTextInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | placeholderText
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | In visual environments, string interactions are typically represented by empty boxes into which the candidate writes or types. However, in speech based environments it is helpful to have some placeholder text that can be used to vocalize the interaction. Delivery engines should use the value of this attribute (if provided) instead of their default placeholder text when this is required. Implementors should be aware of the issues concerning the use of default values described in the section on Response Variables.

### 5.32.6 "maxStrings" Characteristic Description

The description of the "maxStrings" characteristic for the "ExtendedTextInteraction" class is given in Table 5.32.6.

Table 5.32.6 Description of the "maxStrings" characteristic for the "ExtendedTextInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxStrings
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The maxStrings characteristic is required when the interaction is bound to a response variable that is a container. A Delivery Engine must use the value of this attribute to control the maximum number of separate strings accepted from the candidate. When multiple strings are accepted, expectedLength applies to each string.

### 5.32.7 "minStrings" Characteristic Description

The description of the "minStrings" characteristic for the "ExtendedTextInteraction" class is given in Table 5.32.7.

Table 5.32.7 Description of the "minStrings" characteristic for the "ExtendedTextInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | minStrings
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minStrings attribute specifies the minimum number separate (non-empty) strings required from the candidate to form a valid response. If minStrings is 0 then the candidate is not required to enter any strings at all. minStrings must be less than or equal to the limit imposed by maxStrings. If the interaction is not bound to a container then there is a special case in which minStrings may be 1. In this case the candidate must enter a non-empty string to form a valid response. More complex constraints on the form of the string can be controlled with the patternMask attribute.

### 5.32.8 "expectedLines" Characteristic Description

The description of the "expectedLines" characteristic for the "ExtendedTextInteraction" class is given in Table 5.32.8.

Table 5.32.8 Description of the "expectedLines" characteristic for the "ExtendedTextInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | expectedLines
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The expectedLines characteristic provides a hint to the candidate as to the expected number of lines of input required. A line is expected to have about 72 characters. A Delivery Engine should use the value of this attribute to set the size of the response box, where applicable. This is not a validity constraint.

### 5.32.9 "format" Characteristic Description

The description of the "format" characteristic for the "ExtendedTextInteraction" class is given in Table 5.32.9.

Table 5.32.9 Description of the "format" characteristic for the "ExtendedTextInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | format
Data Type | TextFormat
Value Space | Enumerated value set of: { plain | preformatted | xhtml } Default = "plain".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Used to control the format of the text entered by the candidate. This characteristic affects the way the value of the associated response variable should be interpreted by response processing engines and also controls the way it should be captured in the delivery engine.

## 5.33 FeedbackBlock Class Description

The data model for the "FeedbackBlock" class is shown in Figure 5.33 and the accompanying definition in Table 5.33.

Figure 5.33 - FeedbackBlock class definitions.

Table 5.33 Description of the "FeedbackBlock" class.
Descriptor | Definition
--- | ---
Class Name | FeedbackBlock
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: BlockGroup BlockStaticGroup FlowGroup FlowStaticGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of characteristics are: outcomeIdentifier identifier showHide The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: feedbackBlockStatic stylesheet apipAccessibility
Description | This class is used to defne the feedback content that can be presented to the learner. A feedback element that forms part of a Non-adaptive Item must not contain an interaction object, either directly or indirectly. When an interaction is contained in a hidden feedback element it must also be hidden. The candidate must not be able to set or update the value of the associated response variables. Feedback elements can be embedded inside each other, with one exception: feedBackInline cannot contain feedbackBlock elements.

### 5.33.1 "outcomeIdentifier" Characteristic Description

The description of the "outcomeIdentifier" characteristic for the "FeedbackBlock" class is given in Table 5.33.1.

Table 5.33.1 Description of the "outcomeIdentifier" characteristic for the "FeedbackBlock" class.
Descriptor | Definition
--- | ---
Characteristic Name | outcomeIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of an outcome variable that must have a base-type of identifier and be of either single or multiple cardinality. The visibility of the feedback is controlled by assigning a value (or values) to this outcome variable during responseProcessing.

### 5.33.2 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "FeedbackBlock" class is given in Table 5.33.2.

Table 5.33.2 Description of the "identifier" characteristic for the "FeedbackBlock" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier that determines the visibility of the feedback in conjunction with the showHide attribute.

### 5.33.3 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "FeedbackBlock" class is given in Table 5.33.3.

Table 5.33.3 Description of the "showHide" characteristic for the "FeedbackBlock" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide characteristic determines how the visibility of the feedbackElement is controlled. If set to show then the feedback is hidden by default and shown only if the associated outcome variable matches, or contains, the value of the identifier characteristic. If set to hide then the feedback is shown by default and hidden if the associated outcome variable matches, or contains, the value of the identifier characteristic.

### 5.33.4 "feedbackBlockStatic" Attribute Description

The description of the "feedbackBlockStatic" attribute for the "FeedbackBlock" class is given in Table 5.33.4.

Table 5.33.4 Description of the "feedbackBlockStatic" attribute for the "FeedbackBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackBlockStatic
Data Type | FeedbackBlockStatic
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | Defines the actual content that can be presented as the feedback.

### 5.33.5 "stylesheet" Attribute Description

The description of the "stylesheet" attribute for the "FeedbackBlock" class is given in Table 5.33.5.

Table 5.33.5 Description of the "stylesheet" attribute for the "FeedbackBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | stylesheet
Data Type | StyleSheet
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This allows the identification of the set of CSS stylesheets that are to be used to define the presentation styling of the feedback.

### 5.33.6 "apipAccessibility" Attribute Description

The description of the "apipAccessibility" attribute for the "FeedbackBlock" class is given in Table 5.33.6.

Table 5.33.6 Description of the "apipAccessibility" attribute for the "FeedbackBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | apipAccessibility
Data Type | APIPAccessibility
Value Space | Imported
Scope | Global ("+")
Multiplicity | [0..1]
Description | This allows the APIP-based alternative accessibility content to be assigned to this feedback [APIP, 14].

## 5.34 FeedbackInline Class Description

The data model for the "FeedbackInline" class is shown in Figure 5.34 and the accompanying definition in Table 5.34.

Figure 5.34 - FeedbackInline class definitions.

Table 5.34 Description of the "FeedbackInline" class.
Descriptor | Definition
--- | ---
Class Name | FeedbackInline
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: FeedandTempBlockStatic FeedbackBlockStatic FlowGroup FlowStaticGroup InlineChoiceGroup InlineGroup InlineStaticGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of characteristics are: outcomeIdentifier identifier showHide The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: feedbackInlineGroup
Description | This is feedback that is presented as inline content. Inline feedback that forms part of a Non-adaptive Item must not contain an interaction object, either directly or indirectly. When an interaction is contained in a hidden feedback it must also be hidden. The candidate must not be able to set or update the value of the associated response variables. Feedback can be embedded inside each other, with one exception: feedBackInline cannot contain feedbackBlock elements.

### 5.34.1 "outcomeIdentifier" Characteristic Description

The description of the "outcomeIdentifier" characteristic for the "FeedbackInline" class is given in Table 5.34.1.

Table 5.34.1 Description of the "outcomeIdentifier" characteristic for the "FeedbackInline" class.
Descriptor | Definition
--- | ---
Characteristic Name | outcomeIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of an outcome variable that must have a base-type of identifier and be of either single or multiple cardinality. The visibility of the feedbackElement is controlled by assigning a value (or values) to this outcome variable during responseProcessing.

### 5.34.2 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "FeedbackInline" class is given in Table 5.34.2.

Table 5.34.2 Description of the "identifier" characteristic for the "FeedbackInline" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier that determines the visibility of the feedback in conjunction with the showHide characteristic.

### 5.34.3 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "FeedbackInline" class is given in Table 5.34.3.

Table 5.34.3 Description of the "showHide" characteristic for the "FeedbackInline" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide characteristic determines how the visibility of the feedbackElement is controlled. If set to show then the feedback is hidden by default and shown only if the associated outcome variable matches, or contains, the value of the identifier characteristic. If set to hide then the feedback is shown by default and hidden if the associated outcome variable matches, or contains, the value of the identifier characteristic.

### 5.34.4 "feedbackInlineGroup" Attribute Description

The description of the "feedbackInlineGroup" attribute for the "FeedbackInline" class is given in Table 5.34.4.

Table 5.34.4 Description of the "feedbackInlineGroup" attribute for the "FeedbackInline" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackInlineGroup
Data Type | FeedbackInlineGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the actual inline content to be placed.

## 5.35 FieldValue Class Description

The data model for the "FieldValue" class is shown in Figure 5.35 and the accompanying definition in Table 5.35.

Figure 5.35 - FieldValue class definitions.

Table 5.35 Description of the "FieldValue" class.
Descriptor | Definition
--- | ---
Class Name | FieldValue
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: fieldIdentifier
Children | The set of children attributes are: logic
Description | This is a QTI expression. The field-value operator takes a sub-expression with a record container value. The result is the value of the field with the specified fieldIdentifier. If there is no field with that identifier then the result of the operator is NULL.

### 5.35.1 "fieldIdentifier" Characteristic Description

The description of the "fieldIdentifier" characteristic for the "FieldValue" class is given in Table 5.35.1.

Table 5.35.1 Description of the "fieldIdentifier" characteristic for the "FieldValue" class.
Descriptor | Definition
--- | ---
Characteristic Name | fieldIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the field to be selected.

### 5.35.2 "logic" Attribute Description

The description of the "logic" attribute for the "FieldValue" class is given in Table 5.35.2.

Table 5.35.2 Description of the "logic" attribute for the "FieldValue" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute to enable the insertion of the required child expression.

## 5.36 Gap Class Description

The data model for the "Gap" class is shown in Figure 5.36 and the accompanying definition in Table 5.36.

Figure 5.36 - Gap class definitions.

Table 5.36 Description of the "Gap" class.
Descriptor | Definition
--- | ---
Class Name | Gap
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: InlineGroup InlineStaticGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBaseEmpty
Characteristics | The set of characteristics are: identifier templateIdentifier showHide matchGroup required The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | This defines the gap structure that must only appear within a 'gapMatchInteraction'.

### 5.36.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "Gap" class is given in Table 5.36.1.

Table 5.36.1 Description of the "identifier" characteristic for the "Gap" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the gap. This identifier must not be used by any other gap or item variable.

### 5.36.2 "templateIdentifier" Characteristic Description

The description of the "templateIdentifier" characteristic for the "Gap" class is given in Table 5.36.2.

Table 5.36.2 Description of the "templateIdentifier" characteristic for the "Gap" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The identifier of a template variable that must have a base-type of identifier and be either single of multiple cardinality. When the associated interaction is part of an Item Template the value of the identified template variable is used to control the visibility of the mgap. When a gap is hidden it is not selectable and its content is not visible to the candidate unless otherwise stated.

### 5.36.3 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "Gap" class is given in Table 5.36.3.

Table 5.36.3 Description of the "showHide" characteristic for the "Gap" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide characteristic determines how the visibility of the gap is controlled. If set to show then the gap is hidden by default and shown only if the associated template variable matches, or contains, the identifier of the gap. If set to hide then the gap is shown by default and hidden if the associated template variable matches, or contains, the gap's identifier.

### 5.36.4 "matchGroup" Characteristic Description

The description of the "matchGroup" characteristic for the "Gap" class is given in Table 5.36.4.

Table 5.36.4 Description of the "matchGroup" characteristic for the "Gap" class.
Descriptor | Definition
--- | ---
Characteristic Name | matchGroup
Data Type | IdentifierList
Value Space | The list consist of values of data-type(s): NCName (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is used to identify the set of entities that can be matched with this gap. This is used to enable the author to constrain the set of objects (images and text) that can be matched with the target gap. This is a list of the identifiers for the objects that can be matched with this gap.

### 5.36.5 "required" Characteristic Description

The description of the "required" characteristic for the "Gap" class is given in Table 5.36.5.

Table 5.36.5 Description of the "required" characteristic for the "Gap" class.
Descriptor | Definition
--- | ---
Characteristic Name | required
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If true then this gap must be filled by the candidate inorder to form a valid response to the interaction.

## 5.37 GapImg Class Description

The data model for the "GapImg" class is shown in Figure 5.37 and the accompanying definition in Table 5.37.

Figure 5.37 - GapImg class definitions.

Table 5.37 Description of the "GapImg" class.
Descriptor | Definition
--- | ---
Class Name | GapImg
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: GapChoice
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of characteristics are: identifier templateIdentifier showHide matchGroup matchMax matchMin objectLabel top left The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: object
Description | A gap image contains a single image object to be inserted into a gap by the candidate.

### 5.37.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "GapImg" class is given in Table 5.37.1.

Table 5.37.1 Description of the "identifier" characteristic for the "GapImg" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the gap image. This identifier must not be used by any other image or item variable.

### 5.37.2 "templateIdentifier" Characteristic Description

The description of the "templateIdentifier" characteristic for the "GapImg" class is given in Table 5.37.2.

Table 5.37.2 Description of the "templateIdentifier" characteristic for the "GapImg" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The identifier of a template variable that must have a base-type of identifier and be either single of multiple cardinality. When the associated interaction is part of an Item Template the value of the identified template variable is used to control the visibility of the image. When the image is hidden it is not selectable and its content is not visible to the candidate unless otherwise stated.

### 5.37.3 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "GapImg" class is given in Table 5.37.3.

Table 5.37.3 Description of the "showHide" characteristic for the "GapImg" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide characteristic determines how the visibility of the image is controlled. If set to 'show' then the text is hidden by default and shown only if the associated template variable matches, or contains, the identifier of the choice. If set to 'hide' then the image is shown by default and hidden if the associated template variable matches, or contains, the image's identifier.

### 5.37.4 "matchGroup" Characteristic Description

The description of the "matchGroup" characteristic for the "GapImg" class is given in Table 5.37.4.

Table 5.37.4 Description of the "matchGroup" characteristic for the "GapImg" class.
Descriptor | Definition
--- | ---
Characteristic Name | matchGroup
Data Type | IdentifierList
Value Space | The list consist of values of data-type(s): NCName (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is used to identify the set of entities that can be matched with this gapImage. This is used to enable the author to constrain the set of objects (image) that can be matched with the target gapImage. This is a list of the identifiers for the objects that can be matched with this gapImage.

### 5.37.5 "matchMax" Characteristic Description

The description of the "matchMax" characteristic for the "GapImg" class is given in Table 5.37.5.

Table 5.37.5 Description of the "matchMax" characteristic for the "GapImg" class.
Descriptor | Definition
--- | ---
Characteristic Name | matchMax
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The maximum number of choices this choice may be associated with. If matchMax is 0 there is no restriction.

### 5.37.6 "matchMin" Characteristic Description

The description of the "matchMin" characteristic for the "GapImg" class is given in Table 5.37.6.

Table 5.37.6 Description of the "matchMin" characteristic for the "GapImg" class.
Descriptor | Definition
--- | ---
Characteristic Name | matchMin
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of gaps this choice must be associated with to form a valid response. If matchMin is 0 then the candidate is not required to associate this choice with any gaps at all. matchMin must be less than or equal to the limit imposed by matchMax.

### 5.37.7 "objectLabel" Characteristic Description

The description of the "objectLabel" characteristic for the "GapImg" class is given in Table 5.37.7.

Table 5.37.7 Description of the "objectLabel" characteristic for the "GapImg" class.
Descriptor | Definition
--- | ---
Characteristic Name | objectLabel
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | An optional label for the image object to be inserted.

### 5.37.8 "top" Characteristic Description

The description of the "top" characteristic for the "GapImg" class is given in Table 5.37.8.

Table 5.37.8 Description of the "top" characteristic for the "GapImg" class.
Descriptor | Definition
--- | ---
Characteristic Name | top
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the 'Y' co-ordinate of the top left corner of the image i.e. the value for the top.

### 5.37.9 "left" Characteristic Description

The description of the "left" characteristic for the "GapImg" class is given in Table 5.37.9.

Table 5.37.9 Description of the "left" characteristic for the "GapImg" class.
Descriptor | Definition
--- | ---
Characteristic Name | left
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the 'X' co-ordinate of the top left corner of the image i.e. the value for the left.

### 5.37.10 "object" Attribute Description

The description of the "object" attribute for the "GapImg" class is given in Table 5.37.10.

Table 5.37.10 Description of the "object" attribute for the "GapImg" class.
Descriptor | Definition
--- | ---
Attribute Name | object
Data Type | Object
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the required image to be used. The 'object' tag must be used for this description.

## 5.38 GapMatchInteraction Class Description

The data model for the "GapMatchInteraction" class is shown in Figure 5.38 and the accompanying definition in Table 5.38.

Figure 5.38 - GapMatchInteraction class definitions.

Table 5.38 Description of the "GapMatchInteraction" class.
Descriptor | Definition
--- | ---
Class Name | GapMatchInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BasePromptInteraction
Characteristics | The set of characteristics are: shuffle minAssociations maxAssociations The set of inherited characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: gapChoice blockStaticGroup The set of inherited children attributes are: prompt
Description | A gap match interaction is a blockInteraction that contains a number gaps that the candidate can fill from an associated set of choices. The candidate must be able to review the content with the gaps filled in context, as indicated by their choices. The gapMatchInteraction must be bound to a response variable with base-type directedPair and either single or multiple cardinality, depending on the number of gaps. The choices represent the source of the pairing and gaps the targets. Each gap can have at most one choice associated with it. The maximum occurrence of the choices is controlled by the matchMax characteristic of gapChoice.

### 5.38.1 "shuffle" Characteristic Description

The description of the "shuffle" characteristic for the "GapMatchInteraction" class is given in Table 5.38.1.

Table 5.38.1 Description of the "shuffle" characteristic for the "GapMatchInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | shuffle
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If the shuffle characteristic is 'true' then the delivery engine must randomize the order in which the choices (not the gaps) are initially presented, subject to the value of the fixed attribute of each choice.

### 5.38.2 "minAssociations" Characteristic Description

The description of the "minAssociations" characteristic for the "GapMatchInteraction" class is given in Table 5.38.2.

Table 5.38.2 Description of the "minAssociations" characteristic for the "GapMatchInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | minAssociations
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of associations that the candidate is required to make to form a valid response. If minAssociations is 0 then the candidate is not required to make any associations. minAssociations must be less than or equal to the limit imposed by maxAssociations.

### 5.38.3 "maxAssociations" Characteristic Description

The description of the "maxAssociations" characteristic for the "GapMatchInteraction" class is given in Table 5.38.3.

Table 5.38.3 Description of the "maxAssociations" characteristic for the "GapMatchInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxAssociations
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "1".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The maximum number of associations that the candidate is allowed to make. If maxAssociations is 0 then there is no restriction. If maxAssociations is greater than 1 (or 0) then the interaction must be bound to a response with multiple cardinality.

### 5.38.4 "gapChoice" Attribute Description

The description of the "gapChoice" attribute for the "GapMatchInteraction" class is given in Table 5.38.4.

Table 5.38.4 Description of the "gapChoice" attribute for the "GapMatchInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | gapChoice
Data Type | GapChoice
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1.. unbounded]
Description | This is an abstract attribute to allow the definition of an ordered list of choices for filling the gaps. There may be fewer choices than gaps if required.

### 5.38.5 "blockStaticGroup" Attribute Description

The description of the "blockStaticGroup" attribute for the "GapMatchInteraction" class is given in Table 5.38.5.

Table 5.38.5 Description of the "blockStaticGroup" attribute for the "GapMatchInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | blockStaticGroup
Data Type | BlockStaticGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1.. unbounded]
Description | This is an abstract attribute to enable the entry of the content of the interaction is simply a piece of content that contains the gaps. If the block contains more than one gap then the interaction must be bound to a response with multiple cardinality.

## 5.39 GapText Class Description

The data model for the "GapText" class is shown in Figure 5.39 and the accompanying definition in Table 5.39.

Figure 5.39 - GapText class definitions.

Table 5.39 Description of the "GapText" class.
Descriptor | Definition
--- | ---
Class Name | GapText
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: GapChoice
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of characteristics are: identifier templateIdentifier showHide matchGroup matchMax matchMin The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: inlineChoiceGroup
Description | A simple run of text to be inserted into a gap by the user, may be subject to variable value substitution with printedVariable.

### 5.39.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "GapText" class is given in Table 5.39.1.

Table 5.39.1 Description of the "identifier" characteristic for the "GapText" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the gap text. This identifier must not be used by any other text or item variable.

### 5.39.2 "templateIdentifier" Characteristic Description

The description of the "templateIdentifier" characteristic for the "GapText" class is given in Table 5.39.2.

Table 5.39.2 Description of the "templateIdentifier" characteristic for the "GapText" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The identifier of a template variable that must have a base-type of identifier and be either single of multiple cardinality. When the associated interaction is part of an Item Template the value of the identified template variable is used to control the visibility of the text. When the text is hidden it is not selectable and its content is not visible to the candidate unless otherwise stated.

### 5.39.3 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "GapText" class is given in Table 5.39.3.

Table 5.39.3 Description of the "showHide" characteristic for the "GapText" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide characteristic determines how the visibility of the text is controlled. If set to 'show' then the text is hidden by default and shown only if the associated template variable matches, or contains, the identifier of the choice. If set to 'hide' then the text is shown by default and hidden if the associated template variable matches, or contains, the text's identifier.

### 5.39.4 "matchGroup" Characteristic Description

The description of the "matchGroup" characteristic for the "GapText" class is given in Table 5.39.4.

Table 5.39.4 Description of the "matchGroup" characteristic for the "GapText" class.
Descriptor | Definition
--- | ---
Characteristic Name | matchGroup
Data Type | IdentifierList
Value Space | The list consist of values of data-type(s): NCName (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is used to identify the set of entities that can be matched with this gapText. This is used to enable the author to constrain the set of objects (text) that can be matched with the target gapText. This is a list of the identifiers for the objects that can be matched with this gapText.

### 5.39.5 "matchMax" Characteristic Description

The description of the "matchMax" characteristic for the "GapText" class is given in Table 5.39.5.

Table 5.39.5 Description of the "matchMax" characteristic for the "GapText" class.
Descriptor | Definition
--- | ---
Characteristic Name | matchMax
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The maximum number of choices this choice may be associated with. If matchMax is 0 there is no restriction.

### 5.39.6 "matchMin" Characteristic Description

The description of the "matchMin" characteristic for the "GapText" class is given in Table 5.39.6.

Table 5.39.6 Description of the "matchMin" characteristic for the "GapText" class.
Descriptor | Definition
--- | ---
Characteristic Name | matchMin
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of gaps this choice must be associated with to form a valid response. If matchMin is 0 then the candidate is not required to associate this choice with any gaps at all. matchMin must be less than or equal to the limit imposed by matchMax.

### 5.39.7 "inlineChoiceGroup" Attribute Description

The description of the "inlineChoiceGroup" attribute for the "GapText" class is given in Table 5.39.7.

Table 5.39.7 Description of the "inlineChoiceGroup" attribute for the "GapText" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineChoiceGroup
Data Type | InlineChoiceGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the inline content to be added including the HTML inline content.

## 5.40 GraphicAssociateInteraction Class Description

The data model for the "GraphicAssociateInteraction" class is shown in Figure 5.40 and the accompanying definition in Table 5.40.

Figure 5.40 - GraphicAssociateInteraction class definitions.

Table 5.40 Description of the "GraphicAssociateInteraction" class.
Descriptor | Definition
--- | ---
Class Name | GraphicAssociateInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BasePromptInteraction
Characteristics | The set of characteristics are: minAssociations maxAssociations The set of inherited characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: object associableHotspot The set of inherited children attributes are: prompt
Description | A graphic associate interaction is a graphic interaction with a corresponding set of choices that are defined as areas of the graphic image. The candidate's task is to associate the areas (hotspots) with each other. The graphic associate interaction should only be used when the graphical relationship of the choices with respect to each other (as represented by the graphic image) is important to the needs of the item. Otherwise, associateInteraction should be used instead with separate Material for each option. The delivery engine must clearly indicate all defined area(s) of the image. The graphicAssociateInteraction must be bound to a response variable with base-type pair and either single or multiple cardinality.

### 5.40.1 "minAssociations" Characteristic Description

The description of the "minAssociations" characteristic for the "GraphicAssociateInteraction" class is given in Table 5.40.1.

Table 5.40.1 Description of the "minAssociations" characteristic for the "GraphicAssociateInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | minAssociations
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of associations that the candidate is required to make to form a valid response. If minAssociations is 0 then the candidate is not required to make any associations. minAssociations must be less than or equal to the limit imposed by maxAssociations.

### 5.40.2 "maxAssociations" Characteristic Description

The description of the "maxAssociations" characteristic for the "GraphicAssociateInteraction" class is given in Table 5.40.2.

Table 5.40.2 Description of the "maxAssociations" characteristic for the "GraphicAssociateInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxAssociations
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "1".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The maximum number of associations that the candidate is allowed to make. If maxAssociations is 0 there is no restriction. If maxAssociations is greater than 1 (or 0) then the interaction must be bound to a response with multiple cardinality.

### 5.40.3 "object" Attribute Description

The description of the "object" attribute for the "GraphicAssociateInteraction" class is given in Table 5.40.3.

Table 5.40.3 Description of the "object" attribute for the "GraphicAssociateInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | object
Data Type | Object
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the required base graphical object to be positioned.

### 5.40.4 "associableHotspot" Attribute Description

The description of the "associableHotspot" attribute for the "GraphicAssociateInteraction" class is given in Table 5.40.4.

Table 5.40.4 Description of the "associableHotspot" attribute for the "GraphicAssociateInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | associableHotspot
Data Type | AssociableHotspot
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | The hotspots that define the choices that are to be associated by the candidate. If the delivery system does not support pointer-based selection then the order in which the choices are given must be the order in which they are offered to the candidate for selection. For example, the 'tab order' in simple keyboard navigation.

## 5.41 GraphicGapMatchInteraction Class Description

The data model for the "GraphicGapMatchInteraction" class is shown in Figure 5.41 and the accompanying definition in Table 5.41.

Figure 5.41 - GraphicGapMatchInteraction class definitions.

Table 5.41 Description of the "GraphicGapMatchInteraction" class.
Descriptor | Definition
--- | ---
Class Name | GraphicGapMatchInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceFull
Characteristics | The set of characteristics are: minAssociations maxAssociations The set of inherited characteristics are: id class language label responseIdentifier base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: prompt object gapChoice associableHotspot
Description | A graphic gap-match interaction is a graphical interaction with a set of gaps that are defined as areas (hotspots) of the graphic image and an additional set of gap choices that are defined outside the image. The candidate must associate the gap choices with the gaps in the image and be able to review the image with the gaps filled in context, as indicated by their choices. Care should be taken when designing these interactions to ensure that the gaps in the image are a suitable size to receive the required gap choices. It must be clear to the candidate which hotspot each choice has been associated with. When associated, choices must appear wholly inside the gaps if at all possible and, where overlaps are required, should not hide each other completely. If the candidate indicates the association by positioning the choice over the gap (e.g. drag and drop) the system should 'snap' it to the nearest position that satisfies these requirements. The graphicGapMatchInteraction must be bound to a response variable with base-type directedPair and multiple cardinality. The choices represent the source of the pairing and the gaps in the image (the hotspots) the targets. Unlike the simple gapMatchInteraction, each gap can have several choices associated with it if desired, furthermore, the same choice may be associated with an associableHotspot multiple times, in which case the corresponding directed pair appears multiple times in the value of the response variable.

### 5.41.1 "minAssociations" Characteristic Description

The description of the "minAssociations" characteristic for the "GraphicGapMatchInteraction" class is given in Table 5.41.1.

Table 5.41.1 Description of the "minAssociations" characteristic for the "GraphicGapMatchInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | minAssociations
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of associations that the candidate is required to make to form a valid response. If minAssociations is 0 then the candidate is not required to make any associations. minAssociations must be less than or equal to the limit imposed by maxAssociations.

### 5.41.2 "maxAssociations" Characteristic Description

The description of the "maxAssociations" characteristic for the "GraphicGapMatchInteraction" class is given in Table 5.41.2.

Table 5.41.2 Description of the "maxAssociations" characteristic for the "GraphicGapMatchInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxAssociations
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "1".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The maximum number of associations that the candidate is allowed to make. If maxAssociations is 0 then there is no restriction. If maxAssociations is greater than 1 (or 0) then the interaction must be bound to a response with multiple cardinality.

### 5.41.3 "prompt" Attribute Description

The description of the "prompt" attribute for the "GraphicGapMatchInteraction" class is given in Table 5.41.3.

Table 5.41.3 Description of the "prompt" attribute for the "GraphicGapMatchInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | prompt
Data Type | Prompt
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | An optional prompt for the interaction.

### 5.41.4 "object" Attribute Description

The description of the "object" attribute for the "GraphicGapMatchInteraction" class is given in Table 5.41.4.

Table 5.41.4 Description of the "object" attribute for the "GraphicGapMatchInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | object
Data Type | Object
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The associated image which is given as an object that must be of an image type, as specified by the type attribute.

### 5.41.5 "gapChoice" Attribute Description

The description of the "gapChoice" attribute for the "GraphicGapMatchInteraction" class is given in Table 5.41.5.

Table 5.41.5 Description of the "gapChoice" attribute for the "GraphicGapMatchInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | gapChoice
Data Type | GapChoice
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1.. unbounded]
Description | This is an abstract child that allows the insertion of the choices that are used to fill the gaps in a gapMatchInteraction are either simple runs of text or single image objects, both derived from gapChoice.

### 5.41.6 "associableHotspot" Attribute Description

The description of the "associableHotspot" attribute for the "GraphicGapMatchInteraction" class is given in Table 5.41.6.

Table 5.41.6 Description of the "associableHotspot" attribute for the "GraphicGapMatchInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | associableHotspot
Data Type | AssociableHotspot
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | The hotspots that define the gaps that are to be filled by the candidate. If the delivery system does not support pointer-based selection then the order in which the gaps is given must be the order in which they are offered to the candidate for selection. For example, the 'tab order' in simple keyboard navigation. The default hotspot must not be defined.

## 5.42 GraphicOrderInteraction Class Description

The data model for the "GraphicOrderInteraction" class is shown in Figure 5.42 and the accompanying definition in Table 5.42.

Figure 5.42 - GraphicOrderInteraction class definitions.

Table 5.42 Description of the "GraphicOrderInteraction" class.
Descriptor | Definition
--- | ---
Class Name | GraphicOrderInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceFull
Characteristics | The set of characteristics are: minChoices maxChoices The set of inherited characteristics are: id class language label responseIdentifier base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: prompt object hotspotChoice
Description | A graphic order interaction is a graphic interaction with a corresponding set of choices that are defined as areas of the graphic image. The candidate's task is to impose an ordering on the areas (hotspots). The order hotspot interaction should only be used when the spacial relationship of the choices with respect to each other (as represented by the graphic image) is important to the needs of the item. Otherwise, orderInteraction should be used instead with separate material for each option. The delivery engine must clearly indicate all defined area(s) of the image. The order hotspot interaction must be bound to a response variable with a baseType of identifier and ordered cardinality.

### 5.42.1 "minChoices" Characteristic Description

The description of the "minChoices" characteristic for the "GraphicOrderInteraction" class is given in Table 5.42.1.

Table 5.42.1 Description of the "minChoices" characteristic for the "GraphicOrderInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | minChoices
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of choices that the candidate must select and order to form a valid response to the interaction. If specified, minChoices must be 1 or greater but must not exceed the number of choices available. If unspecified, all of the choices must be ordered and maxChoices is ignored.

### 5.42.2 "maxChoices" Characteristic Description

The description of the "maxChoices" characteristic for the "GraphicOrderInteraction" class is given in Table 5.42.2.

Table 5.42.2 Description of the "maxChoices" characteristic for the "GraphicOrderInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxChoices
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The maximum number of choices that the candidate may select and order when responding to the interaction. Used in conjunction with minChoices, if specified, maxChoices must be greater than or equal to minChoices and must not exceed the number of choices available. If unspecified, all of the choices may be ordered.

### 5.42.3 "prompt" Attribute Description

The description of the "prompt" attribute for the "GraphicOrderInteraction" class is given in Table 5.42.3.

Table 5.42.3 Description of the "prompt" attribute for the "GraphicOrderInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | prompt
Data Type | Prompt
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | An optional prompt for the interaction.

### 5.42.4 "object" Attribute Description

The description of the "object" attribute for the "GraphicOrderInteraction" class is given in Table 5.42.4.

Table 5.42.4 Description of the "object" attribute for the "GraphicOrderInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | object
Data Type | Object
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the required base graphical object.

### 5.42.5 "hotspotChoice" Attribute Description

The description of the "hotspotChoice" attribute for the "GraphicOrderInteraction" class is given in Table 5.42.5.

Table 5.42.5 Description of the "hotspotChoice" attribute for the "GraphicOrderInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | hotspotChoice
Data Type | HotspotChoice
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | The hotspots that define the choices that are to be ordered by the candidate. If the delivery system does not support pointer-based selection then the order in which the choices are given must be the order in which they are offered to the candidate for selection. For example, the 'tab order' in simple keyboard navigation.

## 5.43 HR Class Description

The data model for the "HR" class is shown in Figure 5.43 and the accompanying definition in Table 5.43.

Figure 5.43 - HR class definitions.

Table 5.43 Description of the "HR" class.
Descriptor | Definition
--- | ---
Class Name | HR
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockContentModel FlowContentModel
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBaseEmpty
Characteristics | The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | This provides the functionality of the HTML 'hr' tag. The 'hr' tag represents a paragraph-level thematic break, e.g. a scene change in a story, or a transition to another topic within a section of a reference book. This tag has no children.

## 5.44 HTMLText Class Description

The data model for the "HTMLText" class is shown in Figure 5.44 and the accompanying definition in Table 5.44.

Figure 5.44 - HTMLText class definitions.

Table 5.44 Description of the "HTMLText" class.
Descriptor | Definition
--- | ---
Class Name | HTMLText
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: BlockContentModel FlowContentModel InlineContentModel
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: inlineGroup
Description | This provides the content for text-based HTML tags e.g. 'pre', 'p', 'h1', 'h2', etc.

### 5.44.1 "inlineGroup" Attribute Description

The description of the "inlineGroup" attribute for the "HTMLText" class is given in Table 5.44.1.

Table 5.44.1 Description of the "inlineGroup" attribute for the "HTMLText" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineGroup
Data Type | InlineGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the insertion of HTML inline content.

## 5.45 HotText Class Description

The data model for the "HotText" class is shown in Figure 5.45 and the accompanying definition in Table 5.45.

Figure 5.45 - HotText class definitions.

Table 5.45 Description of the "HotText" class.
Descriptor | Definition
--- | ---
Class Name | HotText
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: FeedbackFlowStaticGroup FlowGroup InlineGroup InlineStaticGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of characteristics are: identifier templateIdentifier showHide The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: inlineChoiceGroup
Description | A HotText area is used within the content of an hotTextInteraction to provide the individual choices. It must not contain any nested interactions or other hottext areas. When a hottext choice is hidden (by the value of an associated template variable) the content of the choice must still be presented to the candidate as if it were simply part of the surrounding material. In the case of hottext, the effect of hiding the choice is simply to make the run of text unselectable by the candidate.

### 5.45.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "HotText" class is given in Table 5.45.1.

Table 5.45.1 Description of the "identifier" characteristic for the "HotText" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the hottext choice. This identifier must not be used by any other hottext choice or item variable.

### 5.45.2 "templateIdentifier" Characteristic Description

The description of the "templateIdentifier" characteristic for the "HotText" class is given in Table 5.45.2.

Table 5.45.2 Description of the "templateIdentifier" characteristic for the "HotText" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The identifier of a template variable that must have a base-type of identifier and be either single of multiple cardinality. When the associated interaction is part of an Item Template the value of the identified template variable is used to control the visibility of the choice. When a choice is hidden it is not selectable and its content is not visible to the candidate unless otherwise stated.

### 5.45.3 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "HotText" class is given in Table 5.45.3.

Table 5.45.3 Description of the "showHide" characteristic for the "HotText" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide characteristic determines how the visibility of the hottext choice is controlled. If set to 'show' then the choice is hidden by default and shown only if the associated template variable matches, or contains, the identifier of the choice. If set to 'hide' then the choice is shown by default and hidden if the associated template variable matches, or contains, the choice's identifier.

### 5.45.4 "inlineChoiceGroup" Attribute Description

The description of the "inlineChoiceGroup" attribute for the "HotText" class is given in Table 5.45.4.

Table 5.45.4 Description of the "inlineChoiceGroup" attribute for the "HotText" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineChoiceGroup
Data Type | InlineChoiceGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract class that enables the insertion of of the permitted inline content (includng the HTML tags).

## 5.46 HotTextInteraction Class Description

The data model for the "HotTextInteraction" class is shown in Figure 5.46 and the accompanying definition in Table 5.46.

Figure 5.46 - HotTextInteraction class definitions.

Table 5.46 Description of the "HotTextInteraction" class.
Descriptor | Definition
--- | ---
Class Name | HotTextInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BasePromptInteraction
Characteristics | The set of characteristics are: maxChoices minChoices The set of inherited characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: blockStaticGroup The set of inherited children attributes are: prompt
Description | The HotText Interaction presents a set of choices to the candidate represented as selectable runs of text embedded within a surrounding context, such as a simple passage of text. Like choiceInteraction, the candidate's task is to select one or more of the choices, up to a maximum of maxChoices. The interaction is initialized from the defaultValue of the associated response variable, a NULL value indicating that no choices are selected (the usual case). The hottextInteraction must be bound to a response variable with a baseType of identifier and single or multiple cardinality.

### 5.46.1 "maxChoices" Characteristic Description

The description of the "maxChoices" characteristic for the "HotTextInteraction" class is given in Table 5.46.1.

Table 5.46.1 Description of the "maxChoices" characteristic for the "HotTextInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxChoices
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "1".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The maximum number of choices that can be selected by the candidate. If matchChoices is 0 there is no restriction. If maxChoices is greater than 1 (or 0) then the interaction must be bound to a response with multiple cardinality.

### 5.46.2 "minChoices" Characteristic Description

The description of the "minChoices" characteristic for the "HotTextInteraction" class is given in Table 5.46.2.

Table 5.46.2 Description of the "minChoices" characteristic for the "HotTextInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | minChoices
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of choices that the candidate is required to select to form a valid response. If minChoices is 0 then the candidate is not required to select any choices. minChoices must be less than or equal to the limit imposed by maxChoices.

### 5.46.3 "blockStaticGroup" Attribute Description

The description of the "blockStaticGroup" attribute for the "HotTextInteraction" class is given in Table 5.46.3.

Table 5.46.3 Description of the "blockStaticGroup" attribute for the "HotTextInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | blockStaticGroup
Data Type | BlockStaticGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1.. unbounded]
Description | This is an abstract class that enables the definition of the content of the interaction that is simply a piece of content, such as a simple passage of text, that contains the hottext areas.

## 5.47 HotspotChoice Class Description

The data model for the "HotspotChoice" class is shown in Figure 5.47 and the accompanying definition in Table 5.47.

Figure 5.47 - HotspotChoice class definitions.

Table 5.47 Description of the "HotspotChoice" class.
Descriptor | Definition
--- | ---
Class Name | HotspotChoice
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: GraphicOrderInteraction HotspotInteraction
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBaseEmpty
Characteristics | The set of characteristics are: identifier templateIdentifier showHide shape coords hotspotLabel The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | The definition of a hotspot choices that can be selected by the candidate. If the delivery system does not support pointer-based selection then the order in which the choices are given must be the order in which they are offered to the candidate for selection. For example, the 'tab order' in simple keyboard navigation. If hotspots overlap then those listed first hide overlapping hotspots that appear later. The default hotspot, if defined, must appear last.

### 5.47.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "HotspotChoice" class is given in Table 5.47.1.

Table 5.47.1 Description of the "identifier" characteristic for the "HotspotChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the choice. This identifier must not be used by any other choice or item variable.

### 5.47.2 "templateIdentifier" Characteristic Description

The description of the "templateIdentifier" characteristic for the "HotspotChoice" class is given in Table 5.47.2.

Table 5.47.2 Description of the "templateIdentifier" characteristic for the "HotspotChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The identifier of a template variable that must have a base-type of identifier and be of either single or multiple cardinality. The visibility of the template feature is controlled by the value of the variable.

### 5.47.3 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "HotspotChoice" class is given in Table 5.47.3.

Table 5.47.3 Description of the "showHide" characteristic for the "HotspotChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide attribute determins how the visbility of the choice is controlled. If set to show then the choice is hidden by default and shown only if the associated template variable matches, or contains, the identifier of the choice. If set to hide then the choice is shown by default and hidden if the associated template variable matches, or contains, the choice's identifier.

### 5.47.4 "shape" Characteristic Description

The description of the "shape" characteristic for the "HotspotChoice" class is given in Table 5.47.4.

Table 5.47.4 Description of the "shape" characteristic for the "HotspotChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | shape
Data Type | Shape
Value Space | Enumerated value set of: { circle | default | ellipse | poly | rect }
Scope | Global ("+")
Multiplicity | [1]
Description | The shape of the hotspot.

### 5.47.5 "coords" Characteristic Description

The description of the "coords" characteristic for the "HotspotChoice" class is given in Table 5.47.5.

Table 5.47.5 Description of the "coords" characteristic for the "HotspotChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | coords
Data Type | Coords
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The size and position of the hotspot, interpreted in conjunction with the shape.

### 5.47.6 "hotspotLabel" Characteristic Description

The description of the "hotspotLabel" characteristic for the "HotspotChoice" class is given in Table 5.47.6.

Table 5.47.6 Description of the "hotspotLabel" characteristic for the "HotspotChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | hotspotLabel
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The alternative text for this (hot) area of the image, if specified it must be treated in the same way as alternative text for 'img'. For hidden hotspots this label is ignored.

## 5.48 HotspotInteraction Class Description

The data model for the "HotspotInteraction" class is shown in Figure 5.48 and the accompanying definition in Table 5.48.

Figure 5.48 - HotspotInteraction class definitions.

Table 5.48 Description of the "HotspotInteraction" class.
Descriptor | Definition
--- | ---
Class Name | HotspotInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BasePromptInteraction
Characteristics | The set of characteristics are: minChoices maxChoices The set of inherited characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: object hotspotChoice The set of inherited children attributes are: prompt
Description | A hotspot interaction is a graphical interaction with a corresponding set of choices that are defined as areas of the graphic image. The candidate's task is to select one or more of the areas (hotspots). The hotspot interaction should only be used when the spacial relationship of the choices with respect to each other (as represented by the graphic image) is important to the needs of the item. Otherwise, choiceInteraction should be used instead with separate material for each option. The delivery engine must clearly indicate the selected area(s) of the image and may also indicate the unselected areas as well. Interactions with hidden hotspots are achieved with the selectPointInteraction. The hotspot interaction must be bound to a response variable with a baseType of identifier and single or multiple cardinality.

### 5.48.1 "minChoices" Characteristic Description

The description of the "minChoices" characteristic for the "HotspotInteraction" class is given in Table 5.48.1.

Table 5.48.1 Description of the "minChoices" characteristic for the "HotspotInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | minChoices
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of choices that the candidate is required to select to form a valid response. If minChoices is 0 then the candidate is not required to select any choices. minChoices must be less than or equal to the limit imposed by maxChoices.

### 5.48.2 "maxChoices" Characteristic Description

The description of the "maxChoices" characteristic for the "HotspotInteraction" class is given in Table 5.48.2.

Table 5.48.2 Description of the "maxChoices" characteristic for the "HotspotInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxChoices
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "1".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The maximum number of choices that the candidate is allowed to select. If maxChoices is 0 there is no restriction. If maxChoices is greater than 1 (or 0) then the interaction must be bound to a response with multiple cardinality.

### 5.48.3 "object" Attribute Description

The description of the "object" attribute for the "HotspotInteraction" class is given in Table 5.48.3.

Table 5.48.3 Description of the "object" attribute for the "HotspotInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | object
Data Type | Object
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is the required base image (object) upon which the hotspots are superposed.

### 5.48.4 "hotspotChoice" Attribute Description

The description of the "hotspotChoice" attribute for the "HotspotInteraction" class is given in Table 5.48.4.

Table 5.48.4 Description of the "hotspotChoice" attribute for the "HotspotInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | hotspotChoice
Data Type | HotspotChoice
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | The hotspots that define the choices that can be selected by the candidate. If the delivery system does not support pointer-based selection then the order in which the choices are given must be the order in which they are offered to the candidate for selection. For example, the 'tab order' in simple keyboard navigation. If hotspots overlap then those listed first hide overlapping hotspots that appear later. The default hotspot, if defined, must appear last.

## 5.49 Img Class Description

The data model for the "Img" class is shown in Figure 5.49 and the accompanying definition in Table 5.49.

Figure 5.49 - Img class definitions.

Table 5.49 Description of the "Img" class.
Descriptor | Definition
--- | ---
Class Name | Img
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: FlowContentModel InlineContentModel
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBaseEmpty
Characteristics | The set of characteristics are: src alt longdesc height width The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | This provides the HTML 'img' tag content capability.

### 5.49.1 "src" Characteristic Description

The description of the "src" characteristic for the "Img" class is given in Table 5.49.1.

Table 5.49.1 Description of the "src" characteristic for the "Img" class.
Descriptor | Definition
--- | ---
Characteristic Name | src
Data Type | AnyURI (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The address (URI) for the image.

### 5.49.2 "alt" Characteristic Description

The description of the "alt" characteristic for the "Img" class is given in Table 5.49.2.

Table 5.49.2 Description of the "alt" characteristic for the "Img" class.
Descriptor | Definition
--- | ---
Characteristic Name | alt
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The replacement text for use when images are not available

### 5.49.3 "longdesc" Characteristic Description

The description of the "longdesc" characteristic for the "Img" class is given in Table 5.49.3.

Table 5.49.3 Description of the "longdesc" characteristic for the "Img" class.
Descriptor | Definition
--- | ---
Characteristic Name | longdesc
Data Type | AnyURI (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The address for a resource that contains the long description of the image.

### 5.49.4 "height" Characteristic Description

The description of the "height" characteristic for the "Img" class is given in Table 5.49.4.

Table 5.49.4 Description of the "height" characteristic for the "Img" class.
Descriptor | Definition
--- | ---
Characteristic Name | height
Data Type | Length
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The vertical dimension for the image.

### 5.49.5 "width" Characteristic Description

The description of the "width" characteristic for the "Img" class is given in Table 5.49.5.

Table 5.49.5 Description of the "width" characteristic for the "Img" class.
Descriptor | Definition
--- | ---
Characteristic Name | width
Data Type | Length
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The horizontal dimension for the image.

## 5.50 Index Class Description

The data model for the "Index" class is shown in Figure 5.50 and the accompanying definition in Table 5.50.

Figure 5.50 - Index class definitions.

Table 5.50 Description of the "Index" class.
Descriptor | Definition
--- | ---
Class Name | Index
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: n
Children | The set of children attributes are: logic
Description | The index operator takes a sub-expression with an ordered container value and any base-type. The result is the nth value of the container. The result has the same base-type as the sub-expression but single cardinality. The first value of a container has index 1, the second 2 and so on. 'n' must be a positive integer. If 'n' exceeds the number of values in the container (or the sub-expression is NULL) then the result of the index operator is NULL. If 'n' is an identifier, it is the value of 'n' at runtime that is used.

### 5.50.1 "n" Characteristic Description

The description of the "n" characteristic for the "Index" class is given in Table 5.50.1.

Table 5.50.1 Description of the "n" characteristic for the "Index" class.
Descriptor | Definition
--- | ---
Characteristic Name | n
Data Type | IntOrIdentifier
Value Space | The union consist of values of data-type(s): NCName (Primitive-type), Int (Primitive-type)
Scope | Global ("+")
Multiplicity | [1]
Description | Identification of the index ordinal value required.

### 5.50.2 "logic" Attribute Description

The description of the "logic" attribute for the "Index" class is given in Table 5.50.2.

Table 5.50.2 Description of the "logic" attribute for the "Index" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the insertion of the QTI expression.

## 5.51 InfoControl Class Description

The data model for the "InfoControl" class is shown in Figure 5.51 and the accompanying definition in Table 5.51.

Figure 5.51 - InfoControl class definitions.

Table 5.51 Description of the "InfoControl" class.
Descriptor | Definition
--- | ---
Class Name | InfoControl
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: BlockGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of characteristics are: title The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowStaticGroup
Description | The infoControl element is a means to provide the candidate with extra information about the item when s/he chooses to trigger the control. The extra information can be a hint, but could also be additional tools such as a ruler or a (JavaScript) calculator. Unlike endAttemptInteraction, triggering infoControl has no consequence for response processing. That means that its triggering won't be recorded, nor the candidate penalised for triggering it.

### 5.51.1 "title" Characteristic Description

The description of the "title" characteristic for the "InfoControl" class is given in Table 5.51.1.

Table 5.51.1 Description of the "title" characteristic for the "InfoControl" class.
Descriptor | Definition
--- | ---
Characteristic Name | title
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | This is the title that may be presented to the learner to indicate the action being supported e.g. the title for the hint.

### 5.51.2 "flowStaticGroup" Attribute Description

The description of the "flowStaticGroup" attribute for the "InfoControl" class is given in Table 5.51.2.

Table 5.51.2 Description of the "flowStaticGroup" attribute for the "InfoControl" class.
Descriptor | Definition
--- | ---
Attribute Name | flowStaticGroup
Data Type | FlowStaticGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract class that enables the arbitrary flow content, as defined for HTML, to be inserted.

## 5.52 InlineChoice Class Description

The data model for the "InlineChoice" class is shown in Figure 5.52 and the accompanying definition in Table 5.52.

Figure 5.52 - InlineChoice class definitions.

Table 5.52 Description of the "InlineChoice" class.
Descriptor | Definition
--- | ---
Class Name | InlineChoice
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: InlineChoiceInteraction
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of characteristics are: identifier fixed templateIdentifier showHide The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: inlineChoiceGroup
Description | A simple run of text to be displayed to the user, may be subject to variable value substitution with printedVariable.

### 5.52.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "InlineChoice" class is given in Table 5.52.1.

Table 5.52.1 Description of the "identifier" characteristic for the "InlineChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the choice. This identifier must not be used by any other choice or item variable.

### 5.52.2 "fixed" Characteristic Description

The description of the "fixed" characteristic for the "InlineChoice" class is given in Table 5.52.2.

Table 5.52.2 Description of the "fixed" characteristic for the "InlineChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | fixed
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If fixed is true for a choice then the position of this choice within the interaction must not be changed by the delivery engine even if the immediately enclosing interaction supports the shuffling of choices. If no value is specified then the choice is free to be shuffled. In Item Templates, the visibility of choices can be controlled by setting the value(s) of an associated template variable during template processing. For information about item templates see Item Templates.

### 5.52.3 "templateIdentifier" Characteristic Description

The description of the "templateIdentifier" characteristic for the "InlineChoice" class is given in Table 5.52.3.

Table 5.52.3 Description of the "templateIdentifier" characteristic for the "InlineChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The identifier of a template variable that must have a base-type of identifier and be either single of multiple cardinality. When the associated interaction is part of an Item Template the value of the identified template variable is used to control the visibility of the choice. When a choice is hidden it is not selectable and its content is not visible to the candidate unless otherwise stated.

### 5.52.4 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "InlineChoice" class is given in Table 5.52.4.

Table 5.52.4 Description of the "showHide" characteristic for the "InlineChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide characteristic determines how the visibility of the choice is controlled. If set to 'show' then the choice is hidden by default and shown only if the associated template variable matches, or contains, the identifier of the choice. If set to 'hide' then the choice is shown by default and hidden if the associated template variable matches, or contains, the choice's identifier.

### 5.52.5 "inlineChoiceGroup" Attribute Description

The description of the "inlineChoiceGroup" attribute for the "InlineChoice" class is given in Table 5.52.5.

Table 5.52.5 Description of the "inlineChoiceGroup" attribute for the "InlineChoice" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineChoiceGroup
Data Type | InlineChoiceGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract class to enable the insertion of the line content i.e. inline HTML content and other QTI-specific features.

## 5.53 InlineChoiceInteraction Class Description

The data model for the "InlineChoiceInteraction" class is shown in Figure 5.53 and the accompanying definition in Table 5.53.

Figure 5.53 - InlineChoiceInteraction class definitions.

Table 5.53 Description of the "InlineChoiceInteraction" class.
Descriptor | Definition
--- | ---
Class Name | InlineChoiceInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: FlowGroup InlineGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceFull
Characteristics | The set of characteristics are: shuffle required The set of inherited characteristics are: id class language label responseIdentifier base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: label inlineChoice
Description | An inline choice is an inlineInteraction that presents the user with a set of choices, each of which is a simple piece of text. The candidate's task is to select one of the choices. Unlike the choiceInteraction, the delivery engine must allow the candidate to review their choice within the context of the surrounding text. The inlineChoiceInteraction must be bound to a response variable with a baseType of identifier and single cardinality only.

### 5.53.1 "shuffle" Characteristic Description

The description of the "shuffle" characteristic for the "InlineChoiceInteraction" class is given in Table 5.53.1.

Table 5.53.1 Description of the "shuffle" characteristic for the "InlineChoiceInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | shuffle
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If the shuffle characteristic is true then the delivery engine must randomize the order in which the choices are initially presented, subject to the value of the fixed attribute of each choice.

### 5.53.2 "required" Characteristic Description

The description of the "required" characteristic for the "InlineChoiceInteraction" class is given in Table 5.53.2.

Table 5.53.2 Description of the "required" characteristic for the "InlineChoiceInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | required
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If 'true' then a choice must be selected by the candidate in order to form a valid response to the interaction.

### 5.53.3 "label" Attribute Description

The description of the "label" attribute for the "InlineChoiceInteraction" class is given in Table 5.53.3.

Table 5.53.3 Description of the "label" attribute for the "InlineChoiceInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | label
Data Type | Label
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This enables an annotation label to be defined. This is use to provide a visible label of the choice.

### 5.53.4 "inlineChoice" Attribute Description

The description of the "inlineChoice" attribute for the "InlineChoiceInteraction" class is given in Table 5.53.4.

Table 5.53.4 Description of the "inlineChoice" attribute for the "InlineChoiceInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineChoice
Data Type | InlineChoice
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | This is an abstract attribute that enables the creation of complex content. This is the ordered list of the choices that are displayed to the user. The order is the order of the choices presented to the user unless shuffle is true.

## 5.54 Inside Class Description

The data model for the "Inside" class is shown in Figure 5.54 and the accompanying definition in Table 5.54.

Figure 5.54 - Inside class definitions.

Table 5.54 Description of the "Inside" class.
Descriptor | Definition
--- | ---
Class Name | Inside
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: shape coords
Children | The set of children attributes are: logic
Description | The inside operator takes a single sub-expression which must have a baseType of point. The result is a single boolean with a value of 'true' if the given point is inside the area defined by shape and coords. If the sub-expression is a container the result is 'true' if any of the points are inside the area. If either sub-expression is NULL then the operator results in NULL.

### 5.54.1 "shape" Characteristic Description

The description of the "shape" characteristic for the "Inside" class is given in Table 5.54.1.

Table 5.54.1 Description of the "shape" characteristic for the "Inside" class.
Descriptor | Definition
--- | ---
Characteristic Name | shape
Data Type | Shape
Value Space | Enumerated value set of: { circle | default | ellipse | poly | rect }
Scope | Global ("+")
Multiplicity | [1]
Description | The shape of the area.

### 5.54.2 "coords" Characteristic Description

The description of the "coords" characteristic for the "Inside" class is given in Table 5.54.2.

Table 5.54.2 Description of the "coords" characteristic for the "Inside" class.
Descriptor | Definition
--- | ---
Characteristic Name | coords
Data Type | Coords
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The size and position of the area, interpreted in conjunction with the shape. The coords type provides the coordinates that determine the size and location of an area defined by a corresponding shape. The coordinates themselves are an ordered list of lengths (as defined in [XHTML, 10]). The interpretation of each length value is dependent on the value of the associated shape as follows. (a) rect: left-x, top-y, right-x, bottom-y; (b) circle: center-x, center-y, radius. Note. When the radius value is a percentage value, user agents should calculate the final radius value based on the associated object's width and height. The radius should be the smaller value of the two; (c) poly: x1, y1, x2, y2, ..., xN, yN. The first x and y coordinate pair and the last should be the same to close the polygon. When these coordinate values are not the same, user agents should infer an additional coordinate pair to close the polygon; (d) ellipse: center-x, center-y, h-radius, v-radius. Note that the ellipse shape is deprecated as it is not defined by XHTML; (e) default: no coordinates should be given.

### 5.54.3 "logic" Attribute Description

The description of the "logic" attribute for the "Inside" class is given in Table 5.54.3.

Table 5.54.3 Description of the "logic" attribute for the "Inside" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the required QTI expression to be identified.

## 5.55 InterpolationTable Class Description

The data model for the "InterpolationTable" class is shown in Figure 5.55 and the accompanying definition in Table 5.55.

Figure 5.55 - InterpolationTable class definitions.

Table 5.55 Description of the "InterpolationTable" class.
Descriptor | Definition
--- | ---
Class Name | InterpolationTable
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: LookupTable
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: defaultValue
Children | The set of children attributes are: interpolationTableEntry
Description | An interpolationTable transforms a source float (or integer) by finding the first interpolationTableEntry with a sourceValue that is less than or equal to (subject to includeBoundary) the source value. For example, an interpolation table can be used to map a raw numeric score onto an identifier representing a grade. It may also be used to implement numeric transformations such as those from a simple raw score to a value on a calibrated scale.

### 5.55.1 "defaultValue" Characteristic Description

The description of the "defaultValue" characteristic for the "InterpolationTable" class is given in Table 5.55.1.

Table 5.55.1 Description of the "defaultValue" characteristic for the "InterpolationTable" class.
Descriptor | Definition
--- | ---
Characteristic Name | defaultValue
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The default outcome value to be used when no matching tabel entry is found. If omitted, the NULL value is used.

### 5.55.2 "interpolationTableEntry" Attribute Description

The description of the "interpolationTableEntry" attribute for the "InterpolationTable" class is given in Table 5.55.2.

Table 5.55.2 Description of the "interpolationTableEntry" attribute for the "InterpolationTable" class.
Descriptor | Definition
--- | ---
Attribute Name | interpolationTableEntry
Data Type | InterpolationTableEntry
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | This is the set of interpolation table entries that constitute the interpolation table.

## 5.56 ItemBody Class Description

The data model for the "ItemBody" class is shown in Figure 5.56 and the accompanying definition in Table 5.56.

Figure 5.56 - ItemBody class definitions.

Table 5.56 Description of the "ItemBody" class.
Descriptor | Definition
--- | ---
Class Name | ItemBody
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: AssessmentItem
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: id class language label dir
Children | The set of children attributes are: itemBodySelect
Description | The item body contains the text, graphics, media objects and interactions that describe the item's content and information about how it is structured. The body is presented by combining it with stylesheet information, either explicitly or implicitly using the default style rules of the delivery or authoring system. The body must be presented to the candidate when the associated item session is in the interacting state. In this state, the candidate must be able to interact with each of the visible interactions and therefore set or update the values of the associated response variables. The body may be presented to the candidate when the item session is in the closed or review state. In these states, although the candidate's responses should be visible, the interactions must be disabled so as to prevent the candidate from setting or updating the values of the associated response variables. Finally, the body may be presented to the candidate in the solution state, in which case the correct values of the response variables must be visible and the associated interactions disabled. The content model employed by this specification uses many concepts taken directly from [XHTML, 10]. In effect, this part of the specification defines a profile of XHTML. Only some of the elements defined in XHTML are allowable in an assessmentItem and of those that are, some have additional constraints placed on their attributes. Only those elements from XHTML that are explicitly defined within this specification can be used. See XHTML Elements for details. Finally, this specification defines some new elements which are used to represent the interactions and to control the display of Integrated Feedback and content restricted to one or more of the defined content views.

### 5.56.1 "id" Characteristic Description

The description of the "id" characteristic for the "ItemBody" class is given in Table 5.56.1.

Table 5.56.1 Description of the "id" characteristic for the "ItemBody" class.
Descriptor | Definition
--- | ---
Characteristic Name | id
Data Type | UniqueIdentifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The 'id' of a body element must be unique within the item. This is used to enable reference links for other features e.g. APIP accessibility.

### 5.56.2 "class" Characteristic Description

The description of the "class" characteristic for the "ItemBody" class is given in Table 5.56.2.

Table 5.56.2 Description of the "class" characteristic for the "ItemBody" class.
Descriptor | Definition
--- | ---
Characteristic Name | class
Data Type | StringList
Value Space | The list consist of values of data-type(s): String (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | Classes can be assigned to individual body elements. Multiple class names can be given. These class names identify the element as being a member of the listed classes. Membership of a class can be used by authoring systems to distinguish between content objects that are not differentiated by this specification. Typically, this information is used to apply different formatting based on definitions in an associated stylesheet, but can also be used for user interface designs that go beyond.

### 5.56.3 "language" Characteristic Description

The description of the "language" characteristic for the "ItemBody" class is given in Table 5.56.3.

Table 5.56.3 Description of the "language" characteristic for the "ItemBody" class.
Descriptor | Definition
--- | ---
Characteristic Name | language
Data Type | Language (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The main language of the element. This characteristic is optional and will usually be inherited from the enclosing element.

### 5.56.4 "label" Characteristic Description

The description of the "label" characteristic for the "ItemBody" class is given in Table 5.56.4.

Table 5.56.4 Description of the "label" characteristic for the "ItemBody" class.
Descriptor | Definition
--- | ---
Characteristic Name | label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The label characteristic provides authoring systems with a mechanism for labelling elements of the content model with application specific data. If an item uses labels then values for the associated toolName and toolVersion attributes must also be provided.

### 5.56.5 "dir" Characteristic Description

The description of the "dir" characteristic for the "ItemBody" class is given in Table 5.56.5.

Table 5.56.5 Description of the "dir" characteristic for the "ItemBody" class.
Descriptor | Definition
--- | ---
Characteristic Name | dir
Data Type | DIR
Value Space | Enumerated value set of: { ltr | rtl | auto } Default = "auto".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Specifies the directionality of the text within the itemBody as a whole.

### 5.56.6 "itemBodySelect" Attribute Description

The description of the "itemBodySelect" attribute for the "ItemBody" class is given in Table 5.56.6.

Table 5.56.6 Description of the "itemBodySelect" attribute for the "ItemBody" class.
Descriptor | Definition
--- | ---
Attribute Name | itemBodySelect
Data Type | ItemBodySelect
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1.. unbounded]
Description | This is an abstract attribute that enables the complex content for the Item be be constructed. This content consists of the rubric block(s), HTML block tags and QTI interactions.

## 5.57 LI Class Description

The data model for the "LI" class is shown in Figure 5.57 and the accompanying definition in Table 5.57.

Figure 5.57 - LI class definitions.

Table 5.57 Description of the "LI" class.
Descriptor | Definition
--- | ---
Class Name | LI
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: OUL
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowGroup
Description | Provides the HTML 'li' tag functionality. The 'li' tag represents a list item. If its parent tag is an 'ol' or 'ul', then the tag is an item of the parent tag's list, as defined for those elements. Otherwise, the list item has no defined list-related relationship to any other 'li' tag. If the parent element is an 'ol' tag, then the 'li' tag has an ordinal value.

### 5.57.1 "flowGroup" Attribute Description

The description of the "flowGroup" attribute for the "LI" class is given in Table 5.57.1.

Table 5.57.1 Description of the "flowGroup" attribute for the "LI" class.
Descriptor | Definition
--- | ---
Attribute Name | flowGroup
Data Type | FlowGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the HTML-defined flow content to be added as children of the 'li' tag.

## 5.58 Label Class Description

The data model for the "Label" class is shown in Figure 5.58 and the accompanying definition in Table 5.58.

Figure 5.58 - Label class definitions.

Table 5.58 Description of the "Label" class.
Descriptor | Definition
--- | ---
Class Name | Label
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: InlineChoiceInteraction
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: inlineChoiceGroup
Description | This allows the creation of human readable labels that will be placed close to the associated displayed content artefacts. These labels are used with inline choice interactions.

### 5.58.1 "inlineChoiceGroup" Attribute Description

The description of the "inlineChoiceGroup" attribute for the "Label" class is given in Table 5.58.1.

Table 5.58.1 Description of the "inlineChoiceGroup" attribute for the "Label" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineChoiceGroup
Data Type | InlineChoiceGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the inline content to be entered including the HTML inline tags.

## 5.59 Logic0toMany Class Description

The data model for the "Logic0toMany" class is shown in Figure 5.59 and the accompanying definition in Table 5.59.

Figure 5.59 - Logic0toMany class definitions.

Table 5.59 Description of the "Logic0toMany" class.
Descriptor | Definition
--- | ---
Class Name | Logic0toMany
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: logic
Description | This is the container for the combination of the zero or more child expressions (see the ExpressionGroup abstract class for the details on the permitted expressions).

### 5.59.1 "logic" Attribute Description

The description of the "logic" attribute for the "Logic0toMany" class is given in Table 5.59.1.

Table 5.59.1 Description of the "logic" attribute for the "Logic0toMany" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is the abstract attribute that enables the unbounded set of child expressions to be identified (see the abstract class ExpressionGroup for the set of permitted expressions).

## 5.60 Logic1toMany Class Description

The data model for the "Logic1toMany" class is shown in Figure 5.60 and the accompanying definition in Table 5.60.

Figure 5.60 - Logic1toMany class definitions.

Table 5.60 Description of the "Logic1toMany" class.
Descriptor | Definition
--- | ---
Class Name | Logic1toMany
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: logic
Description | This is the container for the combination of the one or more child expressions (see the ExpressionGroup abstract class for the details on the permitted expressions).

### 5.60.1 "logic" Attribute Description

The description of the "logic" attribute for the "Logic1toMany" class is given in Table 5.60.1.

Table 5.60.1 Description of the "logic" attribute for the "Logic1toMany" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1.. unbounded]
Description | This is the abstract attribute that enables the set of child expressions to be identified (see the abstract class ExpressionGroup for the set of permitted expressions).

## 5.61 LogicPair Class Description

The data model for the "LogicPair" class is shown in Figure 5.61 and the accompanying definition in Table 5.61.

Figure 5.61 - LogicPair class definitions.

Table 5.61 Description of the "LogicPair" class.
Descriptor | Definition
--- | ---
Class Name | LogicPair
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: logic
Description | This is the container for the combination of the two child expressions (see the ExpressionGroup abstract class for the details on the permitted expressions).

### 5.61.1 "logic" Attribute Description

The description of the "logic" attribute for the "LogicPair" class is given in Table 5.61.1.

Table 5.61.1 Description of the "logic" attribute for the "LogicPair" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [2]
Description | This is the abstract attribute that enables the set of child expressions to be identified (see the abstract class ExpressionGroup for the set of permitted expressions).

## 5.62 LogicSingle Class Description

The data model for the "LogicSingle" class is shown in Figure 5.62 and the accompanying definition in Table 5.62.

Figure 5.62 - LogicSingle class definitions.

Table 5.62 Description of the "LogicSingle" class.
Descriptor | Definition
--- | ---
Class Name | LogicSingle
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: AssessmentItemRef AssessmentSection ExpressionGroup NumericExpressionGroup TestPart
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: logic
Description | This is the container for the combination of the single child expression (see the ExpressionGroup abstract class for the details on the permitted expressions).

### 5.62.1 "logic" Attribute Description

The description of the "logic" attribute for the "LogicSingle" class is given in Table 5.62.1.

Table 5.62.1 Description of the "logic" attribute for the "LogicSingle" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is the abstract attribute that enables the child expression to be identified (see the abstract class ExpressionGroup for the set of permitted expressions).

## 5.63 LookupOutcomeValue Class Description

The data model for the "LookupOutcomeValue" class is shown in Figure 5.63 and the accompanying definition in Table 5.63.

Figure 5.63 - LookupOutcomeValue class definitions.

Table 5.63 Description of the "LookupOutcomeValue" class.
Descriptor | Definition
--- | ---
Class Name | LookupOutcomeValue
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: OutcomeRule ResponseRuleGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: identifier
Children | The set of children attributes are: expressionGroup
Description | The lookupOutcomeValue rule sets the value of an outcome variable to the value obtained by looking up the value of the associated expression in the lookupTable associated with the outcome's declaration.

### 5.63.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "LookupOutcomeValue" class is given in Table 5.63.1.

Table 5.63.1 Description of the "identifier" characteristic for the "LookupOutcomeValue" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the outcome variable to be set.

### 5.63.2 "expressionGroup" Attribute Description

The description of the "expressionGroup" attribute for the "LookupOutcomeValue" class is given in Table 5.63.2.

Table 5.63.2 Description of the "expressionGroup" attribute for the "LookupOutcomeValue" class.
Descriptor | Definition
--- | ---
Attribute Name | expressionGroup
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the single expression to be defined. An expression which must have single cardinality and an effective baseType of either integer, float or duration. Integer type is required when the associated table is a matchTable.

## 5.64 Mapping Class Description

The data model for the "Mapping" class is shown in Figure 5.64 and the accompanying definition in Table 5.64.

Figure 5.64 - Mapping class definitions.

Table 5.64 Description of the "Mapping" class.
Descriptor | Definition
--- | ---
Class Name | Mapping
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ResponseDeclaration
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: lowerBound upperBound defaultValue
Children | The set of children attributes are: mapEntry
Description | A special class used to create a mapping from a source set of any baseType (except file and duration) to a single float. Note that mappings from values of base type float should be avoided due to the difficulty of matching floating point values, see the match operator for more details. When mapping containers the result is the sum of the mapped values from the target set. See the MapResponse class for details.

### 5.64.1 "lowerBound" Characteristic Description

The description of the "lowerBound" characteristic for the "Mapping" class is given in Table 5.64.1.

Table 5.64.1 Description of the "lowerBound" characteristic for the "Mapping" class.
Descriptor | Definition
--- | ---
Characteristic Name | lowerBound
Data Type | Double (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The lower bound for the result of mapping a container. If unspecified there is no lower-bound.

### 5.64.2 "upperBound" Characteristic Description

The description of the "upperBound" characteristic for the "Mapping" class is given in Table 5.64.2.

Table 5.64.2 Description of the "upperBound" characteristic for the "Mapping" class.
Descriptor | Definition
--- | ---
Characteristic Name | upperBound
Data Type | Double (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The upper bound for the result of mapping a container. If unspecified there is no upper-bound.

### 5.64.3 "defaultValue" Characteristic Description

The description of the "defaultValue" characteristic for the "Mapping" class is given in Table 5.64.3.

Table 5.64.3 Description of the "defaultValue" characteristic for the "Mapping" class.
Descriptor | Definition
--- | ---
Characteristic Name | defaultValue
Data Type | Double (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The default value from the target set to be used when no explicit mapping for a source value is given.

### 5.64.4 "mapEntry" Attribute Description

The description of the "mapEntry" attribute for the "Mapping" class is given in Table 5.64.4.

Table 5.64.4 Description of the "mapEntry" attribute for the "Mapping" class.
Descriptor | Definition
--- | ---
Attribute Name | mapEntry
Data Type | MapEntry
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | The map is defined by a set of mapEntries, each of which maps a single value from the source set onto a single float.

## 5.65 MatchInteraction Class Description

The data model for the "MatchInteraction" class is shown in Figure 5.65 and the accompanying definition in Table 5.65.

Figure 5.65 - MatchInteraction class definitions.

Table 5.65 Description of the "MatchInteraction" class.
Descriptor | Definition
--- | ---
Class Name | MatchInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BasePromptInteraction
Characteristics | The set of characteristics are: shuffle maxAssociations minAssociations The set of inherited characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: simpleMatchSet The set of inherited children attributes are: prompt
Description | A match interaction is a blockInteraction that presents candidates with two sets of choices and allows them to create associates between pairs of choices in the two sets, but not between pairs of choices in the same set. Further restrictions can still be placed on the allowable associations using the matchMax characteristic of the choices. The matchInteraction must be bound to a response variable with base-type directedPair and either single or multiple cardinality.

### 5.65.1 "shuffle" Characteristic Description

The description of the "shuffle" characteristic for the "MatchInteraction" class is given in Table 5.65.1.

Table 5.65.1 Description of the "shuffle" characteristic for the "MatchInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | shuffle
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If the shuffle characteristic is 'true' then the delivery engine must randomize the order in which the choices are initially presented, subject to the value of the fixed attribute of each choice.

### 5.65.2 "maxAssociations" Characteristic Description

The description of the "maxAssociations" characteristic for the "MatchInteraction" class is given in Table 5.65.2.

Table 5.65.2 Description of the "maxAssociations" characteristic for the "MatchInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxAssociations
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "1".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The maximum number of associations that the candidate is allowed to make. If maxAssociations is 0 then there is no restriction. If maxAssociations is greater than 1 (or 0) then the interaction must be bound to a response with multiple cardinality.

### 5.65.3 "minAssociations" Characteristic Description

The description of the "minAssociations" characteristic for the "MatchInteraction" class is given in Table 5.65.3.

Table 5.65.3 Description of the "minAssociations" characteristic for the "MatchInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | minAssociations
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of associations that the candidate is required to make to form a valid response. If minAssociations is 0 then the candidate is not required to make any associations. minAssociations must be less than or equal to the limit imposed by maxAssociations.

### 5.65.4 "simpleMatchSet" Attribute Description

The description of the "simpleMatchSet" attribute for the "MatchInteraction" class is given in Table 5.65.4.

Table 5.65.4 Description of the "simpleMatchSet" attribute for the "MatchInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | simpleMatchSet
Data Type | SimpleMatchSet
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [2]
Description | The two sets of choices, the first set defines the source choices and the second set the targets.

## 5.66 MatchTable Class Description

The data model for the "MatchTable" class is shown in Figure 5.66 and the accompanying definition in Table 5.66.

Figure 5.66 - MatchTable class definitions.

Table 5.66 Description of the "MatchTable" class.
Descriptor | Definition
--- | ---
Class Name | MatchTable
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: LookupTable
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: defaultValue
Children | The set of children attributes are: matchTableEntry
Description | A matchTable transforms a source integer by finding the first matchTableEntry with an exact match to the source.

### 5.66.1 "defaultValue" Characteristic Description

The description of the "defaultValue" characteristic for the "MatchTable" class is given in Table 5.66.1.

Table 5.66.1 Description of the "defaultValue" characteristic for the "MatchTable" class.
Descriptor | Definition
--- | ---
Characteristic Name | defaultValue
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The default outcome value to be used when no matching table entry is found. If omitted, the NULL value is used.

### 5.66.2 "matchTableEntry" Attribute Description

The description of the "matchTableEntry" attribute for the "MatchTable" class is given in Table 5.66.2.

Table 5.66.2 Description of the "matchTableEntry" attribute for the "MatchTable" class.
Descriptor | Definition
--- | ---
Attribute Name | matchTableEntry
Data Type | MatchTableEntry
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | The set of MatchTableEntry allow the definition of each entry in the table.

## 5.67 MathOperator Class Description

The data model for the "MathOperator" class is shown in Figure 5.67 and the accompanying definition in Table 5.67.

Figure 5.67 - MathOperator class definitions.

Table 5.67 Description of the "MathOperator" class.
Descriptor | Definition
--- | ---
Class Name | MathOperator
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: name
Children | The set of children attributes are: logic
Description | The mathOperator operator takes 1 or more sub-expressions which all have single cardinality and have numerical base-types. The trigonometric functions, sin, cos and tan, take one argument in radians, which evaluates to a single float. Other functions take one numerical argument. Further functions might take more than one numerical argument, e.g. atan2 (two argument arc tan). The result is a single float, except for the functions signum, floor and ceil, which return a single integer. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions falls outside the natural domain of the function called by mathOperator, e.g. log(0) or asin(2), then the result is NULL.

### 5.67.1 "name" Characteristic Description

The description of the "name" characteristic for the "MathOperator" class is given in Table 5.67.1.

Table 5.67.1 Description of the "name" characteristic for the "MathOperator" class.
Descriptor | Definition
--- | ---
Characteristic Name | name
Data Type | MathOperatorName
Value Space | Enumerated value set of: { sin | cos | tan | sec | csc | cot | asin | acos | atan | atan2 | asec | acsc | acot | sinh | cosh | tanh | sech | csch | coth | log | ln | exp | abs | signum | floor | ceil | toDegrees | toRadians }
Scope | Global ("+")
Multiplicity | [1]
Description | This is the name of the math operator (this is from an enumerated list).

### 5.67.2 "logic" Attribute Description

The description of the "logic" attribute for the "MathOperator" class is given in Table 5.67.2.

Table 5.67.2 Description of the "logic" attribute for the "MathOperator" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1.. unbounded]
Description | The mathOperator operator takes 1 or more sub-expressions which all have single cardinality and have numerical base-types. The trigonometric functions, sin, cos and tan, take one argument in radians, which evaluates to a single float. Other functions take one numerical argument. Further functions might take more than one numerical argument, e.g. atan2 (two argument arc tan). The result is a single float, except for the functions signum, floor and ceil, which return a single integer. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions falls outside the natural domain of the function called by mathOperator, e.g. log(0) or asin(2), then the result is NULL. See Subsection 2.12 for the set of associated rules.

## 5.68 MediaInteraction Class Description

The data model for the "MediaInteraction" class is shown in Figure 5.68 and the accompanying definition in Table 5.68.

Figure 5.68 - MediaInteraction class definitions.

Table 5.68 Description of the "MediaInteraction" class.
Descriptor | Definition
--- | ---
Class Name | MediaInteraction
Class Type | Container [ Selection ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BasePromptInteraction
Characteristics | The set of characteristics are: autostart minPlays maxPlays loop coords The set of inherited characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: object audio video The set of inherited children attributes are: prompt
Description | The Media Interaction allows more control over the way the candidate interacts with a time-based media object and allows the number of times the media object was experienced to be reported in the value of the associated response variable, which must be of base-type integer and single cardinality.

### 5.68.1 "autostart" Characteristic Description

The description of the "autostart" characteristic for the "MediaInteraction" class is given in Table 5.68.1.

Table 5.68.1 Description of the "autostart" characteristic for the "MediaInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | autostart
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The autostart characteristic determines if the media object should begin as soon as the candidate starts the attempt (true) or if the media object should be started under the control of the candidate (false).

### 5.68.2 "minPlays" Characteristic Description

The description of the "minPlays" characteristic for the "MediaInteraction" class is given in Table 5.68.2.

Table 5.68.2 Description of the "minPlays" characteristic for the "MediaInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | minPlays
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minPlays attribute indicates that the media object should be played a minimum number of times by the candidate. The techniques required to enforce this will vary from system to system, in some systems it may not be possible at all. By default there is no minimum. Failure to play the media object the minimum number of times constitutes an invalid response.

### 5.68.3 "maxPlays" Characteristic Description

The description of the "maxPlays" characteristic for the "MediaInteraction" class is given in Table 5.68.3.

Table 5.68.3 Description of the "maxPlays" characteristic for the "MediaInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxPlays
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The maxPlays attribute indicates that the media object can be played at most maxPlays times - it must not be possible for the candidate to play the media object more than maxPlay times. A value of 0 (the default) indicates that there is no limit.

### 5.68.4 "loop" Characteristic Description

The description of the "loop" characteristic for the "MediaInteraction" class is given in Table 5.68.4.

Table 5.68.4 Description of the "loop" characteristic for the "MediaInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | loop
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The loop attribute is used to set continuous play mode. In continuous play mode, once the media object has started to play it should play continuously (subject to maxPlays).

### 5.68.5 "coords" Characteristic Description

The description of the "coords" characteristic for the "MediaInteraction" class is given in Table 5.68.5.

Table 5.68.5 Description of the "coords" characteristic for the "MediaInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | coords
Data Type | Coords
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This provides the coordinates that determine the size and location of an area defined by a corresponding rectange as defined by: left-x, top-y, right-x, bottom-y.

### 5.68.6 "object" Attribute Description

The description of the "object" attribute for the "MediaInteraction" class is given in Table 5.68.6.

Table 5.68.6 Description of the "object" attribute for the "MediaInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | object
Data Type | Object
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The media object itself.

### 5.68.7 "audio" Attribute Description

The description of the "audio" attribute for the "MediaInteraction" class is given in Table 5.68.7.

Table 5.68.7 Description of the "audio" attribute for the "MediaInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | audio
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | Permits the insertion audio (as per the HTML5 tag).of

### 5.68.8 "video" Attribute Description

The description of the "video" attribute for the "MediaInteraction" class is given in Table 5.68.8.

Table 5.68.8 Description of the "video" attribute for the "MediaInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | video
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | Permits the insertion of a video (as per the HTML5 tag).

## 5.69 ModalFeedback Class Description

The data model for the "ModalFeedback" class is shown in Figure 5.69 and the accompanying definition in Table 5.69.

Figure 5.69 - ModalFeedback class definitions.

Table 5.69 Description of the "ModalFeedback" class.
Descriptor | Definition
--- | ---
Class Name | ModalFeedback
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: AssessmentItem
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: outcomeIdentifier showHide identifier title
Children | The set of children attributes are: feedbackFlowStaticGroup stylesheet apipAccessibility
Description | Modal feedback is shown to the candidate directly following response processing. The value of an outcome variable is used in conjunction with the showHide and identifier characteristics to determine whether or not the feedback is shown. The content of the modalFeedback must not contain any interactions.

### 5.69.1 "outcomeIdentifier" Characteristic Description

The description of the "outcomeIdentifier" characteristic for the "ModalFeedback" class is given in Table 5.69.1.

Table 5.69.1 Description of the "outcomeIdentifier" characteristic for the "ModalFeedback" class.
Descriptor | Definition
--- | ---
Characteristic Name | outcomeIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of an outcome variable that must have a base-type of identifier and be of either single or multiple cardinality. The visibility of the feedback is controlled by assigning a value (or values) to this outcome variable during responseProcessing.

### 5.69.2 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "ModalFeedback" class is given in Table 5.69.2.

Table 5.69.2 Description of the "showHide" characteristic for the "ModalFeedback" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide }
Scope | Global ("+")
Multiplicity | [1]
Description | The showHide characteristic determines how the visibility of the feedbackElement is controlled. If set to 'show' then the feedback is hidden by default and shown only if the associated outcome variable matches, or contains, the value of the identifier attribute. If set to 'hide' then the feedback is shown by default and hidden if the associated outcome variable matches, or contains, the value of the identifier characteristic.

### 5.69.3 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "ModalFeedback" class is given in Table 5.69.3.

Table 5.69.3 Description of the "identifier" characteristic for the "ModalFeedback" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier that determines the visibility of the feedback in conjunction with the showHide characteristic.

### 5.69.4 "title" Characteristic Description

The description of the "title" characteristic for the "ModalFeedback" class is given in Table 5.69.4.

Table 5.69.4 Description of the "title" characteristic for the "ModalFeedback" class.
Descriptor | Definition
--- | ---
Characteristic Name | title
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | Delivery engines are not required to present the title to the candidate but may do so, for example as the title of a modal pop-up window.

### 5.69.5 "feedbackFlowStaticGroup" Attribute Description

The description of the "feedbackFlowStaticGroup" attribute for the "ModalFeedback" class is given in Table 5.69.5.

Table 5.69.5 Description of the "feedbackFlowStaticGroup" attribute for the "ModalFeedback" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackFlowStaticGroup
Data Type | FeedbackFlowStaticGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child that enables the definition of the actal content to be displayed. The content of the modalFeedback must not contain any interactions.

### 5.69.6 "stylesheet" Attribute Description

The description of the "stylesheet" attribute for the "ModalFeedback" class is given in Table 5.69.6.

Table 5.69.6 Description of the "stylesheet" attribute for the "ModalFeedback" class.
Descriptor | Definition
--- | ---
Attribute Name | stylesheet
Data Type | StyleSheet
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | Permits the identification of the stylesheets that are to be use to define the styling of the content.

### 5.69.7 "apipAccessibility" Attribute Description

The description of the "apipAccessibility" attribute for the "ModalFeedback" class is given in Table 5.69.7.

Table 5.69.7 Description of the "apipAccessibility" attribute for the "ModalFeedback" class.
Descriptor | Definition
--- | ---
Attribute Name | apipAccessibility
Data Type | APIPAccessibility
Value Space | Imported
Scope | Global ("+")
Multiplicity | [0..1]
Description | Enables the association of the corresponding APIP accessibility to be use for this feedback [APIP, 14].

## 5.70 NumericLogic1toMany Class Description

The data model for the "NumericLogic1toMany" class is shown in Figure 5.70 and the accompanying definition in Table 5.70.

Figure 5.70 - NumericLogic1toMany class definitions.

Table 5.70 Description of the "NumericLogic1toMany" class.
Descriptor | Definition
--- | ---
Class Name | NumericLogic1toMany
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: logic
Description | This is the container for the combination of the one or more child numeric expressions (see the NumericExpressionGroup abstract class for the details on the permitted expressions).

### 5.70.1 "logic" Attribute Description

The description of the "logic" attribute for the "NumericLogic1toMany" class is given in Table 5.70.1.

Table 5.70.1 Description of the "logic" attribute for the "NumericLogic1toMany" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | NumericExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1.. unbounded]
Description | This is the abstract attribute that enables the set of child numeric expressions to be identified (see the abstract class NumericExpressionGroup for the set of permitted expressions).

## 5.71 OUL Class Description

The data model for the "OUL" class is shown in Figure 5.71 and the accompanying definition in Table 5.71.

Figure 5.71 - OUL class definitions.

Table 5.71 Description of the "OUL" class.
Descriptor | Definition
--- | ---
Class Name | OUL
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockContentModel FlowContentModel
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: li
Description | Provides the HTML 'ol' and 'ul' tag functionalities. These provide the ordered and unordered list capability. The 'ol' tag represents a list of items, where the items have been intentionally ordered, such that changing the order would change the meaning of the document. The 'ul' tags have no expicit order relationship. The items of the list are the 'li' child nodes.

### 5.71.1 "li" Attribute Description

The description of the "li" attribute for the "OUL" class is given in Table 5.71.1.

Table 5.71.1 Description of the "li" attribute for the "OUL" class.
Descriptor | Definition
--- | ---
Attribute Name | li
Data Type | LI
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The list of child 'li' tags i.e. the HTML 'li' tags. This is the content list.

## 5.72 Object Class Description

The data model for the "Object" class is shown in Figure 5.72 and the accompanying definition in Table 5.72.

Figure 5.72 - Object class definitions.

Table 5.72 Description of the "Object" class.
Descriptor | Definition
--- | ---
Class Name | Object
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: DrawingInteraction FlowContentModel GapImg GraphicAssociateInteraction GraphicGapMatchInteraction GraphicOrderInteraction HotspotInteraction InlineContentModel MediaInteraction PositionObjectInteraction PositionObjectStage SelectPointInteraction
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of characteristics are: data type width height The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: objectFlowGroup
Description | This is the representation for the HTML 'object' tag.

### 5.72.1 "data" Characteristic Description

The description of the "data" characteristic for the "Object" class is given in Table 5.72.1.

Table 5.72.1 Description of the "data" characteristic for the "Object" class.
Descriptor | Definition
--- | ---
Characteristic Name | data
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The data characteristic provides a URI for locating the data associated with the object.

### 5.72.2 "type" Characteristic Description

The description of the "type" characteristic for the "Object" class is given in Table 5.72.2.

Table 5.72.2 Description of the "type" characteristic for the "Object" class.
Descriptor | Definition
--- | ---
Characteristic Name | type
Data Type | MimeType
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The Mime-type for the object.

### 5.72.3 "width" Characteristic Description

The description of the "width" characteristic for the "Object" class is given in Table 5.72.3.

Table 5.72.3 Description of the "width" characteristic for the "Object" class.
Descriptor | Definition
--- | ---
Characteristic Name | width
Data Type | Length
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The width of the canvas for the object.

### 5.72.4 "height" Characteristic Description

The description of the "height" characteristic for the "Object" class is given in Table 5.72.4.

Table 5.72.4 Description of the "height" characteristic for the "Object" class.
Descriptor | Definition
--- | ---
Characteristic Name | height
Data Type | Length
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The height of the canvas for the object.

### 5.72.5 "objectFlowGroup" Attribute Description

The description of the "objectFlowGroup" attribute for the "Object" class is given in Table 5.72.5.

Table 5.72.5 Description of the "objectFlowGroup" attribute for the "Object" class.
Descriptor | Definition
--- | ---
Attribute Name | objectFlowGroup
Data Type | ObjectFlowGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | An abstract attribute that enables the relevant complex content/parameters for the object to be defined.

## 5.73 OrderInteraction Class Description

The data model for the "OrderInteraction" class is shown in Figure 5.73 and the accompanying definition in Table 5.73.

Figure 5.73 - OrderInteraction class definitions.

Table 5.73 Description of the "OrderInteraction" class.
Descriptor | Definition
--- | ---
Class Name | OrderInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BasePromptInteraction
Characteristics | The set of characteristics are: shuffle minChoices maxChoices orientation The set of inherited characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: simpleChoice The set of inherited children attributes are: prompt
Description | In an Order Interaction the candidate's task is to reorder the choices, the order in which the choices are displayed initially is significant. By default the candidate's task is to order all of the choices but a subset of the choices can be requested using the maxChoices and minChoices attributes. When specified the candidate must select a subset of the choices and impose an ordering on them.

### 5.73.1 "shuffle" Characteristic Description

The description of the "shuffle" characteristic for the "OrderInteraction" class is given in Table 5.73.1.

Table 5.73.1 Description of the "shuffle" characteristic for the "OrderInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | shuffle
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If the shuffle characteristic is 'true' then the delivery engine must randomize the order in which the choices are initially presented, subject to the value of the fixed attribute of each choice.

### 5.73.2 "minChoices" Characteristic Description

The description of the "minChoices" characteristic for the "OrderInteraction" class is given in Table 5.73.2.

Table 5.73.2 Description of the "minChoices" characteristic for the "OrderInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | minChoices
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of choices that the candidate must select and order to form a valid response to the interaction. If specified, minChoices must be '1' or greater but must not exceed the number of choices available. If unspecified, all of the choices must be ordered and maxChoices is ignored.'

### 5.73.3 "maxChoices" Characteristic Description

The description of the "maxChoices" characteristic for the "OrderInteraction" class is given in Table 5.73.3.

Table 5.73.3 Description of the "maxChoices" characteristic for the "OrderInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxChoices
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The maximum number of choices that the candidate may select and order when responding to the interaction. Used in conjunction with minChoices, if specified, maxChoices must be greater than or equal to minChoices and must not exceed the number of choices available. If unspecified, all of the choices may be ordered.

### 5.73.4 "orientation" Characteristic Description

The description of the "orientation" characteristic for the "OrderInteraction" class is given in Table 5.73.4.

Table 5.73.4 Description of the "orientation" characteristic for the "OrderInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | orientation
Data Type | Orientation
Value Space | Enumerated value set of: { horizontal | vertical }
Scope | Global ("+")
Multiplicity | [0..1]
Description | The orientation attribute provides a hint to rendering systems that the ordering has an inherent vertical or horizontal interpretation.

### 5.73.5 "simpleChoice" Attribute Description

The description of the "simpleChoice" attribute for the "OrderInteraction" class is given in Table 5.73.5.

Table 5.73.5 Description of the "simpleChoice" attribute for the "OrderInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | simpleChoice
Data Type | SimpleChoice
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | An ordered list of the choices that are displayed to the user. The order is the initial order of the choices presented to the user unless shuffle is true.

## 5.74 Ordering Class Description

The data model for the "Ordering" class is shown in Figure 5.74 and the accompanying definition in Table 5.74.

Figure 5.74 - Ordering class definitions.

Table 5.74 Description of the "Ordering" class.
Descriptor | Definition
--- | ---
Class Name | Ordering
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: AssessmentSection
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: shuffle extension
Children | The set of children attributes are: extensions
Description | The ordering class specifies the rule used to arrange the child elements of a section following selection. If no ordering rule is given, assume that the elements are to be ordered in the order in which they are defined. A sub-section is always treated as a single block for selection but the way it is treated when shuffling depends on its visibility. A visible sub-section is always treated as a single block but an invisible sub-section is only treated as a single block if its keepTogether characteristic is 'true'. Otherwise, the child elements of the invisible sub-section are mixed into the parent's selection prior to shuffling. The ordering class also provides an opportunity for extensions to this specification to include support for more complex ordering algorithms. The selection and ordering rules define a sequence of items for each instance of the test. The sequence starts with the first item of the first section of the first test part and continues through to the last item of the last section of the last test part. This sequence is constant throughout the test. Normally this is the logical sequence perceived by the candidate but the use of preConditions and/or branchRules can affect the specific path taken. The use of selection with replacement enables two or more instances of an item referred to by the same assessmentItemRef to appear in the sequence of items for a test. It is therefore an error to make such an item the target of a branchRule. Furthermore, when reporting test results the sequence number of each item must also be reported to avoid ambiguity. See QTI Results Reporting [QTI, 16c]. The ordering class also provides an opportunity for extensions to this specification to include support for more complex ordering algorithms.

### 5.74.1 "shuffle" Characteristic Description

The description of the "shuffle" characteristic for the "Ordering" class is given in Table 5.74.1.

Table 5.74.1 Description of the "shuffle" characteristic for the "Ordering" class.
Descriptor | Definition
--- | ---
Characteristic Name | shuffle
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If 'true' causes the order of the child elements to be randomized. If 'false' uses the order in which the child elements are defined.

### 5.74.2 "extension" Characteristic Description

The description of the "extension" characteristic for the "Ordering" class is given in Table 5.74.2.

Table 5.74.2 Description of the "extension" characteristic for the "Ordering" class.
Descriptor | Definition
--- | ---
Characteristic Name | extension
Data Type | Namespace (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is an extension point. It allows new proprietary characteristics to be defined and used for the ordering. The extension mechanism is dependent on the form of binding.

### 5.74.3 "extensions" Attribute Description

The description of the "extensions" attribute for the "Ordering" class is given in Table 5.74.3.

Table 5.74.3 Description of the "extensions" attribute for the "Ordering" class.
Descriptor | Definition
--- | ---
Attribute Name | extensions
Data Type | NamespaceLax (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is an extension point to enable any set of child tags to be entered. The child tags must be new tags i.e. not reused QTI ASI tags. Note that this class is used to support the definition of all of the types of custom interactions used in the content.

## 5.75 OutcomeCondition Class Description

The data model for the "OutcomeCondition" class is shown in Figure 5.75 and the accompanying definition in Table 5.75.

Figure 5.75 - OutcomeCondition class definitions.

Table 5.75 Description of the "OutcomeCondition" class.
Descriptor | Definition
--- | ---
Class Name | OutcomeCondition
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: OutcomeRule
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: outcomeIf outcomeElseIf outcomeElse
Description | This enables the 'If..Then..Else' rules to be defined for the outcome processing. If the expression given in a outcomeIf or outcomeElseIf evaluates to 'true' then the sub-rules contained within it are followed and any following outcomeElseIf or outcomeElse parts are ignored for this outcome condition. If the expression given in a outcomeIf or outcomeElseIf does not evaluate to 'true' then consideration passes to the next outcomeElseIf or, if there are no more outcomeElseIf parts then the sub-rules of the outcomeElse are followed (if specified).

### 5.75.1 "outcomeIf" Attribute Description

The description of the "outcomeIf" attribute for the "OutcomeCondition" class is given in Table 5.75.1.

Table 5.75.1 Description of the "outcomeIf" attribute for the "OutcomeCondition" class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeIf
Data Type | OutcomeIf
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | A outcomeIf part, this must occur, consists of an expression which must have an effective baseType of boolean and single cardinality. For more information about the runtime data model employed see Expressions (Section 2). It also contains a set of sub-rules. If the expression is true then the sub-rules are processed, otherwise they are skipped (including if the expression is NULL) and the following outcomeElseIf or outcomeElse parts (if any) are considered instead.

### 5.75.2 "outcomeElseIf" Attribute Description

The description of the "outcomeElseIf" attribute for the "OutcomeCondition" class is given in Table 5.75.2.

Table 5.75.2 Description of the "outcomeElseIf" attribute for the "OutcomeCondition" class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeElseIf
Data Type | OutcomeIf
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | An outcomeElseIf part consists of an expression which must have an effective baseType of boolean and single cardinality. For more information about the runtime data model employed see Expressions (Section 2). It also contains a set of sub-rules. If the expression is true then the sub-rules are processed, otherwise they are skipped (including if the expression is NULL) and the following outcomeElseIf or outcomeElse parts (if any) are considered instead.

### 5.75.3 "outcomeElse" Attribute Description

The description of the "outcomeElse" attribute for the "OutcomeCondition" class is given in Table 5.75.3.

Table 5.75.3 Description of the "outcomeElse" attribute for the "OutcomeCondition" class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeElse
Data Type | OutcomeElse
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the 'Else' part of the 'If..Then..Else' clause. There may be only one 'else' clause.

## 5.76 OutcomeElse Class Description

The data model for the "OutcomeElse" class is shown in Figure 5.76 and the accompanying definition in Table 5.76.

Figure 5.76 - OutcomeElse class definitions.

Table 5.76 Description of the "OutcomeElse" class.
Descriptor | Definition
--- | ---
Class Name | OutcomeElse
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: OutcomeCondition
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: outcomeRule
Description | This provides the else part of the 'if..then..elseif..else' structure for outcomes processing.

### 5.76.1 "outcomeRule" Attribute Description

The description of the "outcomeRule" attribute for the "OutcomeElse" class is given in Table 5.76.1.

Table 5.76.1 Description of the "outcomeRule" attribute for the "OutcomeElse" class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeRule
Data Type | OutcomeRule
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract class that allow the insertion of the outcome rules that are compositions of a set of QTI tags such as 'setOutcomeValue', outcomeCondition', etc. The Outcome rules are followed in the order given. Variables updated by a rule take their new value when evaluated as part of any following rules.

## 5.77 OutcomeIf Class Description

The data model for the "OutcomeIf" class is shown in Figure 5.77 and the accompanying definition in Table 5.77.

Figure 5.77 - OutcomeIf class definitions.

Table 5.77 Description of the "OutcomeIf" class.
Descriptor | Definition
--- | ---
Class Name | OutcomeIf
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: OutcomeCondition
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: expressionGroup outcomeRule
Description | An outcomeIf part consists of an expression which must have an effective baseType of boolean and single cardinality. For more information about the runtime data model employed see Expressions (Section 2). It also contains a set of sub-rules. If the expression is true then the sub-rules are processed, otherwise they are skipped (including if the expression is NULL) and the following outcomeElseIf or outcomeElse parts (if any) are considered instead.

### 5.77.1 "expressionGroup" Attribute Description

The description of the "expressionGroup" attribute for the "OutcomeIf" class is given in Table 5.77.1.

Table 5.77.1 Description of the "expressionGroup" attribute for the "OutcomeIf" class.
Descriptor | Definition
--- | ---
Attribute Name | expressionGroup
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the expression for the 'If' clause to be defined.

### 5.77.2 "outcomeRule" Attribute Description

The description of the "outcomeRule" attribute for the "OutcomeIf" class is given in Table 5.77.2.

Table 5.77.2 Description of the "outcomeRule" attribute for the "OutcomeIf" class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeRule
Data Type | OutcomeRule
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the set of outcome processing rules that define the 'If' clause to be entered.

## 5.78 OutcomeProcessing Class Description

The data model for the "OutcomeProcessing" class is shown in Figure 5.78 and the accompanying definition in Table 5.78.

Figure 5.78 - OutcomeProcessing class definitions.

Table 5.78 Description of the "OutcomeProcessing" class.
Descriptor | Definition
--- | ---
Class Name | OutcomeProcessing
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: AssessmentTest
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: outcomeRule
Description | Outcome processing takes place each time the candidate submits the responses for an item (when in individual submission mode) or a group of items (when in simultaneous submission mode). It happens after any (item level) response processing triggered by the submission. The values of the test's outcome variables are always reset to their defaults prior to carrying out the instructions described by the outcomeRules. Because outcome processing happens each time the candidate submits responses the resulting values of the test-level outcomes may be used to activate test-level feedback during the test or to control the behaviour of subsequent parts through the use of preConditions and branchRules. The structure of outcome processing is similar to that or responseProcessing.

### 5.78.1 "outcomeRule" Attribute Description

The description of the "outcomeRule" attribute for the "OutcomeProcessing" class is given in Table 5.78.1.

Table 5.78.1 Description of the "outcomeRule" attribute for the "OutcomeProcessing" class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeRule
Data Type | OutcomeRule
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the declaration of the set of outcome rules. Outcome rules are followed in the order given. Variables updated by a rule take their new value when evaluated as part of any following rules.

## 5.79 OutcomeProcessingFragment Class Description

The data model for the "OutcomeProcessingFragment" class is shown in Figure 5.79 and the accompanying definition in Table 5.79.

Figure 5.79 - OutcomeProcessingFragment class definitions.

Table 5.79 Description of the "OutcomeProcessingFragment" class.
Descriptor | Definition
--- | ---
Class Name | OutcomeProcessingFragment
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: OutcomeRule
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: outcomeRule
Description | An outcomeProcessingFragment is a simple group of outcomeRules which are grouped together in order to allow them to be managed as a separate resource. It should not be used for any other purpose.

### 5.79.1 "outcomeRule" Attribute Description

The description of the "outcomeRule" attribute for the "OutcomeProcessingFragment" class is given in Table 5.79.1.

Table 5.79.1 Description of the "outcomeRule" attribute for the "OutcomeProcessingFragment" class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeRule
Data Type | OutcomeRule
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the declaraion of the set of outcome rules. Outcome rules are followed in the order given. Variables updated by a rule take their new value when evaluated as part of any following rules.

## 5.80 PatternMatch Class Description

The data model for the "PatternMatch" class is shown in Figure 5.80 and the accompanying definition in Table 5.80.

Figure 5.80 - PatternMatch class definitions.

Table 5.80 Description of the "PatternMatch" class.
Descriptor | Definition
--- | ---
Class Name | PatternMatch
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: pattern
Children | The set of children attributes are: logic
Description | The patternMatch operator takes a sub-expression which must have single cardinality and a base-type of string. The result is a single boolean with a value of 'true' if the sub-expression matches the regular expression given by pattern and 'false' if it does not. If the sub-expression is NULL then the operator results in NULL.

### 5.80.1 "pattern" Characteristic Description

The description of the "pattern" characteristic for the "PatternMatch" class is given in Table 5.80.1.

Table 5.80.1 Description of the "pattern" characteristic for the "PatternMatch" class.
Descriptor | Definition
--- | ---
Characteristic Name | pattern
Data Type | StringOrVariableRef
Value Space | The union consist of values of data-type(s): String (Primitive-type), EncVariableString (Derived-type)
Scope | Global ("+")
Multiplicity | [1]
Description | The syntax for the regular expression language is as defined in Appendix F of [XSCHEMA, 01].

### 5.80.2 "logic" Attribute Description

The description of the "logic" attribute for the "PatternMatch" class is given in Table 5.80.2.

Table 5.80.2 Description of the "logic" attribute for the "PatternMatch" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the required QTI expression to be identified.

## 5.81 PositionObjectInteraction Class Description

The data model for the "PositionObjectInteraction" class is shown in Figure 5.81 and the accompanying definition in Table 5.81.

Figure 5.81 - PositionObjectInteraction class definitions.

Table 5.81 Description of the "PositionObjectInteraction" class.
Descriptor | Definition
--- | ---
Class Name | PositionObjectInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: PositionObjectStage
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceRIdent
Characteristics | The set of characteristics are: centerPoint minChoices maxChoices The set of inherited characteristics are: id class language label responseIdentifier dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: object
Description | The position object interaction consists of a single image which must be positioned on another graphic image (the stage) by the candidate. Like selectPointInteraction, the associated response may have an areaMapping that scores the response on the basis of comparing it against predefined areas but the delivery engine must not indicate these areas of the stage. Only the actual position(s) selected by the candidate shall be indicated. The position object interaction must be bound to a response variable with a baseType of point and single or multiple cardinality. The point records the coordinates, with respect to the stage, of the centre point of the image being positioned.

### 5.81.1 "centerPoint" Characteristic Description

The description of the "centerPoint" characteristic for the "PositionObjectInteraction" class is given in Table 5.81.1.

Table 5.81.1 Description of the "centerPoint" characteristic for the "PositionObjectInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | centerPoint
Data Type | IntegerList
Value Space | The list consist of values of data-type(s): Int (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | The centrePoint attribute defines the point on the image being positioned that is to be treated as the centre as an offset from the top-left corner of the image in horizontal, vertical order. By default this is the centre of the image's bounding rectangle. The stage on which the image is to be positioned may be shared amongst several position object interactions and is therefore defined in a class of its own: positionObjectStage.

### 5.81.2 "minChoices" Characteristic Description

The description of the "minChoices" characteristic for the "PositionObjectInteraction" class is given in Table 5.81.2.

Table 5.81.2 Description of the "minChoices" characteristic for the "PositionObjectInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | minChoices
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of positions that the image must be placed to form a valid response to the interaction. If specified, minChoices must be 1 or greater but must not exceed the limit imposed by maxChoices.

### 5.81.3 "maxChoices" Characteristic Description

The description of the "maxChoices" characteristic for the "PositionObjectInteraction" class is given in Table 5.81.3.

Table 5.81.3 Description of the "maxChoices" characteristic for the "PositionObjectInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxChoices
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "1".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The maximum number of positions (on the stage) that the image can be placed. If matchChoices is 0 there is no limit. If maxChoices is greater than 1 (or 0) then the interaction must be bound to a response with multiple cardinality.

### 5.81.4 "object" Attribute Description

The description of the "object" attribute for the "PositionObjectInteraction" class is given in Table 5.81.4.

Table 5.81.4 Description of the "object" attribute for the "PositionObjectInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | object
Data Type | Object
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The image, required, to be positioned on the stage by the candidate.

## 5.82 PositionObjectStage Class Description

The data model for the "PositionObjectStage" class is shown in Figure 5.82 and the accompanying definition in Table 5.82.

Figure 5.82 - PositionObjectStage class definitions.

Table 5.82 Description of the "PositionObjectStage" class.
Descriptor | Definition
--- | ---
Class Name | PositionObjectStage
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup DivSelection
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: id
Children | The set of children attributes are: object positionObjectInteraction
Description | This is the content frame for the positionObjectInteraction(s).

### 5.82.1 "id" Characteristic Description

The description of the "id" characteristic for the "PositionObjectStage" class is given in Table 5.82.1.

Table 5.82.1 Description of the "id" characteristic for the "PositionObjectStage" class.
Descriptor | Definition
--- | ---
Characteristic Name | id
Data Type | UniqueIdentifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the unique identifier that is used by other tags to reference this tag e.g. by the APIP accessibility annotations [APIP, 14].

### 5.82.2 "object" Attribute Description

The description of the "object" attribute for the "PositionObjectStage" class is given in Table 5.82.2.

Table 5.82.2 Description of the "object" attribute for the "PositionObjectStage" class.
Descriptor | Definition
--- | ---
Attribute Name | object
Data Type | Object
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The image to be used as a stage onto which individual positionObjectInteractions allow the candidate to place their objects.

### 5.82.3 "positionObjectInteraction" Attribute Description

The description of the "positionObjectInteraction" attribute for the "PositionObjectStage" class is given in Table 5.82.3.

Table 5.82.3 Description of the "positionObjectInteraction" attribute for the "PositionObjectStage" class.
Descriptor | Definition
--- | ---
Attribute Name | positionObjectInteraction
Data Type | PositionObjectInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | The set of ordered positionObjectInteractions that are used to create the item.

## 5.83 Prompt Class Description

The data model for the "Prompt" class is shown in Figure 5.83 and the accompanying definition in Table 5.83.

Figure 5.83 - Prompt class definitions.

Table 5.83 Description of the "Prompt" class.
Descriptor | Definition
--- | ---
Class Name | Prompt
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: BasePromptInteraction GraphicGapMatchInteraction GraphicOrderInteraction
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: promptStaticGroup
Description | This enables an author to define the prompt for the question. The way in which the prompt is displayed depends upon the rendering system. The prompt should not be used to contain the actual root of the question.

### 5.83.1 "promptStaticGroup" Attribute Description

The description of the "promptStaticGroup" attribute for the "Prompt" class is given in Table 5.83.1.

Table 5.83.1 Description of the "promptStaticGroup" attribute for the "Prompt" class.
Descriptor | Definition
--- | ---
Attribute Name | promptStaticGroup
Data Type | PromptStaticGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the insertion of complex content that can be used to express the prompt.

## 5.84 Q Class Description

The data model for the "Q" class is shown in Figure 5.84 and the accompanying definition in Table 5.84.

Figure 5.84 - Q class definitions.

Table 5.84 Description of the "Q" class.
Descriptor | Definition
--- | ---
Class Name | Q
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: FlowContentModel InlineContentModel
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of characteristics are: cite The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: inlineGroup
Description | This provides the content definition for the HTML 'q' tag. The q element represents some phrasing content quoted from another source. Quotation punctuation (such as quotation marks) that is quoting the contents of the tag must not appear immediately before, after, or inside q tags; they will be inserted into the rendering by the user agent. Content inside a 'q' tag must be quoted from another source, whose address, if it has one, may be cited in the cite attribute. The source may be fictional, as when quoting characters in a novel or screenplay. The 'q' tag must not be used in place of quotation marks that do not represent quotes; for example, it is inappropriate to use the q element for marking up sarcastic statements. The use of 'q' tags to mark up quotations is entirely optional; using explicit quotation punctuation without 'q' tags is just as correct.

### 5.84.1 "cite" Characteristic Description

The description of the "cite" characteristic for the "Q" class is given in Table 5.84.1.

Table 5.84.1 Description of the "cite" characteristic for the "Q" class.
Descriptor | Definition
--- | ---
Characteristic Name | cite
Data Type | AnyURI (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | If the 'cite' characteristic is present, it must be a valid URL potentially surrounded by spaces. To obtain the corresponding citation link, the value of the attribute must be resolved relative to the element. User agents may allow users to follow such citation links, but they are primarily intended for private use (e.g. by server-side scripts collecting statistics about a site's use of quotations), not for readers.

### 5.84.2 "inlineGroup" Attribute Description

The description of the "inlineGroup" attribute for the "Q" class is given in Table 5.84.2.

Table 5.84.2 Description of the "inlineGroup" attribute for the "Q" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineGroup
Data Type | InlineGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the insertion of HTML inline content.

## 5.85 Repeat Class Description

The data model for the "Repeat" class is shown in Figure 5.85 and the accompanying definition in Table 5.85.

Figure 5.85 - Repeat class definitions.

Table 5.85 Description of the "Repeat" class.
Descriptor | Definition
--- | ---
Class Name | Repeat
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: numberRepeats
Children | The set of children attributes are: logic
Description | This is a QTI expression function. The repeat operator takes one or more sub-expressions, all of which must have either single or ordered cardinality and the same baseType. The result is an ordered container having the same baseType as its sub-expressions. The container is filled sequentially by evaluating each sub-expression in turn and adding the resulting single values to the container, iterating this process numberRepeats times in total. If numberRepeats refers to a variable whose value is less than 1, the value of the whole expression is NULL. Any sub-expressions evaluating to NULL are ignored. If all sub-expressions are NULL then the result is NULL.

### 5.85.1 "numberRepeats" Characteristic Description

The description of the "numberRepeats" characteristic for the "Repeat" class is given in Table 5.85.1.

Table 5.85.1 Description of the "numberRepeats" characteristic for the "Repeat" class.
Descriptor | Definition
--- | ---
Characteristic Name | numberRepeats
Data Type | IntOrIdentifier
Value Space | The union consist of values of data-type(s): NCName (Primitive-type), Int (Primitive-type)
Scope | Global ("+")
Multiplicity | [1]
Description | Defines the number of iterations applied to the processing of the contents.

### 5.85.2 "logic" Attribute Description

The description of the "logic" attribute for the "Repeat" class is given in Table 5.85.2.

Table 5.85.2 Description of the "logic" attribute for the "Repeat" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1.. unbounded]
Description | This is an abstract attribute that enables the insertion of an arbitrary set of child expressions. There must be at least one expression.

## 5.86 ResponseCondition Class Description

The data model for the "ResponseCondition" class is shown in Figure 5.86 and the accompanying definition in Table 5.86.

Figure 5.86 - ResponseCondition class definitions.

Table 5.86 Description of the "ResponseCondition" class.
Descriptor | Definition
--- | ---
Class Name | ResponseCondition
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ResponseRuleGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: responseIf responseElseIf responseElse
Description | This enables the 'If..Then..Else' rules to be defined for the response processing. If the expression given in a responseIf or responseElseIf evaluates to 'true' then the sub-rules contained within it are followed and any following responseElseIf or responseElse parts are ignored for this response condition. If the expression given in a responseIf or responseElseIf does not evaluate to 'true' then consideration passes to the next responseElseIf or, if there are no more responseElseIf parts then the sub-rules of the responseElse are followed (if specified).

### 5.86.1 "responseIf" Attribute Description

The description of the "responseIf" attribute for the "ResponseCondition" class is given in Table 5.86.1.

Table 5.86.1 Description of the "responseIf" attribute for the "ResponseCondition" class.
Descriptor | Definition
--- | ---
Attribute Name | responseIf
Data Type | ResponseIf
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | A responseIf part, this must occur, consists of an expression which must have an effective baseType of boolean and single cardinality. For more information about the runtime data model employed see Expressions (Section 2). It also contains a set of sub-rules. If the expression is true then the sub-rules are processed, otherwise they are skipped (including if the expression is NULL) and the following responseElseIf or responseElse parts (if any) are considered instead.

### 5.86.2 "responseElseIf" Attribute Description

The description of the "responseElseIf" attribute for the "ResponseCondition" class is given in Table 5.86.2.

Table 5.86.2 Description of the "responseElseIf" attribute for the "ResponseCondition" class.
Descriptor | Definition
--- | ---
Attribute Name | responseElseIf
Data Type | ResponseIf
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | A responseElseIf part consists of an expression which must have an effective baseType of boolean and single cardinality. For more information about the runtime data model employed see Expressions (Section 2). It also contains a set of sub-rules. If the expression is true then the sub-rules are processed, otherwise they are skipped (including if the expression is NULL) and the following responseElseIf or responseElse parts (if any) are considered instead.

### 5.86.3 "responseElse" Attribute Description

The description of the "responseElse" attribute for the "ResponseCondition" class is given in Table 5.86.3.

Table 5.86.3 Description of the "responseElse" attribute for the "ResponseCondition" class.
Descriptor | Definition
--- | ---
Attribute Name | responseElse
Data Type | ResponseElse
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the 'Else' part of the 'If..Then..Else' clause. There may be only one 'else' clause.

## 5.87 ResponseDeclaration Class Description

The data model for the "ResponseDeclaration" class is shown in Figure 5.87 and the accompanying definition in Table 5.87.

Figure 5.87 - ResponseDeclaration class definitions.

Table 5.87 Description of the "ResponseDeclaration" class.
Descriptor | Definition
--- | ---
Class Name | ResponseDeclaration
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: AssessmentItem
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: identifier cardinality baseType
Children | The set of children attributes are: defaultValue correctResponse mapping areaMapping
Description | Response variables are declared by response declarations and bound to interactions in the itemBody. Each response variable declared may be bound to one and only one interaction. At runtime, response variables are instantiated as part of an item session. Their values are always initialized to NULL (no value) regardless of whether or not a default value is given in the declaration. A response variable with a NULL value indicates that the candidate has not offered a response, either because they have not attempted the item at all or because they have attempted it and chosen not to provide a response. If a default value has been provided for a response variable then the variable is set to this value at the start of the first attempt. If the candidate never attempts the item, in other words, the item session passes straight from the initial state to the closed state without going through the interacting state, then the response variable remains NULL and the default value is never used.

### 5.87.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "ResponseDeclaration" class is given in Table 5.87.1.

Table 5.87.1 Description of the "identifier" characteristic for the "ResponseDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | UniqueIdentifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifiers of the built-in session variables are reserved. They are completionStatus, numAttempts and duration. All item variables declared in an item share the same namespace. Different items have different namespaces.

### 5.87.2 "cardinality" Characteristic Description

The description of the "cardinality" characteristic for the "ResponseDeclaration" class is given in Table 5.87.2.

Table 5.87.2 Description of the "cardinality" characteristic for the "ResponseDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | cardinality
Data Type | Cardinality
Value Space | Enumerated value set of: { multiple | ordered | record | single }
Scope | Global ("+")
Multiplicity | [1]
Description | Each variable is either single valued or multi-valued. Multi-valued variables are referred to as containers and come in ordered, unordered and record types. See cardinality for more information.

### 5.87.3 "baseType" Characteristic Description

The description of the "baseType" characteristic for the "ResponseDeclaration" class is given in Table 5.87.3.

Table 5.87.3 Description of the "baseType" characteristic for the "ResponseDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | baseType
Data Type | BaseType
Value Space | Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope | Global ("+")
Multiplicity | [0..1]
Description | The value space from which the variable's value can be drawn (or in the case of containers, from which the individual values are drawn) is identified with a baseType. The baseType selects one of a small set of predefined types that are considered to have atomic values within the runtime data model. Variables with record cardinality have no base-type.

### 5.87.4 "defaultValue" Attribute Description

The description of the "defaultValue" attribute for the "ResponseDeclaration" class is given in Table 5.87.4.

Table 5.87.4 Description of the "defaultValue" attribute for the "ResponseDeclaration" class.
Descriptor | Definition
--- | ---
Attribute Name | defaultValue
Data Type | DefaultValue
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | An optional default value for the variable. The point at which a variable is set to its default value varies depending on the type of item variable.

### 5.87.5 "correctResponse" Attribute Description

The description of the "correctResponse" attribute for the "ResponseDeclaration" class is given in Table 5.87.5.

Table 5.87.5 Description of the "correctResponse" attribute for the "ResponseDeclaration" class.
Descriptor | Definition
--- | ---
Attribute Name | correctResponse
Data Type | CorrectResponse
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | A response declaration may assign an optional correctResponse. This value may indicate the only possible value of the response variable to be considered correct or merely just a correct value. For responses that are being measured against a more complex scale than correct/incorrect this value should be set to the (or an) optimal value. Finally, for responses for which no such optimal value is defined the correctResponse must be omitted. If a delivery system supports the display of a solution then it should display the correct values of responses (where defined) to the candidate. When correct values are displayed they must be clearly distinguished from the candidate's own responses (which may be hidden completely if necessary).

### 5.87.6 "mapping" Attribute Description

The description of the "mapping" attribute for the "ResponseDeclaration" class is given in Table 5.87.6.

Table 5.87.6 Description of the "mapping" attribute for the "ResponseDeclaration" class.
Descriptor | Definition
--- | ---
Attribute Name | mapping
Data Type | Mapping
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The mapping provides a mapping from the set of base values to a set of numeric values for the purposes of response processing. See the MapResponse class for information on how to use the mapping.

### 5.87.7 "areaMapping" Attribute Description

The description of the "areaMapping" attribute for the "ResponseDeclaration" class is given in Table 5.87.7.

Table 5.87.7 Description of the "areaMapping" attribute for the "ResponseDeclaration" class.
Descriptor | Definition
--- | ---
Attribute Name | areaMapping
Data Type | AreaMapping
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The areaMapping, which may only be present in declarations of variables with baseType point, provides an alternative form of mapping which tests against areas of the coordinate space instead of mapping single values i.e. single points.

## 5.88 ResponseElse Class Description

The data model for the "ResponseElse" class is shown in Figure 5.88 and the accompanying definition in Table 5.88.

Figure 5.88 - ResponseElse class definitions.

Table 5.88 Description of the "ResponseElse" class.
Descriptor | Definition
--- | ---
Class Name | ResponseElse
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ResponseCondition
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: responseRuleGroup
Description | This provides the 'Else' clause of the 'If..Then..Else' for the response processing functionality. If the expression given in a responseIf or responseElseIf evaluates to 'true' then the sub-rules contained within it are followed and any following responseElseIf or responseElse parts are ignored for this response condition. If the expression given in a responseIf or responseElseIf does not evaluate to 'true' then consideration passes to the next responseElseIf or, if there are no more responseElseIf parts then the sub-rules of the responseElse are followed (if specified).

### 5.88.1 "responseRuleGroup" Attribute Description

The description of the "responseRuleGroup" attribute for the "ResponseElse" class is given in Table 5.88.1.

Table 5.88.1 Description of the "responseRuleGroup" attribute for the "ResponseElse" class.
Descriptor | Definition
--- | ---
Attribute Name | responseRuleGroup
Data Type | ResponseRuleGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the set of response rules that define the clause to be entered.

## 5.89 ResponseIf Class Description

The data model for the "ResponseIf" class is shown in Figure 5.89 and the accompanying definition in Table 5.89.

Figure 5.89 - ResponseIf class definitions.

Table 5.89 Description of the "ResponseIf" class.
Descriptor | Definition
--- | ---
Class Name | ResponseIf
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ResponseCondition
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: expressionGroup responseRuleGroup
Description | This provides the 'If' and 'ElseIf' clauses of the 'If..Then..Else' for the response processing functionality. A responseIf part consists of an expression which must have an effective baseType of boolean and single cardinality. For more information about the runtime data model employed see Expressions (Section 2). It also contains a set of sub-rules. If the expression is 'true' then the sub-rules are processed, otherwise they are skipped (including if the expression is NULL) and the following responseElseIf or responseElse parts (if any) are considered instead.

### 5.89.1 "expressionGroup" Attribute Description

The description of the "expressionGroup" attribute for the "ResponseIf" class is given in Table 5.89.1.

Table 5.89.1 Description of the "expressionGroup" attribute for the "ResponseIf" class.
Descriptor | Definition
--- | ---
Attribute Name | expressionGroup
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the expression for the 'if' clause to be defined.

### 5.89.2 "responseRuleGroup" Attribute Description

The description of the "responseRuleGroup" attribute for the "ResponseIf" class is given in Table 5.89.2.

Table 5.89.2 Description of the "responseRuleGroup" attribute for the "ResponseIf" class.
Descriptor | Definition
--- | ---
Attribute Name | responseRuleGroup
Data Type | ResponseRuleGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the set of response rules that define the 'If' clause to be entered.

## 5.90 ResponseProcessingFragment Class Description

The data model for the "ResponseProcessingFragment" class is shown in Figure 5.90 and the accompanying definition in Table 5.90.

Figure 5.90 - ResponseProcessingFragment class definitions.

Table 5.90 Description of the "ResponseProcessingFragment" class.
Descriptor | Definition
--- | ---
Class Name | ResponseProcessingFragment
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ResponseRuleGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: responseRuleGroup
Description | A responseProcessingFragment is a simple group of responseRules which are grouped together in order to allow them to be managed as a separate resource. It should not be used for any other purpose. Note that a response processing template allows a system to carry out response processing without having to parse the individual response processing rules. On the other hand, a responseProcessing element containing a reference to an externally defined response processing fragment must be parsed to determine the actions to carry out.

### 5.90.1 "responseRuleGroup" Attribute Description

The description of the "responseRuleGroup" attribute for the "ResponseProcessingFragment" class is given in Table 5.90.1.

Table 5.90.1 Description of the "responseRuleGroup" attribute for the "ResponseProcessingFragment" class.
Descriptor | Definition
--- | ---
Attribute Name | responseRuleGroup
Data Type | ResponseRuleGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the set of response rules that define the response proessing fragment to be entered.

## 5.91 RoundTo Class Description

The data model for the "RoundTo" class is shown in Figure 5.91 and the accompanying definition in Table 5.91.

Figure 5.91 - RoundTo class definitions.

Table 5.91 Description of the "RoundTo" class.
Descriptor | Definition
--- | ---
Class Name | RoundTo
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: roundingMode figures
Children | The set of children attributes are: logic
Description | The roundTo operator takes one sub-expression which must have single cardinality and a numerical base-type. The result is a single float with the value nearest to that of the expression's value such that when converted to a decimal string it represents the expression rounded by the specified rounding method to the specified precision. If the sub-expression is NULL, then the result is NULL. If the sub-expression is INF, then the result is INF. If the sub-expression is -INF, then the result is -INF. If the argument is NaN, then the result is NULL. When rounding to n significant figures, the deciding digit is the (n+1)th digit counting from the first non-zero digit from the left in the number. If the deciding digit is 5 or greater, the nth digit is increased by 1 and all digits to its right are discarded; if the deciding digit is less than 5, all digits to the right of the nth digit are discarded. When rounding to n decimal places, the deciding digit is the (n+1)th digit counting to the right from the decimal point. If the deciding digit is 5 or greater, the nth digit is increased by 1 and all digits to its right are discarded; if the deciding digit is less than 5, all digits to the right of the nth digit are discarded.

### 5.91.1 "roundingMode" Characteristic Description

The description of the "roundingMode" characteristic for the "RoundTo" class is given in Table 5.91.1.

Table 5.91.1 Description of the "roundingMode" characteristic for the "RoundTo" class.
Descriptor | Definition
--- | ---
Characteristic Name | roundingMode
Data Type | RoundingMode
Value Space | Enumerated value set of: { decimalPlaces | significantFigures }
Scope | Global ("+")
Multiplicity | [1]
Description | Numbers are rounded to a given number of significantFigures or decimalPlaces.

### 5.91.2 "figures" Characteristic Description

The description of the "figures" characteristic for the "RoundTo" class is given in Table 5.91.2.

Table 5.91.2 Description of the "figures" characteristic for the "RoundTo" class.
Descriptor | Definition
--- | ---
Characteristic Name | figures
Data Type | IntegerOrVariableRef
Value Space | The union consist of values of data-type(s): Integer (Primitive-type), VariableString (Derived-type)
Scope | Global ("+")
Multiplicity | [1]
Description | The number of figures to round to. If roundingMode= "significantFigures", the value of figures must be a non-zero positive integer. If roundingMode="decimalPlaces", the value of figures must be an integer greater than or equal to zero.

### 5.91.3 "logic" Attribute Description

The description of the "logic" attribute for the "RoundTo" class is given in Table 5.91.3.

Table 5.91.3 Description of the "logic" attribute for the "RoundTo" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that allows the required QTI expression to be supplied.

## 5.92 RubricBlock Class Description

The data model for the "RubricBlock" class is shown in Figure 5.92 and the accompanying definition in Table 5.92.

Figure 5.92 - RubricBlock class definitions.

Table 5.92 Description of the "RubricBlock" class.
Descriptor | Definition
--- | ---
Class Name | RubricBlock
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: AssessmentSection ItemBodySelect
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of characteristics are: use view The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: contentModel stylesheet apipAccessibility
Description | The container for the rubric block content. A rubric block identifies part of the content that represents instructions to one or more of the actors that view the item. Although rubric blocks are defined as simpleBlocks they must not contain interactions. The visibility of nested rubricBlocks is determined by the outermost element. In other words, if an element is determined to be hidden then all of its content is hidden including conditionally visible elements for which the conditions are satisfied and that therefore would otherwise be visible.

### 5.92.1 "use" Characteristic Description

The description of the "use" characteristic for the "RubricBlock" class is given in Table 5.92.1.

Table 5.92.1 Description of the "use" characteristic for the "RubricBlock" class.
Descriptor | Definition
--- | ---
Characteristic Name | use
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The purpose for which the rubric is intended to be used. As a reading passage for multiple items, or instructions for a particular section, for example.

### 5.92.2 "view" Characteristic Description

The description of the "view" characteristic for the "RubricBlock" class is given in Table 5.92.2.

Table 5.92.2 Description of the "view" characteristic for the "RubricBlock" class.
Descriptor | Definition
--- | ---
Characteristic Name | view
Data Type | View
Value Space | A list from an enumerated value set of: { author | candidate | proctor | scorer | testConstructor | tutor }
Scope | Global ("+")
Multiplicity | [1]
Description | The views in which the rubric block's content are to be shown.

### 5.92.3 "contentModel" Attribute Description

The description of the "contentModel" attribute for the "RubricBlock" class is given in Table 5.92.3.

Table 5.92.3 Description of the "contentModel" attribute for the "RubricBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | contentModel
Data Type | RubricBlockContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | An abstract class that is used to contain the complex content for the Rubric block.

### 5.92.4 "stylesheet" Attribute Description

The description of the "stylesheet" attribute for the "RubricBlock" class is given in Table 5.92.4.

Table 5.92.4 Description of the "stylesheet" attribute for the "RubricBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | stylesheet
Data Type | StyleSheet
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The stylesheet is used to format just the contents of the rubricBlock.

### 5.92.5 "apipAccessibility" Attribute Description

The description of the "apipAccessibility" attribute for the "RubricBlock" class is given in Table 5.92.5.

Table 5.92.5 Description of the "apipAccessibility" attribute for the "RubricBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | apipAccessibility
Data Type | APIPAccessibility
Value Space | Imported
Scope | Global ("+")
Multiplicity | [0..1]
Description | The alternative APIP content for the RubricBlock [APIP, 14].

## 5.93 RubricBlockTemplateBlock Class Description

The data model for the "RubricBlockTemplateBlock" class is shown in Figure 5.93 and the accompanying definition in Table 5.93.

Figure 5.93 - RubricBlockTemplateBlock class definitions.

Table 5.93 Description of the "RubricBlockTemplateBlock" class.
Descriptor | Definition
--- | ---
Class Name | RubricBlockTemplateBlock
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: RubricBlockContentModel RubricTemplateBlockContentModel
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of characteristics are: templateIdentifier showHide identifier The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: rtBlockContentModel stylesheet apipAccessibility
Description | This is the container for the rubric content that is used in the context of a template block content.

### 5.93.1 "templateIdentifier" Characteristic Description

The description of the "templateIdentifier" characteristic for the "RubricBlockTemplateBlock" class is given in Table 5.93.1.

Table 5.93.1 Description of the "templateIdentifier" characteristic for the "RubricBlockTemplateBlock" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of a template variable that must have a base-type of identifier and be of either single or multiple cardinality. The visibility of the templateElement is controlled by the value of the variable.

### 5.93.2 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "RubricBlockTemplateBlock" class is given in Table 5.93.2.

Table 5.93.2 Description of the "showHide" characteristic for the "RubricBlockTemplateBlock" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide and identifier characteristics determine how the visibility of the template content is controlled in the same way as the similarly named showHide and identifier characteristics of feedback content.

### 5.93.3 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "RubricBlockTemplateBlock" class is given in Table 5.93.3.

Table 5.93.3 Description of the "identifier" characteristic for the "RubricBlockTemplateBlock" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier that determines the visibility of the template content in conjunction with the showHide characteristic.

### 5.93.4 "rtBlockContentModel" Attribute Description

The description of the "rtBlockContentModel" attribute for the "RubricBlockTemplateBlock" class is given in Table 5.93.4.

Table 5.93.4 Description of the "rtBlockContentModel" attribute for the "RubricBlockTemplateBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | rtBlockContentModel
Data Type | RubricTemplateBlockContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract class that enables the complex content to be defined.

### 5.93.5 "stylesheet" Attribute Description

The description of the "stylesheet" attribute for the "RubricBlockTemplateBlock" class is given in Table 5.93.5.

Table 5.93.5 Description of the "stylesheet" attribute for the "RubricBlockTemplateBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | stylesheet
Data Type | StyleSheet
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The stylesheet is used to format just the contents of the rubricBlock.

### 5.93.6 "apipAccessibility" Attribute Description

The description of the "apipAccessibility" attribute for the "RubricBlockTemplateBlock" class is given in Table 5.93.6.

Table 5.93.6 Description of the "apipAccessibility" attribute for the "RubricBlockTemplateBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | apipAccessibility
Data Type | APIPAccessibility
Value Space | Imported
Scope | Global ("+")
Multiplicity | [0..1]
Description | The alternative APIP content for the RubricBlock [APIP, 14].

## 5.94 RubricBlockTemplateInline Class Description

The data model for the "RubricBlockTemplateInline" class is shown in Figure 5.94 and the accompanying definition in Table 5.94.

Figure 5.94 - RubricBlockTemplateInline class definitions.

Table 5.94 Description of the "RubricBlockTemplateInline" class.
Descriptor | Definition
--- | ---
Class Name | RubricBlockTemplateInline
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: RubricBlockContentModel RubricTemplateInlineStaticGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of characteristics are: templateIdentifier showHide identifier The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: rtInlineStaticGroup
Description | This is the container for the rubric content that is used in the context of a template inline content.

### 5.94.1 "templateIdentifier" Characteristic Description

The description of the "templateIdentifier" characteristic for the "RubricBlockTemplateInline" class is given in Table 5.94.1.

Table 5.94.1 Description of the "templateIdentifier" characteristic for the "RubricBlockTemplateInline" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of a template variable that must have a base-type of identifier and be of either single or multiple cardinality. The visibility of the templateElement is controlled by the value of the variable.

### 5.94.2 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "RubricBlockTemplateInline" class is given in Table 5.94.2.

Table 5.94.2 Description of the "showHide" characteristic for the "RubricBlockTemplateInline" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide and identifier characteristics determine how the visibility of the template content is controlled in the same way as the similarly named showHide and identifier characteristics of feedback content.

### 5.94.3 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "RubricBlockTemplateInline" class is given in Table 5.94.3.

Table 5.94.3 Description of the "identifier" characteristic for the "RubricBlockTemplateInline" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier that determines the visibility of the template content in conjunction with the showHide characteristic.

### 5.94.4 "rtInlineStaticGroup" Attribute Description

The description of the "rtInlineStaticGroup" attribute for the "RubricBlockTemplateInline" class is given in Table 5.94.4.

Table 5.94.4 Description of the "rtInlineStaticGroup" attribute for the "RubricBlockTemplateInline" class.
Descriptor | Definition
--- | ---
Attribute Name | rtInlineStaticGroup
Data Type | RubricTemplateInlineStaticGroup
Value Space | Abstract Container [ Selection ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is an abstract class that enables the complex content to be defined.

## 5.95 SelectPointInteraction Class Description

The data model for the "SelectPointInteraction" class is shown in Figure 5.95 and the accompanying definition in Table 5.95.

Figure 5.95 - SelectPointInteraction class definitions.

Table 5.95 Description of the "SelectPointInteraction" class.
Descriptor | Definition
--- | ---
Class Name | SelectPointInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BasePromptInteraction
Characteristics | The set of characteristics are: minChoices maxChoices The set of inherited characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: object The set of inherited children attributes are: prompt
Description | Like hotspotInteraction, a select point interaction is a graphic interaction. The candidate's task is to select one or more points. The associated response may have an areaMapping that scores the response on the basis of comparing it against predefined areas but the delivery engine must not indicate these areas of the image. Only the actual point(s) selected by the candidate shall be indicated. The select point interaction must be bound to a response variable with a baseType of point and single or multiple cardinality.

### 5.95.1 "minChoices" Characteristic Description

The description of the "minChoices" characteristic for the "SelectPointInteraction" class is given in Table 5.95.1.

Table 5.95.1 Description of the "minChoices" characteristic for the "SelectPointInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | minChoices
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of points that the candidate is required to select to form a valid response. If minChoices is 0 then the candidate is not required to select any points. minChoices must be less than or equal to the limit imposed by maxChoices.

### 5.95.2 "maxChoices" Characteristic Description

The description of the "maxChoices" characteristic for the "SelectPointInteraction" class is given in Table 5.95.2.

Table 5.95.2 Description of the "maxChoices" characteristic for the "SelectPointInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxChoices
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This characteristic is interpreted as the maximum number of points that the candidate is allowed to select. If maxChoices is 0 there is no restriction. If maxChoices is greater than 1 (or 0) then the interaction must be bound to a response with multiple cardinality.

### 5.95.3 "object" Attribute Description

The description of the "object" attribute for the "SelectPointInteraction" class is given in Table 5.95.3.

Table 5.95.3 Description of the "object" attribute for the "SelectPointInteraction" class.
Descriptor | Definition
--- | ---
Attribute Name | object
Data Type | Object
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Each select point interaction has an associated image which is given as an object that must be of an image type, as specified by the type characteristic.

## 5.96 Selection Class Description

The data model for the "Selection" class is shown in Figure 5.96 and the accompanying definition in Table 5.96.

Figure 5.96 - Selection class definitions.

Table 5.96 Description of the "Selection" class.
Descriptor | Definition
--- | ---
Class Name | Selection
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: AssessmentSection
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: select withReplacement extension
Children | The set of children attributes are: extensions
Description | The selection class specifies the rules used to select the child elements of a section for each test session. If no selection rules are given it must be assumed that all elements are to be selected. The selection class also provides an opportunity for extensions to this specification to include support for more complex selection algorithms.

### 5.96.1 "select" Characteristic Description

The description of the "select" characteristic for the "Selection" class is given in Table 5.96.1.

Table 5.96.1 Description of the "select" characteristic for the "Selection" class.
Descriptor | Definition
--- | ---
Characteristic Name | select
Data Type | Int (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The number of child elements to be selected. Sub-sections always count as 1, regardless of how many child elements they have and whether or not they are visible. The number of children to select may exceed the number of child elements defined only if withReplacement is true.

### 5.96.2 "withReplacement" Characteristic Description

The description of the "withReplacement" characteristic for the "Selection" class is given in Table 5.96.2.

Table 5.96.2 Description of the "withReplacement" characteristic for the "Selection" class.
Descriptor | Definition
--- | ---
Characteristic Name | withReplacement
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | When selecting child elements each element is normally eligible for selection once only. In other words, when selecting 3 elements from {A,B,C,D} the possible outcomes are {A,B,C}, {A,B,D}, {A,C,D}, and {B,C,D}. By setting withReplacement to true each element becomes eligible for selection multiple times. Selecting 3 nodes from {A,B,C,D} can then result in combinations such as {A,A,A}, {A,A,B} and so on.

### 5.96.3 "extension" Characteristic Description

The description of the "extension" characteristic for the "Selection" class is given in Table 5.96.3.

Table 5.96.3 Description of the "extension" characteristic for the "Selection" class.
Descriptor | Definition
--- | ---
Characteristic Name | extension
Data Type | Namespace (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is an extension point. It allows new proprietary characteristics to be defined and used for the ordering. The extension mechanism is dependent on the form of binding.

### 5.96.4 "extensions" Attribute Description

The description of the "extensions" attribute for the "Selection" class is given in Table 5.96.4.

Table 5.96.4 Description of the "extensions" attribute for the "Selection" class.
Descriptor | Definition
--- | ---
Attribute Name | extensions
Data Type | NamespaceLax (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is an extension point to enable any set of child tags to be entered. The child tags must be new tags i.e. not reused QTI ASI tags. Note that this class is used to support the definition of all of the types of custom interactions used in the content.

## 5.97 SetValue Class Description

The data model for the "SetValue" class is shown in Figure 5.97 and the accompanying definition in Table 5.97.

Figure 5.97 - SetValue class definitions.

Table 5.97 Description of the "SetValue" class.
Descriptor | Definition
--- | ---
Class Name | SetValue
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: OutcomeRule ResponseRuleGroup TemplateRuleGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: identifier
Children | The set of children attributes are: expressionGroup
Description | The setValue rule sets the value of a variable (response, outcome or template) to the value obtained from the associated expression. A variable can be updated with reference to a previously assigned value, in other words, the variable being set may appear in the expression where it takes the value previously assigned to it. Special care is required when using the numeric base-types because floating point values can not be assigned to integer variables and vice-versa. The truncate, round or integerToFloat operators must be used to achieve numeric type conversion.

### 5.97.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "SetValue" class is given in Table 5.97.1.

Table 5.97.1 Description of the "identifier" characteristic for the "SetValue" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the variable to be set.

### 5.97.2 "expressionGroup" Attribute Description

The description of the "expressionGroup" attribute for the "SetValue" class is given in Table 5.97.2.

Table 5.97.2 Description of the "expressionGroup" attribute for the "SetValue" class.
Descriptor | Definition
--- | ---
Attribute Name | expressionGroup
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute to provide the mandatory expresson to be identified. The expression which must have an effective baseType and cardinality that matches the base-type and cardinality of the outcome variable being set.

## 5.98 SimpleAssociableChoice Class Description

The data model for the "SimpleAssociableChoice" class is shown in Figure 5.98 and the accompanying definition in Table 5.98.

Figure 5.98 - SimpleAssociableChoice class definitions.

Table 5.98 Description of the "SimpleAssociableChoice" class.
Descriptor | Definition
--- | ---
Class Name | SimpleAssociableChoice
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: AssociateInteraction SimpleMatchSet
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of characteristics are: identifier fixed templateIdentifier showHide matchGroup matchMax matchMin The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowStaticGroup
Description | This is an ordered set of choices for the set.

### 5.98.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "SimpleAssociableChoice" class is given in Table 5.98.1.

Table 5.98.1 Description of the "identifier" characteristic for the "SimpleAssociableChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the choice. This identifier must not be used by any other choice or item variable.

### 5.98.2 "fixed" Characteristic Description

The description of the "fixed" characteristic for the "SimpleAssociableChoice" class is given in Table 5.98.2.

Table 5.98.2 Description of the "fixed" characteristic for the "SimpleAssociableChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | fixed
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | If fixed is 'true' for a choice then the position of this choice within the interaction must not be changed by the delivery engine even if the immediately enclosing interaction supports the shuffling of choices. If no value is specified then the choice is free to be shuffled. In Item Templates, the visibility of choices can be controlled by setting the value(s) of an associated template variable during template processing. For information about item templates see Item Templates (Section 2).

### 5.98.3 "templateIdentifier" Characteristic Description

The description of the "templateIdentifier" characteristic for the "SimpleAssociableChoice" class is given in Table 5.98.3.

Table 5.98.3 Description of the "templateIdentifier" characteristic for the "SimpleAssociableChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The identifier of a template variable that must have a base-type of identifier and be either single of multiple cardinality. When the associated interaction is part of an Item Template the value of the identified template variable is used to control the visibility of the choice. When a choice is hidden it is not selectable and its content is not visible to the candidate unless otherwise stated.

### 5.98.4 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "SimpleAssociableChoice" class is given in Table 5.98.4.

Table 5.98.4 Description of the "showHide" characteristic for the "SimpleAssociableChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide }
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide characteristic determines how the visibility of the choice is controlled. If set to 'show' then the choice is hidden by default and shown only if the associated template variable matches, or contains, the identifier of the choice. If set to 'hide' then the choice is shown by default and hidden if the associated template variable matches, or contains, the choice's identifier.

### 5.98.5 "matchGroup" Characteristic Description

The description of the "matchGroup" characteristic for the "SimpleAssociableChoice" class is given in Table 5.98.5.

Table 5.98.5 Description of the "matchGroup" characteristic for the "SimpleAssociableChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | matchGroup
Data Type | IdentifierList
Value Space | The list consist of values of data-type(s): NCName (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is used to identify the set of entities that can be matched with this choice. This is used to enable the author to constrain the set of objects that can be matched with the target choice. This is a list of the identifiers for the objects that can be matched with this choice.

### 5.98.6 "matchMax" Characteristic Description

The description of the "matchMax" characteristic for the "SimpleAssociableChoice" class is given in Table 5.98.6.

Table 5.98.6 Description of the "matchMax" characteristic for the "SimpleAssociableChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | matchMax
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The maximum number of choices this choice may be associated with. If matchMax is 0 then there is no restriction.

### 5.98.7 "matchMin" Characteristic Description

The description of the "matchMin" characteristic for the "SimpleAssociableChoice" class is given in Table 5.98.7.

Table 5.98.7 Description of the "matchMin" characteristic for the "SimpleAssociableChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | matchMin
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3. Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The minimum number of choices this choice must be associated with to form a valid response. If matchMin is 0 then the candidate is not required to associate this choice with any others at all. matchMin must be less than or equal to the limit imposed by matchMax.

### 5.98.8 "flowStaticGroup" Attribute Description

The description of the "flowStaticGroup" attribute for the "SimpleAssociableChoice" class is given in Table 5.98.8.

Table 5.98.8 Description of the "flowStaticGroup" attribute for the "SimpleAssociableChoice" class.
Descriptor | Definition
--- | ---
Attribute Name | flowStaticGroup
Data Type | FlowStaticGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child that allows the insertion of the content. AssociableChoice is a choice that contains flowStatic objects, it must not contain nested interactions.

## 5.99 SimpleChoice Class Description

The data model for the "SimpleChoice" class is shown in Figure 5.99 and the accompanying definition in Table 5.99.

Figure 5.99 - SimpleChoice class definitions.

Table 5.99 Description of the "SimpleChoice" class.
Descriptor | Definition
--- | ---
Class Name | SimpleChoice
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: ChoiceInteraction OrderInteraction
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of characteristics are: identifier fixed templateIdentifier showHide The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowStaticGroup
Description | A simpleChoice is a choice that contains flowStatic objects. A simpleChoice must not contain any nested interactions.

### 5.99.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "SimpleChoice" class is given in Table 5.99.1.

Table 5.99.1 Description of the "identifier" characteristic for the "SimpleChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the choice. This identifier must not be used by any other choice or item variable.

### 5.99.2 "fixed" Characteristic Description

The description of the "fixed" characteristic for the "SimpleChoice" class is given in Table 5.99.2.

Table 5.99.2 Description of the "fixed" characteristic for the "SimpleChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | fixed
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If fixed is 'true' for a choice then the position of this choice within the interaction must not be changed by the delivery engine even if the immediately enclosing interaction supports the shuffling of choices. If no value is specified then the choice is free to be shuffled. In Item Templates, the visibility of choices can be controlled by setting the value(s) of an associated template variable during template processing. For information about item templates see Item Templates (Section 2).

### 5.99.3 "templateIdentifier" Characteristic Description

The description of the "templateIdentifier" characteristic for the "SimpleChoice" class is given in Table 5.99.3.

Table 5.99.3 Description of the "templateIdentifier" characteristic for the "SimpleChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The identifier of a template variable that must have a base-type of identifier and be either single of multiple cardinality. When the associated interaction is part of an Item Template the value of the identified template variable is used to control the visibility of the choice. When a choice is hidden it is not selectable and its content is not visible to the candidate unless otherwise stated.

### 5.99.4 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "SimpleChoice" class is given in Table 5.99.4.

Table 5.99.4 Description of the "showHide" characteristic for the "SimpleChoice" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide characteristic determines how the visibility of the choice is controlled. If set to 'show' then the choice is hidden by default and shown only if the associated template variable matches, or contains, the identifier of the choice. If set to 'hide' then the choice is shown by default and hidden if the associated template variable matches, or contains, the choice's identifier.

### 5.99.5 "flowStaticGroup" Attribute Description

The description of the "flowStaticGroup" attribute for the "SimpleChoice" class is given in Table 5.99.5.

Table 5.99.5 Description of the "flowStaticGroup" attribute for the "SimpleChoice" class.
Descriptor | Definition
--- | ---
Attribute Name | flowStaticGroup
Data Type | FlowStaticGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child that is used to enable the inclusion of HTML flow content that includes support for feedback and template-base content.

## 5.100 SimpleMatchSet Class Description

The data model for the "SimpleMatchSet" class is shown in Figure 5.100 and the accompanying definition in Table 5.100.

Figure 5.100 - SimpleMatchSet class definitions.

Table 5.100 Description of the "SimpleMatchSet" class.
Descriptor | Definition
--- | ---
Class Name | SimpleMatchSet
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: MatchInteraction
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: id
Children | The set of children attributes are: simpleAssociableChoice
Description | This is the ordered set of choices for the match set.

### 5.100.1 "id" Characteristic Description

The description of the "id" characteristic for the "SimpleMatchSet" class is given in Table 5.100.1.

Table 5.100.1 Description of the "id" characteristic for the "SimpleMatchSet" class.
Descriptor | Definition
--- | ---
Characteristic Name | id
Data Type | UniqueIdentifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The unique identifier to allow links to other structures e.g. alternative APIP accessibility annotations.

### 5.100.2 "simpleAssociableChoice" Attribute Description

The description of the "simpleAssociableChoice" attribute for the "SimpleMatchSet" class is given in Table 5.100.2.

Table 5.100.2 Description of the "simpleAssociableChoice" attribute for the "SimpleMatchSet" class.
Descriptor | Definition
--- | ---
Attribute Name | simpleAssociableChoice
Data Type | SimpleAssociableChoice
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | An ordered set of choices for the set.

## 5.101 SliderInteraction Class Description

The data model for the "SliderInteraction" class is shown in Figure 5.101 and the accompanying definition in Table 5.101.

Figure 5.101 - SliderInteraction class definitions.

Table 5.101 Description of the "SliderInteraction" class.
Descriptor | Definition
--- | ---
Class Name | SliderInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BasePromptInteraction
Characteristics | The set of characteristics are: lowerBound upperBound step stepLabel orientation reverse The set of inherited characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of inherited children attributes are: prompt
Description | The Slider Interaction presents the candidate with a control for selecting a numerical value between a lower and upper bound. It must be bound to a response variable with single cardinality with a base-type of either integer or float. Note that a slider interaction does not have a default or initial position except where specified by a default value for the associated response variable. The currently selected value, if any, must be clearly indicated to the candidate. Because a slider interaction does not have a default or initial position, except where specified by a default value for the associated response variable, it is difficult to distinguish between an intentional response that corresponds to the slider's initial position and a NULL response. As a workaround, sliderInteraction items have to either a) not count NULL responses (i.e. count all responses as intentional) or b) include a 'skip' button and count its activation combined with a RESPONSE variable that is equal to the slider's initial position as a NULL response

### 5.101.1 "lowerBound" Characteristic Description

The description of the "lowerBound" characteristic for the "SliderInteraction" class is given in Table 5.101.1.

Table 5.101.1 Description of the "lowerBound" characteristic for the "SliderInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | lowerBound
Data Type | NonNegativeDouble
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | If the associated response variable is of type integer then the lowerBound must be rounded down to the greatest integer less than or equal to the value given.

### 5.101.2 "upperBound" Characteristic Description

The description of the "upperBound" characteristic for the "SliderInteraction" class is given in Table 5.101.2.

Table 5.101.2 Description of the "upperBound" characteristic for the "SliderInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | upperBound
Data Type | NonNegativeDouble
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | If the associated response variable is of type integer then the upperBound must be rounded up to the least integer greater than or equal to the value given.

### 5.101.3 "step" Characteristic Description

The description of the "step" characteristic for the "SliderInteraction" class is given in Table 5.101.3.

Table 5.101.3 Description of the "step" characteristic for the "SliderInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | step
Data Type | NonNegativeDouble
Value Space | Container [ DerivedType ] Default = "1.0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The steps that the control moves in. For example, if the lowerBound and upperBound are [0,10] and step is 2 then the response would be constrained to the set of values {0,2,4,6,8,10}. If the response variable is bound to an integer, and the step attribute is not declared, the default step is 1. If the response variable is bound to a float, and the step attribute is not declared, the slider is assumed to operate on an approximately continuous scale.

### 5.101.4 "stepLabel" Characteristic Description

The description of the "stepLabel" characteristic for the "SliderInteraction" class is given in Table 5.101.4.

Table 5.101.4 Description of the "stepLabel" characteristic for the "SliderInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | stepLabel
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | By default, sliders are labelled only at their ends. The stepLabel attribute controls whether or not each step on the slider should also be labelled. It is unlikely that delivery engines will be able to guarantee to label steps so this attribute should be treated only as request.

### 5.101.5 "orientation" Characteristic Description

The description of the "orientation" characteristic for the "SliderInteraction" class is given in Table 5.101.5.

Table 5.101.5 Description of the "orientation" characteristic for the "SliderInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | orientation
Data Type | Orientation
Value Space | Enumerated value set of: { horizontal | vertical }
Scope | Global ("+")
Multiplicity | [0..1]
Description | The orientation attribute provides a hint to rendering systems that the slider is being used to indicate the value of a quantity with an inherent vertical or horizontal interpretation. For example, an interaction that is used to indicate the value of height might set the orientation to vertical to indicate that rendering it horizontally could spuriously increase the difficulty of the item.

### 5.101.6 "reverse" Characteristic Description

The description of the "reverse" characteristic for the "SliderInteraction" class is given in Table 5.101.6.

Table 5.101.6 Description of the "reverse" characteristic for the "SliderInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | reverse
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The reverse attribute provides a hint to rendering systems that the slider is being used to indicate the value of a quantity for which the normal sense of the upper and lower bounds is reversed. For example, an interaction that is used to indicate a depth below sea level might specify both a vertical orientation and set reverse.

## 5.102 StatsOperator Class Description

The data model for the "StatsOperator" class is shown in Figure 5.102 and the accompanying definition in Table 5.102.

Figure 5.102 - StatsOperator class definitions.

Table 5.102 Description of the "StatsOperator" class.
Descriptor | Definition
--- | ---
Class Name | StatsOperator
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: name
Children | The set of children attributes are: logic
Description | The statsOperator operator takes 1 sub-expression which is a container of multiple or ordered cardinality and has a numerical base-type. The result is a single float. If the sub-expression or any value contained therein is NULL, the result is NULL. If any value contained in the sub-expression is not a numerical value, then the result is NULL.

### 5.102.1 "name" Characteristic Description

The description of the "name" characteristic for the "StatsOperator" class is given in Table 5.102.1.

Table 5.102.1 Description of the "name" characteristic for the "StatsOperator" class.
Descriptor | Definition
--- | ---
Characteristic Name | name
Data Type | StatsOperatorName
Value Space | Enumerated value set of: { mean | sampleVariance | sampleSD | popVariance | popSD }
Scope | Global ("+")
Multiplicity | [1]
Description | This is the name of the statistical operator (this is from an enumerated list).

### 5.102.2 "logic" Attribute Description

The description of the "logic" attribute for the "StatsOperator" class is given in Table 5.102.2.

Table 5.102.2 Description of the "logic" attribute for the "StatsOperator" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute to enable the insertion of the mandatory QTI expression.

## 5.103 StimulusBody Class Description

The data model for the "StimulusBody" class is shown in Figure 5.103 and the accompanying definition in Table 5.103.

Figure 5.103 - StimulusBody class definitions.

Table 5.103 Description of the "StimulusBody" class.
Descriptor | Definition
--- | ---
Class Name | StimulusBody
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: AssessmentStimulus
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: blockGroup
Description | This is the container for the content that is to be defined as the common stimulus in an Item cf. ItemBody. The stimulus body contains the text, graphics, media objects and interactions that describe the common content and information about how it is structured. The body is presented by combining it with stylesheet information, either explicitly or implicitly using the default style rules of the delivery or authoring system.

### 5.103.1 "blockGroup" Attribute Description

The description of the "blockGroup" attribute for the "StimulusBody" class is given in Table 5.103.1.

Table 5.103.1 Description of the "blockGroup" attribute for the "StimulusBody" class.
Descriptor | Definition
--- | ---
Attribute Name | blockGroup
Data Type | BlockGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1.. unbounded]
Description | This is an abstract class that permits the Block Group content i.e. HTML block content and QTI interactions.

## 5.104 StringMatch Class Description

The data model for the "StringMatch" class is shown in Figure 5.104 and the accompanying definition in Table 5.104.

Figure 5.104 - StringMatch class definitions.

Table 5.104 Description of the "StringMatch" class.
Descriptor | Definition
--- | ---
Class Name | StringMatch
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: caseSensitive substring
Children | The set of children attributes are: logic
Description | The stringMatch operator takes two sub-expressions which must have single and a base-type of string. The result is a single boolean with a value of true if the two strings match according to the comparison rules defined by the attributes below and false if they don't. If either sub-expression is NULL then the operator results in NULL.

### 5.104.1 "caseSensitive" Characteristic Description

The description of the "caseSensitive" characteristic for the "StringMatch" class is given in Table 5.104.1.

Table 5.104.1 Description of the "caseSensitive" characteristic for the "StringMatch" class.
Descriptor | Definition
--- | ---
Characteristic Name | caseSensitive
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | Whether or not the match is to be carried out case sensitively.

### 5.104.2 "substring" Characteristic Description

The description of the "substring" characteristic for the "StringMatch" class is given in Table 5.104.2.

Table 5.104.2 Description of the "substring" characteristic for the "StringMatch" class.
Descriptor | Definition
--- | ---
Characteristic Name | substring
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This attribute is now deprecated, the substring operator should be used instead. If true, then the comparison returns true if the first string contains the second one, otherwise it returns true only if they match entirely.

### 5.104.3 "logic" Attribute Description

The description of the "logic" attribute for the "StringMatch" class is given in Table 5.104.3.

Table 5.104.3 Description of the "logic" attribute for the "StringMatch" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [2]
Description | This is an abstract attribute to enable the insertion of the two mandatory QTI expression i.e. the two strings being matched.

## 5.105 Substring Class Description

The data model for the "Substring" class is shown in Figure 5.105 and the accompanying definition in Table 5.105.

Figure 5.105 - Substring class definitions.

Table 5.105 Description of the "Substring" class.
Descriptor | Definition
--- | ---
Class Name | Substring
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: ExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: caseSensitive
Children | The set of children attributes are: logic
Description | The substring operator takes two sub-expressions which must both have an effective base-type of string and single cardinality. The result is a single boolean with a value of true if the first expression is a substring of the second expression and false if it isn't. If either sub-expression is NULL then the result of the operator is NULL.

### 5.105.1 "caseSensitive" Characteristic Description

The description of the "caseSensitive" characteristic for the "Substring" class is given in Table 5.105.1.

Table 5.105.1 Description of the "caseSensitive" characteristic for the "Substring" class.
Descriptor | Definition
--- | ---
Characteristic Name | caseSensitive
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | Used to control whether or not the substring is matched case sensitively. If 'true' then the match is case sensitive and, for example, "Hell" is not a substring of "Shell". If 'false' then the match is not case sensitive and "Hell" is a substring of "Shell".

### 5.105.2 "logic" Attribute Description

The description of the "logic" attribute for the "Substring" class is given in Table 5.105.2.

Table 5.105.2 Description of the "logic" attribute for the "Substring" class.
Descriptor | Definition
--- | ---
Attribute Name | logic
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [2]
Description | The two required QTI expressions that provide the source string and the substring to be located in the full string.

## 5.106 TDH Class Description

The data model for the "TDH" class is shown in Figure 5.106 and the accompanying definition in Table 5.106.

Figure 5.106 - TDH class definitions.

Table 5.106 Description of the "TDH" class.
Descriptor | Definition
--- | ---
Class Name | TDH
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: TableCellGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of characteristics are: headers scope abbr axis rowspan colspan align valign The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: flowGroup
Description | This class allows the defnition of the contents of the HTML 'td' and 'th' tags i.e. the table cells used within the table rows.

### 5.106.1 "headers" Characteristic Description

The description of the "headers" characteristic for the "TDH" class is given in Table 5.106.1.

Table 5.106.1 Description of the "headers" characteristic for the "TDH" class.
Descriptor | Definition
--- | ---
Characteristic Name | headers
Data Type | IdentifierList
Value Space | The list consist of values of data-type(s): NCName (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | The header cells for this cell. This is a string consisting of an unordered set of unique space-separated tokens that are case-sensitive, each of which must have the value of an ID of a 'th' tag taking part in the same table as the 'td' or 'th' tag.

### 5.106.2 "scope" Characteristic Description

The description of the "scope" characteristic for the "TDH" class is given in Table 5.106.2.

Table 5.106.2 Description of the "scope" characteristic for the "TDH" class.
Descriptor | Definition
--- | ---
Characteristic Name | scope
Data Type | TableCellScope
Value Space | Enumerated value set of: { col | colgroup | row | rowgroup }
Scope | Global ("+")
Multiplicity | [0..1]
Description | Specifies which cells the header cell applies to.

### 5.106.3 "abbr" Characteristic Description

The description of the "abbr" characteristic for the "TDH" class is given in Table 5.106.3.

Table 5.106.3 Description of the "abbr" characteristic for the "TDH" class.
Descriptor | Definition
--- | ---
Characteristic Name | abbr
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | Alternative label to use for the header cell when referencing the cell in other contexts.

### 5.106.4 "axis" Characteristic Description

The description of the "axis" characteristic for the "TDH" class is given in Table 5.106.4.

Table 5.106.4 Description of the "axis" characteristic for the "TDH" class.
Descriptor | Definition
--- | ---
Characteristic Name | axis
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The axis characteristic is used to categorize cells. This can be used to group related columns of information.

### 5.106.5 "rowspan" Characteristic Description

The description of the "rowspan" characteristic for the "TDH" class is given in Table 5.106.5.

Table 5.106.5 Description of the "rowspan" characteristic for the "TDH" class.
Descriptor | Definition
--- | ---
Characteristic Name | rowspan
Data Type | Int (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The number of rows that the cell is to span.

### 5.106.6 "colspan" Characteristic Description

The description of the "colspan" characteristic for the "TDH" class is given in Table 5.106.6.

Table 5.106.6 Description of the "colspan" characteristic for the "TDH" class.
Descriptor | Definition
--- | ---
Characteristic Name | colspan
Data Type | Int (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The number of columns that the cell is to span.

### 5.106.7 "align" Characteristic Description

The description of the "align" characteristic for the "TDH" class is given in Table 5.106.7.

Table 5.106.7 Description of the "align" characteristic for the "TDH" class.
Descriptor | Definition
--- | ---
Characteristic Name | align
Data Type | Align
Value Space | Enumerated value set of: { left | center | right | justify | char }
Scope | Global ("+")
Multiplicity | [0..1]
Description | The horizontal alignment of the content in the cell.

### 5.106.8 "valign" Characteristic Description

The description of the "valign" characteristic for the "TDH" class is given in Table 5.106.8.

Table 5.106.8 Description of the "valign" characteristic for the "TDH" class.
Descriptor | Definition
--- | ---
Characteristic Name | valign
Data Type | Valign
Value Space | Enumerated value set of: { bottom | middle | top | baseline }
Scope | Global ("+")
Multiplicity | [0..1]
Description | The vertical alignment of the content in the cell.

### 5.106.9 "flowGroup" Attribute Description

The description of the "flowGroup" attribute for the "TDH" class is given in Table 5.106.9.

Table 5.106.9 Description of the "flowGroup" attribute for the "TDH" class.
Descriptor | Definition
--- | ---
Attribute Name | flowGroup
Data Type | FlowGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child that allows the complex content of the cell to be defined i.e. HTML flow content (this includes the QTI interactions)

## 5.107 TR Class Description

The data model for the "TR" class is shown in Figure 5.107 and the accompanying definition in Table 5.107.

Figure 5.107 - TR class definitions.

Table 5.107 Description of the "TR" class.
Descriptor | Definition
--- | ---
Class Name | TR
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: TablePart
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: tableCellGroup
Description | This makes the HTML tag 'tr' available for the definition of tables.

### 5.107.1 "tableCellGroup" Attribute Description

The description of the "tableCellGroup" attribute for the "TR" class is given in Table 5.107.1.

Table 5.107.1 Description of the "tableCellGroup" attribute for the "TR" class.
Descriptor | Definition
--- | ---
Attribute Name | tableCellGroup
Data Type | TableCellGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1.. unbounded]
Description | This is an abstact attribute that enables the table row to contain one or more 'th' or 'td' tags.

## 5.108 Table Class Description

The data model for the "Table" class is shown in Figure 5.108 and the accompanying definition in Table 5.108.

Figure 5.108 - Table class definitions.

Table 5.108 Description of the "Table" class.
Descriptor | Definition
--- | ---
Class Name | Table
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockContentModel FlowContentModel
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of characteristics are: summary The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: caption col colgroup thead tfoot tbody
Description | This provides the HTML 'table' tag functionality within the QTI context.

### 5.108.1 "summary" Characteristic Description

The description of the "summary" characteristic for the "Table" class is given in Table 5.108.1.

Table 5.108.1 Description of the "summary" characteristic for the "Table" class.
Descriptor | Definition
--- | ---
Characteristic Name | summary
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This allows a human readable summary of the Table to be provided.

### 5.108.2 "caption" Attribute Description

The description of the "caption" attribute for the "Table" class is given in Table 5.108.2.

Table 5.108.2 Description of the "caption" attribute for the "Table" class.
Descriptor | Definition
--- | ---
Attribute Name | caption
Data Type | Caption
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This allows the caption of the table to be supplied.

### 5.108.3 "col" Attribute Description

The description of the "col" attribute for the "Table" class is given in Table 5.108.3.

Table 5.108.3 Description of the "col" attribute for the "Table" class.
Descriptor | Definition
--- | ---
Attribute Name | col
Data Type | Col
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | If a table directly contains a col then it must not contain any colgroup elements.

### 5.108.4 "colgroup" Attribute Description

The description of the "colgroup" attribute for the "Table" class is given in Table 5.108.4.

Table 5.108.4 Description of the "colgroup" attribute for the "Table" class.
Descriptor | Definition
--- | ---
Attribute Name | colgroup
Data Type | ColGroup
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | If a table contains a colgroup it must not directly contain any col elements.

### 5.108.5 "thead" Attribute Description

The description of the "thead" attribute for the "Table" class is given in Table 5.108.5.

Table 5.108.5 Description of the "thead" attribute for the "Table" class.
Descriptor | Definition
--- | ---
Attribute Name | thead
Data Type | TablePart
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This permits the inclusion of the HTML 'thead' tag.

### 5.108.6 "tfoot" Attribute Description

The description of the "tfoot" attribute for the "Table" class is given in Table 5.108.6.

Table 5.108.6 Description of the "tfoot" attribute for the "Table" class.
Descriptor | Definition
--- | ---
Attribute Name | tfoot
Data Type | TablePart
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This permits the inclusion of the HTML 'tfoot' tag.

### 5.108.7 "tbody" Attribute Description

The description of the "tbody" attribute for the "Table" class is given in Table 5.108.7.

Table 5.108.7 Description of the "tbody" attribute for the "Table" class.
Descriptor | Definition
--- | ---
Attribute Name | tbody
Data Type | TablePart
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | This permits the inclusion of the HTML 'tbody' tags.

## 5.109 TablePart Class Description

The data model for the "TablePart" class is shown in Figure 5.109 and the accompanying definition in Table 5.109.

Figure 5.109 - TablePart class definitions.

Table 5.109 Description of the "TablePart" class.
Descriptor | Definition
--- | ---
Class Name | TablePart
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: Table
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequence
Characteristics | The set of inherited characteristics are: id class language label dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: tr
Description | This allows the construction of the internal structures in the HTML Table tag, namely: the head, foot and body of the table.

### 5.109.1 "tr" Attribute Description

The description of the "tr" attribute for the "TablePart" class is given in Table 5.109.1.

Table 5.109.1 Description of the "tr" attribute for the "TablePart" class.
Descriptor | Definition
--- | ---
Attribute Name | tr
Data Type | TR
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1.. unbounded]
Description | This enables the set of HTML 'tr' tags to be inserted into the 'head', 'foot' and 'body' parts of the Table.

## 5.110 TemplateBlock Class Description

The data model for the "TemplateBlock" class is shown in Figure 5.110 and the accompanying definition in Table 5.110.

Figure 5.110 - TemplateBlock class definitions.

Table 5.110 Description of the "TemplateBlock" class.
Descriptor | Definition
--- | ---
Class Name | TemplateBlock
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: BlockGroup BlockStaticGroup FeedandTempBlockStatic FeedbackFlowStaticGroup FlowGroup FlowStaticGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of characteristics are: templateIdentifier showHide identifier The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: fatBlockStatic stylesheet apipAccessibility
Description | This class is used to define the block content structures that are available for the creation of Item templates. A templateBlock must not contain any interactions, either directly or indirectly.

### 5.110.1 "templateIdentifier" Characteristic Description

The description of the "templateIdentifier" characteristic for the "TemplateBlock" class is given in Table 5.110.1.

Table 5.110.1 Description of the "templateIdentifier" characteristic for the "TemplateBlock" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of a template variable that must have a base-type of identifier and be of either single or multiple cardinality. The visibility of the templateBlock is controlled by the value of the variable.

### 5.110.2 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "TemplateBlock" class is given in Table 5.110.2.

Table 5.110.2 Description of the "showHide" characteristic for the "TemplateBlock" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide characteristic determines how the visibility of the templateBlock is controlled in the same way as in the feedbackBlock.

### 5.110.3 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "TemplateBlock" class is given in Table 5.110.3.

Table 5.110.3 Description of the "identifier" characteristic for the "TemplateBlock" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier that determines the visibility of the templateBlock in conjunction with the showHide characteristic.

### 5.110.4 "fatBlockStatic" Attribute Description

The description of the "fatBlockStatic" attribute for the "TemplateBlock" class is given in Table 5.110.4.

Table 5.110.4 Description of the "fatBlockStatic" attribute for the "TemplateBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | fatBlockStatic
Data Type | FeedandTempBlockStatic
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child that enables the complex content to be build upon HTML flow structures.

### 5.110.5 "stylesheet" Attribute Description

The description of the "stylesheet" attribute for the "TemplateBlock" class is given in Table 5.110.5.

Table 5.110.5 Description of the "stylesheet" attribute for the "TemplateBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | stylesheet
Data Type | StyleSheet
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The set of external style sheets that are associated with the templateBlock. The order of definition is significant.

### 5.110.6 "apipAccessibility" Attribute Description

The description of the "apipAccessibility" attribute for the "TemplateBlock" class is given in Table 5.110.6.

Table 5.110.6 Description of the "apipAccessibility" attribute for the "TemplateBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | apipAccessibility
Data Type | APIPAccessibility
Value Space | Imported
Scope | Global ("+")
Multiplicity | [0..1]
Description | The accessibility information that is to be associated with the content in the templateBlock. The structure of this content is defined in [APIP, 2014].

## 5.111 TemplateBlockFeedbackBlock Class Description

The data model for the "TemplateBlockFeedbackBlock" class is shown in Figure 5.111 and the accompanying definition in Table 5.111.

Figure 5.111 - TemplateBlockFeedbackBlock class definitions.

Table 5.111 Description of the "TemplateBlockFeedbackBlock" class.
Descriptor | Definition
--- | ---
Class Name | TemplateBlockFeedbackBlock
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: FeedandTempBlockStatic
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of characteristics are: outcomeIdentifier showHide identifier The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: fatBlockStatic stylesheet apipAccessibility
Description | This enables the Block content to be placed in template blocks. This structure is used to add constraints on how the block content can be used in recursive block templates.

### 5.111.1 "outcomeIdentifier" Characteristic Description

The description of the "outcomeIdentifier" characteristic for the "TemplateBlockFeedbackBlock" class is given in Table 5.111.1.

Table 5.111.1 Description of the "outcomeIdentifier" characteristic for the "TemplateBlockFeedbackBlock" class.
Descriptor | Definition
--- | ---
Characteristic Name | outcomeIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of an outcome variable that must have a base-type of identifier and be of either single or multiple cardinality. The visibility of the block content is controlled by assigning a value (or values) to this outcome variable during template Processing.

### 5.111.2 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "TemplateBlockFeedbackBlock" class is given in Table 5.111.2.

Table 5.111.2 Description of the "showHide" characteristic for the "TemplateBlockFeedbackBlock" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide characteristic determines how the visibility of the content is controlled in the same way as in the feedbackBlock/templateBlock.

### 5.111.3 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "TemplateBlockFeedbackBlock" class is given in Table 5.111.3.

Table 5.111.3 Description of the "identifier" characteristic for the "TemplateBlockFeedbackBlock" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier that determines the visibility of the content block in conjunction with the showHide characteristc.

### 5.111.4 "fatBlockStatic" Attribute Description

The description of the "fatBlockStatic" attribute for the "TemplateBlockFeedbackBlock" class is given in Table 5.111.4.

Table 5.111.4 Description of the "fatBlockStatic" attribute for the "TemplateBlockFeedbackBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | fatBlockStatic
Data Type | FeedandTempBlockStatic
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child that enables the complex content to be build upon HTML flow structures.

### 5.111.5 "stylesheet" Attribute Description

The description of the "stylesheet" attribute for the "TemplateBlockFeedbackBlock" class is given in Table 5.111.5.

Table 5.111.5 Description of the "stylesheet" attribute for the "TemplateBlockFeedbackBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | stylesheet
Data Type | StyleSheet
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The set of external style sheets that are associated with the content Block. The order of definition is significant.

### 5.111.6 "apipAccessibility" Attribute Description

The description of the "apipAccessibility" attribute for the "TemplateBlockFeedbackBlock" class is given in Table 5.111.6.

Table 5.111.6 Description of the "apipAccessibility" attribute for the "TemplateBlockFeedbackBlock" class.
Descriptor | Definition
--- | ---
Attribute Name | apipAccessibility
Data Type | APIPAccessibility
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | The accessibility information that is to be associated with the content in the Block. The structure of this content is defined in [APIP, 2014].

## 5.112 TemplateCondition Class Description

The data model for the "TemplateCondition" class is shown in Figure 5.112 and the accompanying definition in Table 5.112.

Figure 5.112 - TemplateCondition class definitions.

Table 5.112 Description of the "TemplateCondition" class.
Descriptor | Definition
--- | ---
Class Name | TemplateCondition
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: TemplateRuleGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: templateIf templateElseIf templateElse
Description | This class enables the definition of the template processing 'If..Then..Else' clause. If the expression given in the templateIf or templateElseIf evaluates to 'true' then the sub-rules contained within it are followed and any following templateElseIf or templateElse parts are ignored for this template condition. If the expression given in the templateIf or templateElseIf does not evaluate to 'true' then consideration passes to the next templateElseIf or, if there are no more templateElseIf parts then the sub-rules of the templateElse are followed (if specified).

### 5.112.1 "templateIf" Attribute Description

The description of the "templateIf" attribute for the "TemplateCondition" class is given in Table 5.112.1.

Table 5.112.1 Description of the "templateIf" attribute for the "TemplateCondition" class.
Descriptor | Definition
--- | ---
Attribute Name | templateIf
Data Type | TemplateIf
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | A templateIf part, this must occur, consists of an expression which must have an effective baseType of boolean and single cardinality. For more information about the runtime data model employed see Expressions (Section 2). It also contains a set of sub-rules. If the expression is true then the sub-rules are processed, otherwise they are skipped (including if the expression is NULL) and the following templateElseIf or templateElse parts (if any) are considered instead.

### 5.112.2 "templateElseIf" Attribute Description

The description of the "templateElseIf" attribute for the "TemplateCondition" class is given in Table 5.112.2.

Table 5.112.2 Description of the "templateElseIf" attribute for the "TemplateCondition" class.
Descriptor | Definition
--- | ---
Attribute Name | templateElseIf
Data Type | TemplateIf
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | A templateElseIf part consists of an expression which must have an effective baseType of boolean and single cardinality. For more information about the runtime data model employed see Expressions (Section 2). It also contains a set of sub-rules. If the expression is true then the sub-rules are processed, otherwise they are skipped (including if the expression is NULL) and the following templateElseIf or templateElse parts (if any) are considered instead.

### 5.112.3 "templateElse" Attribute Description

The description of the "templateElse" attribute for the "TemplateCondition" class is given in Table 5.112.3.

Table 5.112.3 Description of the "templateElse" attribute for the "TemplateCondition" class.
Descriptor | Definition
--- | ---
Attribute Name | templateElse
Data Type | TemplateElse
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the 'Else' part of the 'If..Then..Else' clause. There may be only one 'else' clause.

## 5.113 TemplateConstraint Class Description

The data model for the "TemplateConstraint" class is shown in Figure 5.113 and the accompanying definition in Table 5.113.

Figure 5.113 - TemplateConstraint class definitions.

Table 5.113 Description of the "TemplateConstraint" class.
Descriptor | Definition
--- | ---
Class Name | TemplateConstraint
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: TemplateRuleGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: expressionGroup
Description | A templateConstraint contains an expression which must have an effective baseType of boolean and single cardinality. For more information about the runtime data model employed see Expressions (Section 2). If the expression is 'false' (including if the expression is NULL), the template variables are set to their default values and templateProcessing is restarted; this happens repeatedly until the expression is 'true' or the maximum number of iterations is reached. In the event that the maximum number of iterations is reached, any default values provided for the variables during declaration are used. Processing then continues with the next templateRule after the templateConstraint, or finishes if there are no further templateRules. By using a templateConstraint, authors can ensure that the values of variables set during templateProcessing satisfy the condition specified by the boolean expression. For example, two randomly selected numbers might be required which have no common factors. A templateConstraint may occur anywhere as a child of templateProcessing. It may not be used as a child of any other element. Any number of templateConstraints may be used, though two or more consecutive templateConstraints could be combined using the 'and' element to combine their boolean expressions. The maximum number of times that the operations preceding the templateConstraint can be expected to be performed is assumed to be 100; implementations may permit more iterations, but there must be a finite maximum number of iterations. This prevents the occurrence of an endless loop. It is the responsibility of the author to provide default values for any variables assigned under a templateConstraint.

### 5.113.1 "expressionGroup" Attribute Description

The description of the "expressionGroup" attribute for the "TemplateConstraint" class is given in Table 5.113.1.

Table 5.113.1 Description of the "expressionGroup" attribute for the "TemplateConstraint" class.
Descriptor | Definition
--- | ---
Attribute Name | expressionGroup
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the required QTI expression to be identified.

## 5.114 TemplateDeclaration Class Description

The data model for the "TemplateDeclaration" class is shown in Figure 5.114 and the accompanying definition in Table 5.114.

Figure 5.114 - TemplateDeclaration class definitions.

Table 5.114 Description of the "TemplateDeclaration" class.
Descriptor | Definition
--- | ---
Class Name | TemplateDeclaration
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: AssessmentItem
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: identifier cardinality baseType paramVariable mathVariable
Children | The set of children attributes are: defaultValue
Description | Template declarations declare item variables that are to be used specifically for the purposes of cloning items. They can have their value set only during templateProcessing. They are referred to within the itemBody in order to individualize the clone and possibly also within the responseProcessing rules if the cloning process affects the way the item is scored.

### 5.114.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "TemplateDeclaration" class is given in Table 5.114.1.

Table 5.114.1 Description of the "identifier" characteristic for the "TemplateDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifiers of the built-in session variables are reserved. They are completionStatus, numAttempts and duration. All Item variables declared in an item share the same namespace. Different items have different namespaces.

### 5.114.2 "cardinality" Characteristic Description

The description of the "cardinality" characteristic for the "TemplateDeclaration" class is given in Table 5.114.2.

Table 5.114.2 Description of the "cardinality" characteristic for the "TemplateDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | cardinality
Data Type | Cardinality
Value Space | Enumerated value set of: { multiple | ordered | record | single }
Scope | Global ("+")
Multiplicity | [1]
Description | Each variable is either single valued or multi-valued. Multi-valued variables are referred to as containers and come in ordered, unordered and record types.

### 5.114.3 "baseType" Characteristic Description

The description of the "baseType" characteristic for the "TemplateDeclaration" class is given in Table 5.114.3.

Table 5.114.3 Description of the "baseType" characteristic for the "TemplateDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | baseType
Data Type | BaseType
Value Space | Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope | Global ("+")
Multiplicity | [0..1]
Description | The value space from which the variable's value can be drawn (or in the case of containers, from which the individual values are drawn) is identified with a baseType. The baseType selects one of a small set of predefined types that are considered to have atomic values within the runtime data model. Variables with record cardinality have no base-type.

### 5.114.4 "paramVariable" Characteristic Description

The description of the "paramVariable" characteristic for the "TemplateDeclaration" class is given in Table 5.114.4.

Table 5.114.4 Description of the "paramVariable" characteristic for the "TemplateDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | paramVariable
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This characteristic determines whether or not the template variable's value should be substituted for object parameter values that match its name.

### 5.114.5 "mathVariable" Characteristic Description

The description of the "mathVariable" characteristic for the "TemplateDeclaration" class is given in Table 5.114.5.

Table 5.114.5 Description of the "mathVariable" characteristic for the "TemplateDeclaration" class.
Descriptor | Definition
--- | ---
Characteristic Name | mathVariable
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This characteristic determines whether or not the template variable's value should be substituted for identifiers that match its name in MathML expressions. See Combining Template Variables and MathML (Section 2) for more information.

### 5.114.6 "defaultValue" Attribute Description

The description of the "defaultValue" attribute for the "TemplateDeclaration" class is given in Table 5.114.6.

Table 5.114.6 Description of the "defaultValue" attribute for the "TemplateDeclaration" class.
Descriptor | Definition
--- | ---
Attribute Name | defaultValue
Data Type | DefaultValue
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | An optional default value for the template variable. The point at which a variable is set to its default value varies depending on the type of item variable.

## 5.115 TemplateDefault Class Description

The data model for the "TemplateDefault" class is shown in Figure 5.115 and the accompanying definition in Table 5.115.

Figure 5.115 - TemplateDefault class definitions.

Table 5.115 Description of the "TemplateDefault" class.
Descriptor | Definition
--- | ---
Class Name | TemplateDefault
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: AssessmentItemRef
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: templateIdentifier
Children | The set of children attributes are: expressionGroup
Description | The default value of a template variable in an item can be overridden based on the test context in which the template is instantiated. The value is obtained by evaluating an expression defined within the reference to the item at test level and which may therefore depend on the values of variables taken from other items in the test or from outcomes defined at test level itself. For consistent results it is vital that the expression is evaluated at the correct time. When the assessmentItemRef occurs in a testPart navigated in linear mode the expression is evaluated immediately prior to the start of the first attempt, after any pre-conditions are evaluated and acted upon but before the templateProcessing rules of the item itself are followed. In nonlinear mode the expression is evaluated at the start of the testPart. In both cases, the timing is unaffected by the submissionMode in effect. Care needs to be taken to ensure that values of response variables are not used before they have been submitted and that outcome variables are not used before their values have been set by the corresponding response or outcomes processing steps. The facility of overriding template defaults allows item templates to be linked to other items (or templates) within a test. A candidate response from one item can be used directly to affect the presentation or even the behaviour of an item presented after it. However once the template is instantiated it operates independently - there is no dynamic link created between the items and no concept of a shared variable space between them.

### 5.115.1 "templateIdentifier" Characteristic Description

The description of the "templateIdentifier" characteristic for the "TemplateDefault" class is given in Table 5.115.1.

Table 5.115.1 Description of the "templateIdentifier" characteristic for the "TemplateDefault" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the template variable affected.

### 5.115.2 "expressionGroup" Attribute Description

The description of the "expressionGroup" attribute for the "TemplateDefault" class is given in Table 5.115.2.

Table 5.115.2 Description of the "expressionGroup" attribute for the "TemplateDefault" class.
Descriptor | Definition
--- | ---
Attribute Name | expressionGroup
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the identifiation of the required expression. An expression which must result in a value with baseType and cardinality matching the declaration of the associated variable's templateDeclaration.

## 5.116 TemplateElse Class Description

The data model for the "TemplateElse" class is shown in Figure 5.116 and the accompanying definition in Table 5.116.

Figure 5.116 - TemplateElse class definitions.

Table 5.116 Description of the "TemplateElse" class.
Descriptor | Definition
--- | ---
Class Name | TemplateElse
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: TemplateCondition
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: templateRuleGroup
Description | This enables the definition of the 'Else' clause of the 'If..Then..Else' rule construction when defining a template.

### 5.116.1 "templateRuleGroup" Attribute Description

The description of the "templateRuleGroup" attribute for the "TemplateElse" class is given in Table 5.116.1.

Table 5.116.1 Description of the "templateRuleGroup" attribute for the "TemplateElse" class.
Descriptor | Definition
--- | ---
Attribute Name | templateRuleGroup
Data Type | TemplateRuleGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the definition of the 'Else' clause.

## 5.117 TemplateIf Class Description

The data model for the "TemplateIf" class is shown in Figure 5.117 and the accompanying definition in Table 5.117.

Figure 5.117 - TemplateIf class definitions.

Table 5.117 Description of the "TemplateIf" class.
Descriptor | Definition
--- | ---
Class Name | TemplateIf
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: TemplateCondition
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: expressionGroup templateRuleGroup
Description | This provides the 'If' and 'ElseIf' clauses of the 'If..Then..Else' for the template processing functionality. A responseIf part consists of an expression which must have an effective baseType of boolean and single cardinality. For more information about the runtime data model employed see Expressions (Section 2). It also contains a set of sub-rules. If the expression is true then the sub-rules are processed, otherwise they are skipped (including if the expression is NULL) and the following templateElseIf or templateElse parts (if any) are considered instead.

### 5.117.1 "expressionGroup" Attribute Description

The description of the "expressionGroup" attribute for the "TemplateIf" class is given in Table 5.117.1.

Table 5.117.1 Description of the "expressionGroup" attribute for the "TemplateIf" class.
Descriptor | Definition
--- | ---
Attribute Name | expressionGroup
Data Type | ExpressionGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the expression for the 'If' clause to be defined.

### 5.117.2 "templateRuleGroup" Attribute Description

The description of the "templateRuleGroup" attribute for the "TemplateIf" class is given in Table 5.117.2.

Table 5.117.2 Description of the "templateRuleGroup" attribute for the "TemplateIf" class.
Descriptor | Definition
--- | ---
Attribute Name | templateRuleGroup
Data Type | TemplateRuleGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract attribute that enables the set of template rules that define the 'If' clause to be entered.

## 5.118 TemplateInline Class Description

The data model for the "TemplateInline" class is shown in Figure 5.118 and the accompanying definition in Table 5.118.

Figure 5.118 - TemplateInline class definitions.

Table 5.118 Description of the "TemplateInline" class.
Descriptor | Definition
--- | ---
Class Name | TemplateInline
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: FeedandTempBlockStatic FeedbackBlockStatic FeedbackFlowStaticGroup FeedbackInlineGroup FlowGroup FlowStaticGroup InlineChoiceGroup InlineGroup InlineStaticGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBase
Characteristics | The set of characteristics are: templateIdentifier showHide identifier The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of children attributes are: inlineStaticGroup
Description | This enables the Inline content to be placed in templates. This structure is used to add constraints on how the inline content can be used in recursive templates.

### 5.118.1 "templateIdentifier" Characteristic Description

The description of the "templateIdentifier" characteristic for the "TemplateInline" class is given in Table 5.118.1.

Table 5.118.1 Description of the "templateIdentifier" characteristic for the "TemplateInline" class.
Descriptor | Definition
--- | ---
Characteristic Name | templateIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of a template variable that must have a base-type of identifier and be of either single or multiple cardinality.

### 5.118.2 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "TemplateInline" class is given in Table 5.118.2.

Table 5.118.2 Description of the "showHide" characteristic for the "TemplateInline" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide } Default = "show".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The showHide characteristic determines how the visibility of the content is controlled in the same way as in the templateBlock.

### 5.118.3 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "TemplateInline" class is given in Table 5.118.3.

Table 5.118.3 Description of the "identifier" characteristic for the "TemplateInline" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier characteristic, in conjunction with the showHide characteristic, determines the visibility of the content block.

### 5.118.4 "inlineStaticGroup" Attribute Description

The description of the "inlineStaticGroup" attribute for the "TemplateInline" class is given in Table 5.118.4.

Table 5.118.4 Description of the "inlineStaticGroup" attribute for the "TemplateInline" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineStaticGroup
Data Type | InlineStaticGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child that enables the complex content to be build upon HTML inline structures (interactions are not permitted).

## 5.119 TemplateProcessing Class Description

The data model for the "TemplateProcessing" class is shown in Figure 5.119 and the accompanying definition in Table 5.119.

Figure 5.119 - TemplateProcessing class definitions.

Table 5.119 Description of the "TemplateProcessing" class.
Descriptor | Definition
--- | ---
Class Name | TemplateProcessing
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: AssessmentItem
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: templateRuleGroup
Description | Template processing consists of one or more templateRules that are followed by the cloning engine or delivery system in order to assign values to the template variables. Template processing is identical in form to responseProcessing except that the purpose is to assign values to template variables, not outcome variables.

### 5.119.1 "templateRuleGroup" Attribute Description

The description of the "templateRuleGroup" attribute for the "TemplateProcessing" class is given in Table 5.119.1.

Table 5.119.1 Description of the "templateRuleGroup" attribute for the "TemplateProcessing" class.
Descriptor | Definition
--- | ---
Attribute Name | templateRuleGroup
Data Type | TemplateRuleGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1.. unbounded]
Description | This is an abstract attribute that enables the definition of the each of the template rules used to generate the values for the template variables.

## 5.120 TestFeedback Class Description

The data model for the "TestFeedback" class is shown in Figure 5.120 and the accompanying definition in Table 5.120.

Figure 5.120 - TestFeedback class definitions.

Table 5.120 Description of the "TestFeedback" class.
Descriptor | Definition
--- | ---
Class Name | TestFeedback
Class Type | Container [ Sequence , Mixed ]
Parents | The set of parent classes are: AssessmentTest TestPart
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: access outcomeIdentifier showHide identifier title
Children | The set of children attributes are: feedbackFlowStaticGroup stylesheet apipAccessibility
Description | This enables the definition of the test-level feedback including the content and when the feedback is to be revealed.

### 5.120.1 "access" Characteristic Description

The description of the "access" characteristic for the "TestFeedback" class is given in Table 5.120.1.

Table 5.120.1 Description of the "access" characteristic for the "TestFeedback" class.
Descriptor | Definition
--- | ---
Characteristic Name | access
Data Type | TestFeedbackAccess
Value Space | Enumerated value set of: { atEnd | during }
Scope | Global ("+")
Multiplicity | [1]
Description | This is used to define when the test feedback will be avilable. Test feedback is shown to the candidate either directly following outcome processing (during the test) or at the end of the testPart or assessmentTest as appropriate (referred to as atEnd).

### 5.120.2 "outcomeIdentifier" Characteristic Description

The description of the "outcomeIdentifier" characteristic for the "TestFeedback" class is given in Table 5.120.2.

Table 5.120.2 Description of the "outcomeIdentifier" characteristic for the "TestFeedback" class.
Descriptor | Definition
--- | ---
Characteristic Name | outcomeIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of an outcome variable that must have a base-type of identifier and be of either single or multiple cardinality. The visibility of the test feedback is controlled by assigning a value (or values) to this outcome variable during Outcomes Processing.

### 5.120.3 "showHide" Characteristic Description

The description of the "showHide" characteristic for the "TestFeedback" class is given in Table 5.120.3.

Table 5.120.3 Description of the "showHide" characteristic for the "TestFeedback" class.
Descriptor | Definition
--- | ---
Characteristic Name | showHide
Data Type | ShowHide
Value Space | Enumerated value set of: { show | hide }
Scope | Global ("+")
Multiplicity | [1]
Description | The showHide characteristic determines how the visibility of the content is controlled in the same way as in the feedbackBlock.

### 5.120.4 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "TestFeedback" class is given in Table 5.120.4.

Table 5.120.4 Description of the "identifier" characteristic for the "TestFeedback" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier that determines the visibility of the test feedback in conjunction with the showHide characteristic.

### 5.120.5 "title" Characteristic Description

The description of the "title" characteristic for the "TestFeedback" class is given in Table 5.120.5.

Table 5.120.5 Description of the "title" characteristic for the "TestFeedback" class.
Descriptor | Definition
--- | ---
Characteristic Name | title
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | Delivery engines are not required to present the title to the candidate but may do so, for example as the title of a modal pop-up window or sub-heading in a combined report.

### 5.120.6 "feedbackFlowStaticGroup" Attribute Description

The description of the "feedbackFlowStaticGroup" attribute for the "TestFeedback" class is given in Table 5.120.6.

Table 5.120.6 Description of the "feedbackFlowStaticGroup" attribute for the "TestFeedback" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackFlowStaticGroup
Data Type | FeedbackFlowStaticGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [0.. unbounded]
Description | This is an abstract child that enables the complex feedback content to be build upon HTML flow structures. This must not contain interactions.

### 5.120.7 "stylesheet" Attribute Description

The description of the "stylesheet" attribute for the "TestFeedback" class is given in Table 5.120.7.

Table 5.120.7 Description of the "stylesheet" attribute for the "TestFeedback" class.
Descriptor | Definition
--- | ---
Attribute Name | stylesheet
Data Type | StyleSheet
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | The set of external style sheets that are associated with the templateBlock. The order of definition is significant.

### 5.120.8 "apipAccessibility" Attribute Description

The description of the "apipAccessibility" attribute for the "TestFeedback" class is given in Table 5.120.8.

Table 5.120.8 Description of the "apipAccessibility" attribute for the "TestFeedback" class.
Descriptor | Definition
--- | ---
Attribute Name | apipAccessibility
Data Type | APIPAccessibility
Value Space | Imported
Scope | Global ("+")
Multiplicity | [0..1]
Description | The accessibility information that is to be associated with the content in the templateBlock. The structure of this content is defined in [APIP, 2014].

## 5.121 TestPart Class Description

The data model for the "TestPart" class is shown in Figure 5.121 and the accompanying definition in Table 5.121.

Figure 5.121 - TestPart class definitions.

Table 5.121 Description of the "TestPart" class.
Descriptor | Definition
--- | ---
Class Name | TestPart
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: AssessmentTest
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | The set of characteristics are: identifier navigationMode submissionMode
Children | The set of children attributes are: preCondition branchRule itemSessionControl timeLimits assessmentSectionSelection testFeedback
Description | A test is composed of one or more test parts. A testPart represents a major division of the test and is used to control the basic mode parameters that apply to all sections and sub-sections within that part.

### 5.121.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "TestPart" class is given in Table 5.121.1.

Table 5.121.1 Description of the "identifier" characteristic for the "TestPart" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the test part must be unique within the test and must not be the identifier of any assessmentSection or assessmentItemRef.

### 5.121.2 "navigationMode" Characteristic Description

The description of the "navigationMode" characteristic for the "TestPart" class is given in Table 5.121.2.

Table 5.121.2 Description of the "navigationMode" characteristic for the "TestPart" class.
Descriptor | Definition
--- | ---
Characteristic Name | navigationMode
Data Type | NavigationMode
Value Space | Enumerated value set of: { linear | nonlinear }
Scope | Global ("+")
Multiplicity | [1]
Description | The navigation mode determines the general paths that the candidate may take. A testPart in linear mode restricts the candidate to attempt each item in turn. Once the candidate moves on they are not permitted to return. A testPart in nonlinear mode removes this restriction - the candidate is free to navigate to any item in the test at any time. Test delivery systems are free to implement their own user interface elements to facilitate navigation provided they honour the navigation mode currently in effect. A test delivery system may implement nonlinear mode simply by providing a method to step forward or backwards through the test part.

### 5.121.3 "submissionMode" Characteristic Description

The description of the "submissionMode" characteristic for the "TestPart" class is given in Table 5.121.3.

Table 5.121.3 Description of the "submissionMode" characteristic for the "TestPart" class.
Descriptor | Definition
--- | ---
Characteristic Name | submissionMode
Data Type | SubmissionMode
Value Space | Enumerated value set of: { individual | simultaneous }
Scope | Global ("+")
Multiplicity | [1]
Description | The submission mode determines when the candidate's responses are submitted for response processing. A testPart in individual mode requires the candidate to submit their responses on an item-by-item basis. In simultaneous mode the candidate's responses are all submitted together at the end of the testPart. The choice of submission mode determines the states through which each item's session can pass during the test. In simultaneous mode, response processing cannot take place until the testPart is complete so each item session passes between the interacting and suspended states only. By definition the candidate can take one and only one attempt at each item and feedback cannot be seen during the test. For this reason, adaptive items are not compatible with the simultaneous mode. Whether or not the candidate can return to review their responses and/or any item-level feedback after the test, is outside the scope of this specification. Simultaneous mode is typical of paper-based tests. In individual mode response processing may take place during the test and the item session may pass through any of the states described in Items, subject to the itemSessionControl settings in force. Care should be taken when designing user interfaces for systems that support nonlinear navigation mode in combination with individual submission. With this combination candidates may change their responses for an item and then leave it in the suspended state by navigating to a different item in the same part of the test. Test delivery systems need to make it clear to candidates that there are unsubmitted responses (akin to unsaved changes in a traditional document editing system) at the end of the test part. A test delivery system may force candidates to submit or discard such responses before moving to a different item in individual mode if this is more appropriate.

### 5.121.4 "preCondition" Attribute Description

The description of the "preCondition" attribute for the "TestPart" class is given in Table 5.121.4.

Table 5.121.4 Description of the "preCondition" attribute for the "TestPart" class.
Descriptor | Definition
--- | ---
Attribute Name | preCondition
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | An optional set of conditions evaluated during the test, that determine if this part is to be skipped.

### 5.121.5 "branchRule" Attribute Description

The description of the "branchRule" attribute for the "TestPart" class is given in Table 5.121.5.

Table 5.121.5 Description of the "branchRule" attribute for the "TestPart" class.
Descriptor | Definition
--- | ---
Attribute Name | branchRule
Data Type | BranchRule
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | An optional set of rules, evaluated during the test, for setting an alternative target as the next part of the test.

### 5.121.6 "itemSessionControl" Attribute Description

The description of the "itemSessionControl" attribute for the "TestPart" class is given in Table 5.121.6.

Table 5.121.6 Description of the "itemSessionControl" attribute for the "TestPart" class.
Descriptor | Definition
--- | ---
Attribute Name | itemSessionControl
Data Type | ItemSessionControl
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | Parameters used to control the allowable states of each item session in this part. These values may be overridden at section and item level.

### 5.121.7 "timeLimits" Attribute Description

The description of the "timeLimits" attribute for the "TestPart" class is given in Table 5.121.7.

Table 5.121.7 Description of the "timeLimits" attribute for the "TestPart" class.
Descriptor | Definition
--- | ---
Attribute Name | timeLimits
Data Type | TimeLimits
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | Optionally controls the amount of time a candidate is allowed for this part of the test.

### 5.121.8 "assessmentSectionSelection" Attribute Description

The description of the "assessmentSectionSelection" attribute for the "TestPart" class is given in Table 5.121.8.

Table 5.121.8 Description of the "assessmentSectionSelection" attribute for the "TestPart" class.
Descriptor | Definition
--- | ---
Attribute Name | assessmentSectionSelection
Data Type | AssessmentSectionSelection
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1.. unbounded]
Description | This is an abstract class that allows the set of child items and sections to be identified. The items contained in each testPart are arranged into sections and sub-sections.

### 5.121.9 "testFeedback" Attribute Description

The description of the "testFeedback" attribute for the "TestPart" class is given in Table 5.121.9.

Table 5.121.9 Description of the "testFeedback" attribute for the "TestPart" class.
Descriptor | Definition
--- | ---
Attribute Name | testFeedback
Data Type | TestFeedback
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | Test-level feedback specific to this part of the test.

## 5.122 TextEntryInteraction Class Description

The data model for the "TextEntryInteraction" class is shown in Figure 5.122 and the accompanying definition in Table 5.122.

Figure 5.122 - TextEntryInteraction class definitions.

Table 5.122 Description of the "TextEntryInteraction" class.
Descriptor | Definition
--- | ---
Class Name | TextEntryInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: FlowGroup InlineGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BaseSequenceXBaseEmpty
Characteristics | The set of characteristics are: responseIdentifier base stringIdentifier expectedLength patternMask placeholderText format The set of inherited characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | A TextEntry Interaction is an inlineInteraction that obtains a simple piece of text from the candidate. Like inlineChoiceInteraction, the delivery engine must allow the candidate to review their choice within the context of the surrounding text. The textEntryInteraction must be bound to a response variable with single or record cardinality only. If the response variable has single cardinality the baseType must be one of string, integer or float; if it has record cardinality the permitted fields are 'stringValue', 'floatValue', etc.

### 5.122.1 "responseIdentifier" Characteristic Description

The description of the "responseIdentifier" characteristic for the "TextEntryInteraction" class is given in Table 5.122.1.

Table 5.122.1 Description of the "responseIdentifier" characteristic for the "TextEntryInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | responseIdentifier
Data Type | UniqueIdentifierRef
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The response variable associated with the interaction.

### 5.122.2 "base" Characteristic Description

The description of the "base" characteristic for the "TextEntryInteraction" class is given in Table 5.122.2.

Table 5.122.2 Description of the "base" characteristic for the "TextEntryInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | base
Data Type | Int (Primitive-type)
Value Space | See Appendix A1.3. Default = "10".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If the string interaction is bound to a numeric response variable then the base attribute must be used to set the number base in which to interpret the value entered by the candidate.

### 5.122.3 "stringIdentifier" Characteristic Description

The description of the "stringIdentifier" characteristic for the "TextEntryInteraction" class is given in Table 5.122.3.

Table 5.122.3 Description of the "stringIdentifier" characteristic for the "TextEntryInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | stringIdentifier
Data Type | UniqueIdentifierRef
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | If the string interaction is bound to a numeric response variable then the actual string entered by the candidate can also be captured by binding the interaction to a second response variable (of base-type string).

### 5.122.4 "expectedLength" Characteristic Description

The description of the "expectedLength" characteristic for the "TextEntryInteraction" class is given in Table 5.122.4.

Table 5.122.4 Description of the "expectedLength" characteristic for the "TextEntryInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | expectedLength
Data Type | NonNegativeInteger (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The expectedLength characteristic provides a hint to the candidate as to the expected overall length of the desired response measured in number of characters. A Delivery Engine should use the value of this attribute to set the size of the response box, where applicable. This is not a validity constraint.

### 5.122.5 "patternMask" Characteristic Description

The description of the "patternMask" characteristic for the "TextEntryInteraction" class is given in Table 5.122.5.

Table 5.122.5 Description of the "patternMask" characteristic for the "TextEntryInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | patternMask
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | If given, the pattern mask specifies a regular expression that the candidate's response must match in order to be considered valid. The regular expression language used is defined in Appendix F of [XSCHEMA2, 01]. Care is needed to ensure that the format of the required input is clear to the candidate, especially when validity checking of responses is required for progression through a test. This could be done by providing an illustrative sample response in the prompt, for example.

### 5.122.6 "placeholderText" Characteristic Description

The description of the "placeholderText" characteristic for the "TextEntryInteraction" class is given in Table 5.122.6.

Table 5.122.6 Description of the "placeholderText" characteristic for the "TextEntryInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | placeholderText
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | In visual environments, string interactions are typically represented by empty boxes into which the candidate writes or types. However, in speech based environments it is helpful to have some placeholder text that can be used to vocalize the interaction. Delivery engines should use the value of this attribute (if provided) instead of their default placeholder text when this is required. Implementors should be aware of the issues concerning the use of default values described in the section on Response Variables.

### 5.122.7 "format" Characteristic Description

The description of the "format" characteristic for the "TextEntryInteraction" class is given in Table 5.122.7.

Table 5.122.7 Description of the "format" characteristic for the "TextEntryInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | format
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | Used to control the format of the text entered by the candidate. This characteristic affects the way the value of the associated response variable should be interpreted by response processing engines and also controls the way it should be captured in the delivery engine.

## 5.123 UploadInteraction Class Description

The data model for the "UploadInteraction" class is shown in Figure 5.123 and the accompanying definition in Table 5.123.

Figure 5.123 - UploadInteraction class definitions.

Table 5.123 Description of the "UploadInteraction" class.
Descriptor | Definition
--- | ---
Class Name | UploadInteraction
Class Type | Container [ Sequence ]
Parents | The set of parent classes are: BlockGroup FlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: BasePromptInteraction
Characteristics | The set of characteristics are: type The set of inherited characteristics are: id class language label base responseIdentifier dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | The set of inherited children attributes are: prompt
Description | The Upload Interaction allows the candidate to upload a pre-prepared file representing their response. It must be bound to a response variable with base-type file and single cardinality.

### 5.123.1 "type" Characteristic Description

The description of the "type" characteristic for the "UploadInteraction" class is given in Table 5.123.1.

Table 5.123.1 Description of the "type" characteristic for the "UploadInteraction" class.
Descriptor | Definition
--- | ---
Characteristic Name | type
Data Type | MimeType
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The expected mime-type of the uploaded file.

toc | top

# 6. Abstract Class Descriptions

All of the abstract data classes used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.2.

## 6.1 AssessmentSectionSelection Class Description

The data model for the "AssessmentSectionSelection" class is shown in Figure 6.1 and the accompanying definition in Table 6.1

Figure 6.1 - AssessmentSectionSelection class definitions.

Table 6.1 Description of the "AssessmentSectionSelection" class.
Descriptor | Definition
--- | ---
Class Name | AssessmentSectionSelection
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: TestPart
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: assessmentSection assessmentSectionRef
Description | This is an abstract class that enables the selection of an assessmentSection or an assessmentSectionRef (a pointer to aan assessmentSection). This is used in the context of a 'testPart'.

### 6.1.1 "assessmentSection" Attribute Description

The description of the "assessmentSection" attribute for the "AssessmentSectionSelection" class is given in Table 6.1.1.

Table 6.1.1 Description of the "assessmentSection" attribute for the "AssessmentSectionSelection" class.
Descriptor | Definition
--- | ---
Attribute Name | assessmentSection
Data Type | AssessmentSection
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Makes the choice for an assessmentSection available.

### 6.1.2 "assessmentSectionRef" Attribute Description

The description of the "assessmentSectionRef" attribute for the "AssessmentSectionSelection" class is given in Table 6.1.2.

Table 6.1.2 Description of the "assessmentSectionRef" attribute for the "AssessmentSectionSelection" class.
Descriptor | Definition
--- | ---
Attribute Name | assessmentSectionRef
Data Type | AssessmentSectionRef
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | Makes the choice for an assessmentSection reference available.

## 6.2 BlockContentModel Class Description

The data model for the "BlockContentModel" class is shown in Figure 6.2 and the accompanying definition in Table 6.2

Figure 6.2 - BlockContentModel class definitions.

Table 6.2 Description of the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Class Name | BlockContentModel
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: BlockGroup BlockStaticGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: pre h1 h2 h3 h4 h5 h6 p address dl ol ul hr blockquote table div article aside audio figure footer header nav section video
Description | This is an abstract class that enables the HTML block content tags to be used (this includes those that QTI also supports HTML5). Each use of this class allows the use of one of the tags so complex content is constructed by iterated use of this class.

### 6.2.1 "pre" Attribute Description

The description of the "pre" attribute for the "BlockContentModel" class is given in Table 6.2.1.

Table 6.2.1 Description of the "pre" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | pre
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'pre' tag for block content.

### 6.2.2 "h1" Attribute Description

The description of the "h1" attribute for the "BlockContentModel" class is given in Table 6.2.2.

Table 6.2.2 Description of the "h1" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | h1
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'h1' tag for block content.

### 6.2.3 "h2" Attribute Description

The description of the "h2" attribute for the "BlockContentModel" class is given in Table 6.2.3.

Table 6.2.3 Description of the "h2" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | h2
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'h2' tag for block content.

### 6.2.4 "h3" Attribute Description

The description of the "h3" attribute for the "BlockContentModel" class is given in Table 6.2.4.

Table 6.2.4 Description of the "h3" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | h3
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'h3' tag for block content.

### 6.2.5 "h4" Attribute Description

The description of the "h4" attribute for the "BlockContentModel" class is given in Table 6.2.5.

Table 6.2.5 Description of the "h4" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | h4
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'h4' tag for block content.

### 6.2.6 "h5" Attribute Description

The description of the "h5" attribute for the "BlockContentModel" class is given in Table 6.2.6.

Table 6.2.6 Description of the "h5" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | h5
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'h5' tag for block content.

### 6.2.7 "h6" Attribute Description

The description of the "h6" attribute for the "BlockContentModel" class is given in Table 6.2.7.

Table 6.2.7 Description of the "h6" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | h6
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'h6' tag for block content.

### 6.2.8 "p" Attribute Description

The description of the "p" attribute for the "BlockContentModel" class is given in Table 6.2.8.

Table 6.2.8 Description of the "p" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | p
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'p' tag for block content.

### 6.2.9 "address" Attribute Description

The description of the "address" attribute for the "BlockContentModel" class is given in Table 6.2.9.

Table 6.2.9 Description of the "address" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | address
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'address' tag for block content.

### 6.2.10 "dl" Attribute Description

The description of the "dl" attribute for the "BlockContentModel" class is given in Table 6.2.10.

Table 6.2.10 Description of the "dl" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | dl
Data Type | DL
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'dl' tag for block content.

### 6.2.11 "ol" Attribute Description

The description of the "ol" attribute for the "BlockContentModel" class is given in Table 6.2.11.

Table 6.2.11 Description of the "ol" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | ol
Data Type | OUL
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'ol' tag for block content.

### 6.2.12 "ul" Attribute Description

The description of the "ul" attribute for the "BlockContentModel" class is given in Table 6.2.12.

Table 6.2.12 Description of the "ul" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | ul
Data Type | OUL
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'ul' tag for block content.

### 6.2.13 "hr" Attribute Description

The description of the "hr" attribute for the "BlockContentModel" class is given in Table 6.2.13.

Table 6.2.13 Description of the "hr" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | hr
Data Type | HR
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'hr' tag for block content.

### 6.2.14 "blockquote" Attribute Description

The description of the "blockquote" attribute for the "BlockContentModel" class is given in Table 6.2.14.

Table 6.2.14 Description of the "blockquote" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | blockquote
Data Type | BlockQuote
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'blockquote' tag for block content.

### 6.2.15 "table" Attribute Description

The description of the "table" attribute for the "BlockContentModel" class is given in Table 6.2.15.

Table 6.2.15 Description of the "table" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | table
Data Type | Table
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'table' tag for block content.

### 6.2.16 "div" Attribute Description

The description of the "div" attribute for the "BlockContentModel" class is given in Table 6.2.16.

Table 6.2.16 Description of the "div" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | div
Data Type | Div
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'div' tag for block content.

### 6.2.17 "article" Attribute Description

The description of the "article" attribute for the "BlockContentModel" class is given in Table 6.2.17.

Table 6.2.17 Description of the "article" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | article
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'article' tag for block content.

### 6.2.18 "aside" Attribute Description

The description of the "aside" attribute for the "BlockContentModel" class is given in Table 6.2.18.

Table 6.2.18 Description of the "aside" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | aside
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'aside' tag for block content.

### 6.2.19 "audio" Attribute Description

The description of the "audio" attribute for the "BlockContentModel" class is given in Table 6.2.19.

Table 6.2.19 Description of the "audio" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | audio
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'audio' tag for block content.

### 6.2.20 "figure" Attribute Description

The description of the "figure" attribute for the "BlockContentModel" class is given in Table 6.2.20.

Table 6.2.20 Description of the "figure" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | figure
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'figure' tag for block content.

### 6.2.21 "footer" Attribute Description

The description of the "footer" attribute for the "BlockContentModel" class is given in Table 6.2.21.

Table 6.2.21 Description of the "footer" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | footer
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'footer' tag for block content.

### 6.2.22 "header" Attribute Description

The description of the "header" attribute for the "BlockContentModel" class is given in Table 6.2.22.

Table 6.2.22 Description of the "header" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | header
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'header' tag for block content.

### 6.2.23 "nav" Attribute Description

The description of the "nav" attribute for the "BlockContentModel" class is given in Table 6.2.23.

Table 6.2.23 Description of the "nav" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | nav
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'nav' tag for block content.

### 6.2.24 "section" Attribute Description

The description of the "section" attribute for the "BlockContentModel" class is given in Table 6.2.24.

Table 6.2.24 Description of the "section" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | section
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'section' tag for block content.

### 6.2.25 "video" Attribute Description

The description of the "video" attribute for the "BlockContentModel" class is given in Table 6.2.25.

Table 6.2.25 Description of the "video" attribute for the "BlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | video
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'video' tag for block content.

## 6.3 BlockGroup Class Description

The data model for the "BlockGroup" class is shown in Figure 6.3 and the accompanying definition in Table 6.3

Figure 6.3 - BlockGroup class definitions.

Table 6.3 Description of the "BlockGroup" class.
Descriptor | Definition
--- | ---
Class Name | BlockGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: BlockQuote FeedbackBlockStatic ItemBodySelect StimulusBody
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: positionObjectStage customInteraction drawingInteraction gapMatchInteraction matchInteraction graphicGapMatchInteraction hotspotInteraction graphicOrderInteraction selectPointInteraction graphicAssociateInteraction sliderInteraction choiceInteraction mediaInteraction hottextInteraction orderInteraction extendedTextInteraction uploadInteraction associateInteraction feedbackBlock templateBlock infoControl math math include blockContentModel
Description | This is the abstract class that is used to enable the insertion of content including HTML block content and the QTI interactions.

### 6.3.1 "positionObjectStage" Attribute Description

The description of the "positionObjectStage" attribute for the "BlockGroup" class is given in Table 6.3.1.

Table 6.3.1 Description of the "positionObjectStage" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | positionObjectStage
Data Type | PositionObjectStage
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the 'positionObjectStage' feature from QTI.

### 6.3.2 "customInteraction" Attribute Description

The description of the "customInteraction" attribute for the "BlockGroup" class is given in Table 6.3.2.

Table 6.3.2 Description of the "customInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | customInteraction
Data Type | CustomInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the custom interaction feature from QTI.

### 6.3.3 "drawingInteraction" Attribute Description

The description of the "drawingInteraction" attribute for the "BlockGroup" class is given in Table 6.3.3.

Table 6.3.3 Description of the "drawingInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | drawingInteraction
Data Type | DrawingInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the drawing interaction feature from QTI.

### 6.3.4 "gapMatchInteraction" Attribute Description

The description of the "gapMatchInteraction" attribute for the "BlockGroup" class is given in Table 6.3.4.

Table 6.3.4 Description of the "gapMatchInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | gapMatchInteraction
Data Type | GapMatchInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the gapMatch interaction feature from QTI.

### 6.3.5 "matchInteraction" Attribute Description

The description of the "matchInteraction" attribute for the "BlockGroup" class is given in Table 6.3.5.

Table 6.3.5 Description of the "matchInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | matchInteraction
Data Type | MatchInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the match interaction feature from QTI.

### 6.3.6 "graphicGapMatchInteraction" Attribute Description

The description of the "graphicGapMatchInteraction" attribute for the "BlockGroup" class is given in Table 6.3.6.

Table 6.3.6 Description of the "graphicGapMatchInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | graphicGapMatchInteraction
Data Type | GraphicGapMatchInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the graphicGapMatch interaction feature from QTI.

### 6.3.7 "hotspotInteraction" Attribute Description

The description of the "hotspotInteraction" attribute for the "BlockGroup" class is given in Table 6.3.7.

Table 6.3.7 Description of the "hotspotInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | hotspotInteraction
Data Type | HotspotInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the hotspot interaction feature from QTI.

### 6.3.8 "graphicOrderInteraction" Attribute Description

The description of the "graphicOrderInteraction" attribute for the "BlockGroup" class is given in Table 6.3.8.

Table 6.3.8 Description of the "graphicOrderInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | graphicOrderInteraction
Data Type | GraphicOrderInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the graphicOrder interaction feature from QTI.

### 6.3.9 "selectPointInteraction" Attribute Description

The description of the "selectPointInteraction" attribute for the "BlockGroup" class is given in Table 6.3.9.

Table 6.3.9 Description of the "selectPointInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | selectPointInteraction
Data Type | SelectPointInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the selectPoint interaction feature from QTI.

### 6.3.10 "graphicAssociateInteraction" Attribute Description

The description of the "graphicAssociateInteraction" attribute for the "BlockGroup" class is given in Table 6.3.10.

Table 6.3.10 Description of the "graphicAssociateInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | graphicAssociateInteraction
Data Type | GraphicAssociateInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the graphicAssociate interaction feature from QTI.

### 6.3.11 "sliderInteraction" Attribute Description

The description of the "sliderInteraction" attribute for the "BlockGroup" class is given in Table 6.3.11.

Table 6.3.11 Description of the "sliderInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | sliderInteraction
Data Type | SliderInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the slider interaction feature from QTI.

### 6.3.12 "choiceInteraction" Attribute Description

The description of the "choiceInteraction" attribute for the "BlockGroup" class is given in Table 6.3.12.

Table 6.3.12 Description of the "choiceInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | choiceInteraction
Data Type | ChoiceInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the choice interaction feature from QTI.

### 6.3.13 "mediaInteraction" Attribute Description

The description of the "mediaInteraction" attribute for the "BlockGroup" class is given in Table 6.3.13.

Table 6.3.13 Description of the "mediaInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | mediaInteraction
Data Type | MediaInteraction
Value Space | Container [ Selection ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the media interaction feature from QTI.

### 6.3.14 "hottextInteraction" Attribute Description

The description of the "hottextInteraction" attribute for the "BlockGroup" class is given in Table 6.3.14.

Table 6.3.14 Description of the "hottextInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | hottextInteraction
Data Type | HotTextInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the hottext interaction feature from QTI.

### 6.3.15 "orderInteraction" Attribute Description

The description of the "orderInteraction" attribute for the "BlockGroup" class is given in Table 6.3.15.

Table 6.3.15 Description of the "orderInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | orderInteraction
Data Type | OrderInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the order interaction feature from QTI.

### 6.3.16 "extendedTextInteraction" Attribute Description

The description of the "extendedTextInteraction" attribute for the "BlockGroup" class is given in Table 6.3.16.

Table 6.3.16 Description of the "extendedTextInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | extendedTextInteraction
Data Type | ExtendedTextInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the extendedText interaction feature from QTI.

### 6.3.17 "uploadInteraction" Attribute Description

The description of the "uploadInteraction" attribute for the "BlockGroup" class is given in Table 6.3.17.

Table 6.3.17 Description of the "uploadInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | uploadInteraction
Data Type | UploadInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the upload interaction feature from QTI.

### 6.3.18 "associateInteraction" Attribute Description

The description of the "associateInteraction" attribute for the "BlockGroup" class is given in Table 6.3.18.

Table 6.3.18 Description of the "associateInteraction" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | associateInteraction
Data Type | AssociateInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the associate interaction feature from QTI.

### 6.3.19 "feedbackBlock" Attribute Description

The description of the "feedbackBlock" attribute for the "BlockGroup" class is given in Table 6.3.19.

Table 6.3.19 Description of the "feedbackBlock" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackBlock
Data Type | FeedbackBlock
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the block feedback content.

### 6.3.20 "templateBlock" Attribute Description

The description of the "templateBlock" attribute for the "BlockGroup" class is given in Table 6.3.20.

Table 6.3.20 Description of the "templateBlock" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateBlock
Data Type | TemplateBlock
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the block template content.

### 6.3.21 "infoControl" Attribute Description

The description of the "infoControl" attribute for the "BlockGroup" class is given in Table 6.3.21.

Table 6.3.21 Description of the "infoControl" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | infoControl
Data Type | InfoControl
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the infoControl feature from QTI.

### 6.3.22 "math" Attribute Description

The description of the "math" attribute for the "BlockGroup" class is given in Table 6.3.22.

Table 6.3.22 Description of the "math" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the MathML 2 markup.

### 6.3.23 "math" Attribute Description

The description of the "math" attribute for the "BlockGroup" class is given in Table 6.3.23.

Table 6.3.23 Description of the "math" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the MathML 3 markup.

### 6.3.24 "include" Attribute Description

The description of the "include" attribute for the "BlockGroup" class is given in Table 6.3.24.

Table 6.3.24 Description of the "include" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of markup from external files. The form of the inclusion depends upon the binding approach. When using XML this is achieved using the 'XInclude' approach.

### 6.3.25 "blockContentModel" Attribute Description

The description of the "blockContentModel" attribute for the "BlockGroup" class is given in Table 6.3.25.

Table 6.3.25 Description of the "blockContentModel" attribute for the "BlockGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | blockContentModel
Data Type | BlockContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This enables the inclsion of the HTML block content.

## 6.4 BlockStaticGroup Class Description

The data model for the "BlockStaticGroup" class is shown in Figure 6.4 and the accompanying definition in Table 6.4

Figure 6.4 - BlockStaticGroup class definitions.

Table 6.4 Description of the "BlockStaticGroup" class.
Descriptor | Definition
--- | ---
Class Name | BlockStaticGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: GapMatchInteraction HotTextInteraction
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: feedbackBlock templateBlock math math include blockContentModel
Description | This is an abstract class. It is similar to the 'Block' class that excludes interactions. It enables the construction of complex HTML content with other QTI tags.

### 6.4.1 "feedbackBlock" Attribute Description

The description of the "feedbackBlock" attribute for the "BlockStaticGroup" class is given in Table 6.4.1.

Table 6.4.1 Description of the "feedbackBlock" attribute for the "BlockStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackBlock
Data Type | FeedbackBlock
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the insertion of feedback blocks i.e. information that is to be used as feedback.

### 6.4.2 "templateBlock" Attribute Description

The description of the "templateBlock" attribute for the "BlockStaticGroup" class is given in Table 6.4.2.

Table 6.4.2 Description of the "templateBlock" attribute for the "BlockStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateBlock
Data Type | TemplateBlock
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the insertion of template blocks i.e. content that will be used to create templates.

### 6.4.3 "math" Attribute Description

The description of the "math" attribute for the "BlockStaticGroup" class is given in Table 6.4.3.

Table 6.4.3 Description of the "math" attribute for the "BlockStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the insertion of MathML 2 content.

### 6.4.4 "math" Attribute Description

The description of the "math" attribute for the "BlockStaticGroup" class is given in Table 6.4.4.

Table 6.4.4 Description of the "math" attribute for the "BlockStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the insertion of MathML 3 content.

### 6.4.5 "include" Attribute Description

The description of the "include" attribute for the "BlockStaticGroup" class is given in Table 6.4.5.

Table 6.4.5 Description of the "include" attribute for the "BlockStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of markup from external files. The form of the inclusion depends upon the binding approach. When using XML this is achieved using the 'XInclude' approach.

### 6.4.6 "blockContentModel" Attribute Description

The description of the "blockContentModel" attribute for the "BlockStaticGroup" class is given in Table 6.4.6.

Table 6.4.6 Description of the "blockContentModel" attribute for the "BlockStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | blockContentModel
Data Type | BlockContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the insertion of arbitrary HTML block content tags e.g. 'pre', 'h1', etc.

## 6.5 DLSelection Class Description

The data model for the "DLSelection" class is shown in Figure 6.5 and the accompanying definition in Table 6.5

Figure 6.5 - DLSelection class definitions.

Table 6.5 Description of the "DLSelection" class.
Descriptor | Definition
--- | ---
Class Name | DLSelection
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: DL
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: dd dt
Description | This is an abstract class that provides the selection between the 'dd' and 'dt' HTML tags as part of the HTML list content capability.

### 6.5.1 "dd" Attribute Description

The description of the "dd" attribute for the "DLSelection" class is given in Table 6.5.1.

Table 6.5.1 Description of the "dd" attribute for the "DLSelection" class.
Descriptor | Definition
--- | ---
Attribute Name | dd
Data Type | DD
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Provides the HTML 'dd' tag as one of the choices.

### 6.5.2 "dt" Attribute Description

The description of the "dt" attribute for the "DLSelection" class is given in Table 6.5.2.

Table 6.5.2 Description of the "dt" attribute for the "DLSelection" class.
Descriptor | Definition
--- | ---
Attribute Name | dt
Data Type | DT
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Provides the HTML 'dt' tag as one of the choices.

## 6.6 DivSelection Class Description

The data model for the "DivSelection" class is shown in Figure 6.6 and the accompanying definition in Table 6.6

Figure 6.6 - DivSelection class definitions.

Table 6.6 Description of the "DivSelection" class.
Descriptor | Definition
--- | ---
Class Name | DivSelection
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: Div
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: positionObjectStage flowGroup
Description | This is an abstract class that enables the HTML 'div' tag to contain content based upn the 'positionObjectStage' and the HTML flow content.

### 6.6.1 "positionObjectStage" Attribute Description

The description of the "positionObjectStage" attribute for the "DivSelection" class is given in Table 6.6.1.

Table 6.6.1 Description of the "positionObjectStage" attribute for the "DivSelection" class.
Descriptor | Definition
--- | ---
Attribute Name | positionObjectStage
Data Type | PositionObjectStage
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Provides the 'positionObjectStage' HTML layout control as one of the selections.

### 6.6.2 "flowGroup" Attribute Description

The description of the "flowGroup" attribute for the "DivSelection" class is given in Table 6.6.2.

Table 6.6.2 Description of the "flowGroup" attribute for the "DivSelection" class.
Descriptor | Definition
--- | ---
Attribute Name | flowGroup
Data Type | FlowGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the HTML flow content to be used.

## 6.7 ExpressionGroup Class Description

The data model for the "ExpressionGroup" class is shown in Figure 6.7 and the accompanying definition in Table 6.7

Figure 6.7 - ExpressionGroup class definitions.

Table 6.7 Description of the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Class Name | ExpressionGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: AnyN BranchRule CustomOperator Equal EqualRounded FieldValue Index Inside Logic0toMany Logic1toMany LogicPair LogicSingle LookupOutcomeValue MathOperator OutcomeIf PatternMatch Repeat ResponseIf RoundTo SetValue StatsOperator StringMatch Substring TemplateConstraint TemplateDefault TemplateIf
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: and gt not lt gte lte or sum durationLT durationGTE subtract divide multiple ordered customOperator random numberIncorrect numberCorrect numberPresented numberResponded numberSelected substring equalRounded null delete match index power equal contains containerSize correct default anyN integerDivide integerModulus isNull member product round truncate fieldValue randomInteger randomFloat variable outcomeMinimum outcomeMaximum testVariables integerToFloat inside baseValue patternMatch mapResponsePoint mapResponse stringMatch repeat roundTo lcm gcd min max mathConstant statsOperator mathOperator
Description | This is an abstract class that makes the set of QTI expressions/operators available to define the associated response and/or outcome and/or template processing.

### 6.7.1 "and" Attribute Description

The description of the "and" attribute for the "ExpressionGroup" class is given in Table 6.7.1.

Table 6.7.1 Description of the "and" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | and
Data Type | Logic1toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the logic 'and' operation across one or more other operators. The and operator takes one or more sub-expressions each with a base-type of boolean and single cardinality. The result is a single boolean which is true if all sub-expressions are true and false if any of them are false. If one or more sub-expressions are NULL and all others are true then the operator also results in NULL.

### 6.7.2 "gt" Attribute Description

The description of the "gt" attribute for the "ExpressionGroup" class is given in Table 6.7.2.

Table 6.7.2 Description of the "gt" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | gt
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the 'greater than' function on the enclosed expression. The gt operator takes two sub-expressions which must both have single cardinality and have a numerical base-type. The result is a single boolean with a value of true if the first expression is numerically greater than the second and false if it is less than or equal to the second. If either sub-expression is NULL then the operator results in NULL.

### 6.7.3 "not" Attribute Description

The description of the "not" attribute for the "ExpressionGroup" class is given in Table 6.7.3.

Table 6.7.3 Description of the "not" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | not
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the logic 'not' operation on the enclosed expression. The not operator takes a single sub-expression with a base-type of boolean and single cardinality. The result is a single boolean with a value obtained by the logical negation of the sub-expression's value. If the sub-expression is NULL then the not operator also results in NULL.

### 6.7.4 "lt" Attribute Description

The description of the "lt" attribute for the "ExpressionGroup" class is given in Table 6.7.4.

Table 6.7.4 Description of the "lt" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | lt
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the 'less than' function on the enclosed expression.

### 6.7.5 "gte" Attribute Description

The description of the "gte" attribute for the "ExpressionGroup" class is given in Table 6.7.5.

Table 6.7.5 Description of the "gte" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | gte
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the 'greater than or equal' function on the enclosed expression. The gte operator takes two sub-expressions which must both have single cardinality and have a numerical base-type. The result is a single boolean with a value of true if the first expression is numerically greater than or equal to the second and false if it is less than the second. If either sub-expression is NULL then the operator results in NULL.

### 6.7.6 "lte" Attribute Description

The description of the "lte" attribute for the "ExpressionGroup" class is given in Table 6.7.6.

Table 6.7.6 Description of the "lte" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | lte
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the 'less than or equal' function on the enclosed expression. The lte operator takes two sub-expressions which must both have single cardinality and have a numerical base-type. The result is a single boolean with a value of 'true' if the first expression is numerically less than or equal to the second and 'false' if it is greater than the second. If either sub-expression is NULL then the operator results in NULL.

### 6.7.7 "or" Attribute Description

The description of the "or" attribute for the "ExpressionGroup" class is given in Table 6.7.7.

Table 6.7.7 Description of the "or" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | or
Data Type | Logic1toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the logic 'or' operation across one or more other operators. The or operator takes one or more sub-expressions each with a base-type of boolean and single cardinality. The result is a single boolean which is 'true' if any of the sub-expressions are 'true' and 'false' if all of them are 'false'. If one or more sub-expressions are NULL and all the others are false then the operator also results in NULL.

### 6.7.8 "sum" Attribute Description

The description of the "sum" attribute for the "ExpressionGroup" class is given in Table 6.7.8.

Table 6.7.8 Description of the "sum" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | sum
Data Type | NumericLogic1toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the 'sum' function on the enclosed set of expressions. The sum operator takes 1 or more sub-expressions which all have numerical base-types and may have single, multiple or ordered cardinality. The result is a single float or, if all sub-expressions are of integer type, a single integer that corresponds to the sum of the numerical values of the sub-expressions. If any of the sub-expressions are NULL then the operator results in NULL.

### 6.7.9 "durationLT" Attribute Description

The description of the "durationLT" attribute for the "ExpressionGroup" class is given in Table 6.7.9.

Table 6.7.9 Description of the "durationLT" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | durationLT
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The durationLT operator takes two sub-expressions which must both have single cardinality and base-type duration. The result is a single boolean with a value of 'true' if the first duration is shorter than the second and 'false' if it is longer than (or equal) to the second. If either sub-expression is NULL then the operator results in NULL. There is no 'durationLTE' or 'durationGT' because equality of duration is meaningless given the variable precision allowed by duration. Given that duration values are obtained by truncation rather than rounding it makes sense to test only less-than or greater-than-equal inequalities only. For example, if we want to determine if a candidate took less than 10 seconds to complete a task in a system that reports durations to a resolution of epsilon seconds (epsilon less than 1) then a value equal to 10 would cover all durations in the range [10,10+epsilon).

### 6.7.10 "durationGTE" Attribute Description

The description of the "durationGTE" attribute for the "ExpressionGroup" class is given in Table 6.7.10.

Table 6.7.10 Description of the "durationGTE" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | durationGTE
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The durationGTE operator takes two sub-expressions which must both have single cardinality and base-type duration. The result is a single boolean with a value of 'true' if the first duration is longer (or equal, within the limits imposed by truncation as described above) than the second and 'false' if it is shorter than the second. If either sub-expression is NULL then the operator results in NULL. See durationLT for more information about testing the equality of durations.

### 6.7.11 "subtract" Attribute Description

The description of the "subtract" attribute for the "ExpressionGroup" class is given in Table 6.7.11.

Table 6.7.11 Description of the "subtract" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | subtract
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The subtract operator takes 2 sub-expressions which all have single cardinality and numerical base-types. The result is a single float or, if both sub-expressions are of integer type, a single integer that corresponds to the first value minus the second. If either of the sub-expressions is NULL then the operator results in NULL.

### 6.7.12 "divide" Attribute Description

The description of the "divide" attribute for the "ExpressionGroup" class is given in Table 6.7.12.

Table 6.7.12 Description of the "divide" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | divide
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The divide operator takes 2 sub-expressions which both have single cardinality and numerical base-types. The result is a single float that corresponds to the first expression divided by the second expression. If either of the sub-expressions is NULL then the operator results in NULL. Item authors should make every effort to ensure that the value of the second expression is never 0, however, if it is zero or the resulting value is outside the value set defined by float (not including positive and negative infinity) then the operator should result in NULL.

### 6.7.13 "multiple" Attribute Description

The description of the "multiple" attribute for the "ExpressionGroup" class is given in Table 6.7.13.

Table 6.7.13 Description of the "multiple" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | multiple
Data Type | Logic0toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The multiple operator takes 0 or more sub-expressions all of which must have either single or multiple cardinality. Although the sub-expressions may be of any base-type they must all be of the same base-type. The result is a container with multiple cardinality containing the values of the sub-expressions, sub-expressions with multiple cardinality have their individual values added to the result: containers cannot contain other containers. For example, when applied to A, B and {C,D} the multiple operator results in {A,B,C,D}. All sub-expressions with NULL values are ignored. If no sub-expressions are given (or all are NULL) then the result is NULL.

### 6.7.14 "ordered" Attribute Description

The description of the "ordered" attribute for the "ExpressionGroup" class is given in Table 6.7.14.

Table 6.7.14 Description of the "ordered" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | ordered
Data Type | Logic0toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The ordered operator takes 0 or more sub-expressions all of which must have either single or ordered cardinality. Although the sub-expressions may be of any base-type they must all be of the same base-type. The result is a container with ordered cardinality containing the values of the sub-expressions, sub-expressions with ordered cardinality have their individual values added (in order) to the result: contains cannot contain other containers. For example, when applied to A, B, {C,D} the ordered operator results in {A,B,C,D}. Note that the ordered operator never results in an empty container. All sub-expressions with NULL values are ignored. If no sub-expressions are given (or all are NULL) then the result is NULL.

### 6.7.15 "customOperator" Attribute Description

The description of the "customOperator" attribute for the "ExpressionGroup" class is given in Table 6.7.15.

Table 6.7.15 Description of the "customOperator" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | customOperator
Data Type | CustomOperator
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The custom operator provides an extension mechanism for defining operations not currently supported by this specification.

### 6.7.16 "random" Attribute Description

The description of the "random" attribute for the "ExpressionGroup" class is given in Table 6.7.16.

Table 6.7.16 Description of the "random" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | random
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The random operator takes a sub-expression with a multiple or ordered container value and any base-type. The result is a single value randomly selected from the container. The result has the same base-type as the sub-expression but single cardinality. If the sub-expression is NULL then the result is also NULL.

### 6.7.17 "numberIncorrect" Attribute Description

The description of the "numberIncorrect" attribute for the "ExpressionGroup" class is given in Table 6.7.17.

Table 6.7.17 Description of the "numberIncorrect" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | numberIncorrect
Data Type | Number
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The numberIncorrect expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set, for which at least one of the defined response variables does not match its associated correctResponse. Only items for which all declared response variables have correct responses defined and have been attempted at least once are considered. The result is an integer with single cardinality.

### 6.7.18 "numberCorrect" Attribute Description

The description of the "numberCorrect" attribute for the "ExpressionGroup" class is given in Table 6.7.18.

Table 6.7.18 Description of the "numberCorrect" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | numberCorrect
Data Type | Number
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The numberCorrect expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set, for which the all defined response variables match their associated correctResponse. Only items for which all declared response variables have correct responses defined are considered. The result is an integer with single cardinality.

### 6.7.19 "numberPresented" Attribute Description

The description of the "numberPresented" attribute for the "ExpressionGroup" class is given in Table 6.7.19.

Table 6.7.19 Description of the "numberPresented" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | numberPresented
Data Type | Number
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The numberPresented expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set that have been attempted (at least once). In other words, items with which the user has interacted, whether or not they provided a response. The result is an integer with single cardinality.

### 6.7.20 "numberResponded" Attribute Description

The description of the "numberResponded" attribute for the "ExpressionGroup" class is given in Table 6.7.20.

Table 6.7.20 Description of the "numberResponded" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | numberResponded
Data Type | Number
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The numberResponded expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set that have been attempted (at least once) and for which a response was given. In other words, items for which at least one declared response has a value that differs from its declared default (typically NULL). The result is an integer with single cardinality.

### 6.7.21 "numberSelected" Attribute Description

The description of the "numberSelected" attribute for the "ExpressionGroup" class is given in Table 6.7.21.

Table 6.7.21 Description of the "numberSelected" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | numberSelected
Data Type | Number
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The numberSelected expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set that have been selected for presentation to the candidate, regardless of whether the candidate has attempted them or not. The result is an integer with single cardinality.

### 6.7.22 "substring" Attribute Description

The description of the "substring" attribute for the "ExpressionGroup" class is given in Table 6.7.22.

Table 6.7.22 Description of the "substring" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | substring
Data Type | Substring
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The substring operator takes two sub-expressions which must both have an effective base-type of string and single cardinality. The result is a single boolean with a value of 'true' if the first expression is a substring of the second expression and 'false' if it isn't. If either sub-expression is NULL then the result of the operator is NULL.

### 6.7.23 "equalRounded" Attribute Description

The description of the "equalRounded" attribute for the "ExpressionGroup" class is given in Table 6.7.23.

Table 6.7.23 Description of the "equalRounded" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | equalRounded
Data Type | EqualRounded
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The equalRounded operator takes two sub-expressions which must both have single cardinality and have a numerical base-type. The result is a single boolean with a value of 'true' if the two expressions are numerically equal after rounding and 'false' if they are not. If either sub-expression is NULL then the operator results in NULL.

### 6.7.24 "null" Attribute Description

The description of the "null" attribute for the "ExpressionGroup" class is given in Table 6.7.24.

Table 6.7.24 Description of the "null" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | null
Data Type | Empty (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | Null is a simple expression that returns the NULL value - the null value is treated as if it is of any desired baseType.

### 6.7.25 "delete" Attribute Description

The description of the "delete" attribute for the "ExpressionGroup" class is given in Table 6.7.25.

Table 6.7.25 Description of the "delete" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | delete
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The delete operator takes two sub-expressions which must both have the same base-type. The first sub-expression must have single cardinality and the second must be a multiple or ordered container. The result is a new container derived from the second sub-expression with all instances of the first sub-expression removed. For example, when applied to A and {B,A,C,A} the result is the container {B,C}. If either sub-expression is NULL the result of the operator is NULL. The restrictions that apply to the member operator also apply to the delete operator.

### 6.7.26 "match" Attribute Description

The description of the "match" attribute for the "ExpressionGroup" class is given in Table 6.7.26.

Table 6.7.26 Description of the "match" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | match
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The match operator takes two sub-expressions which must both have the same base-type and cardinality. The result is a single boolean with a value of 'true' if the two expressions represent the same value and 'false' if they do not. If either sub-expression is NULL then the operator results in NULL. The match operator must not be confused with broader notions of equality such as numerical equality. To avoid confusion, the match operator should not be used to compare subexpressions with base-types of float and must not be used on sub-expressions with a base-type of duration.

### 6.7.27 "index" Attribute Description

The description of the "index" attribute for the "ExpressionGroup" class is given in Table 6.7.27.

Table 6.7.27 Description of the "index" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | index
Data Type | Index
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The index operator takes a sub-expression with an ordered container value and any base-type. The result is the nth value of the container. The result has the same base-type as the sub-expression but single cardinality. The first value of a container has index 1, the second 2 and so on. 'n' must be a positive integer. If 'n' exceeds the number of values in the container (or the sub-expression is NULL) then the result of the index operator is NULL. If 'n' is an identifier, it is the value of 'n' at runtime that is used.

### 6.7.28 "power" Attribute Description

The description of the "power" attribute for the "ExpressionGroup" class is given in Table 6.7.28.

Table 6.7.28 Description of the "power" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | power
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The power operator takes 2 sub-expression which both have single cardinality and numerical base-types. The result is a single float that corresponds to the first expression raised to the power of the second. If either of the sub-expressions is NULL then the operator results in NULL. If the resulting value is outside the value set defined by float (not including positive and negative infinity) then the operator shall result in NULL.

### 6.7.29 "equal" Attribute Description

The description of the "equal" attribute for the "ExpressionGroup" class is given in Table 6.7.29.

Table 6.7.29 Description of the "equal" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | equal
Data Type | Equal
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The equal operator takes two sub-expressions which must both have single cardinality and have a numerical base-type. The result is a single boolean with a value of true if the two expressions are numerically equal and false if they are not. If either sub-expression is NULL then the operator results in NULL.

### 6.7.30 "contains" Attribute Description

The description of the "contains" attribute for the "ExpressionGroup" class is given in Table 6.7.30.

Table 6.7.30 Description of the "contains" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | contains
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The contains operator takes two sub-expressions which must both have the same base-type and cardinality - either multiple or ordered. The result is a single boolean with a value of 'true' if the container given by the first sub-expression contains the value given by the second sub-expression and 'false' if it does not. Note that the contains operator works differently depending on the cardinality of the two sub-expressions. For unordered containers the values are compared without regard for ordering, for example, [A,B,C] contains [C,A]. Note that [A,B,C] does not contain [B,B] but that [A,B,B,C] does. For ordered containers the second sub-expression must be a strict sub-sequence within the first. In other words, [A,B,C] does not contain [C,A] but it does contain [B,C]. If either sub-expression is NULL then the result of the operator is NULL. Like the member operator, the contains operator should not be used on sub-expressions with a base-type of float and must not be used on sub-expressions with a base-type of duration.

### 6.7.31 "containerSize" Attribute Description

The description of the "containerSize" attribute for the "ExpressionGroup" class is given in Table 6.7.31.

Table 6.7.31 Description of the "containerSize" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | containerSize
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The containerSize operator takes a sub-expression with any base-type and either multiple or ordered cardinality. The result is an integer giving the number of values in the sub-expression, in other words, the size of the container. If the sub-expression is NULL the result is 0. This operator can be used for determining how many choices were selected in a multiple-response choiceInteraction, for example.

### 6.7.32 "correct" Attribute Description

The description of the "correct" attribute for the "ExpressionGroup" class is given in Table 6.7.32.

Table 6.7.32 Description of the "correct" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | correct
Data Type | Correct
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This expression looks up the declaration of a response variable and returns the associated correctResponse or NULL if no correct value was declared. When used in outcomes processing item identifier prefixing (see variable) may be used to obtain the correct response from an individual item.

### 6.7.33 "default" Attribute Description

The description of the "default" attribute for the "ExpressionGroup" class is given in Table 6.7.33.

Table 6.7.33 Description of the "default" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | default
Data Type | Default
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This expression looks up the declaration of an itemVariable and returns the associated defaultValue or NULL if no default value was declared. When used in outcomes processing item identifier prefixing (see variable) may be used to obtain the default value from an individual item.

### 6.7.34 "anyN" Attribute Description

The description of the "anyN" attribute for the "ExpressionGroup" class is given in Table 6.7.34.

Table 6.7.34 Description of the "anyN" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | anyN
Data Type | AnyN
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The anyN operator takes one or more sub-expressions each with a base-type of boolean and single cardinality. The result is a single boolean which is 'true' if at least min of the sub-expressions are 'true' and at most max of the sub-expressions are 'true'. If more than n - min sub-expressions are 'false' (where n is the total number of sub-expressions) or more than max sub-expressions are 'true' then the result is 'false'. If one or more sub-expressions are NULL then it is possible that neither of these conditions is satisfied, in which case the operator results in NULL. For example, if min is 3 and max is 4 and the sub-expressions have values {true,true,false,NULL} then the operator results in NULL whereas {true,false,false,NULL} results in false and {true,true,true,NULL} results in 'true'. The result NULL indicates that the correct value for the operator cannot be determined.

### 6.7.35 "integerDivide" Attribute Description

The description of the "integerDivide" attribute for the "ExpressionGroup" class is given in Table 6.7.35.

Table 6.7.35 Description of the "integerDivide" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | integerDivide
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The integer divide operator takes 2 sub-expressions which both have single cardinality and base-type integer. The result is the single integer that corresponds to the first expression (x) divided by the second expression (y) rounded down to the greatest integer (i) such that i LTE (x/y). If y is 0, or if either of the sub-expressions is NULL then the operator results in NULL.

### 6.7.36 "integerModulus" Attribute Description

The description of the "integerModulus" attribute for the "ExpressionGroup" class is given in Table 6.7.36.

Table 6.7.36 Description of the "integerModulus" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | integerModulus
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The integer modulus operator takes 2 sub-expressions which both have single cardinality and base-type integer. The result is the single integer that corresponds to the remainder when the first expression (x) is divided by the second expression (y). If z is the result of the corresponding integerDivide operator then the result is x-z*y. If y is 0, or if either of the sub-expressions is NULL then the operator results in NULL.

### 6.7.37 "isNull" Attribute Description

The description of the "isNull" attribute for the "ExpressionGroup" class is given in Table 6.7.37.

Table 6.7.37 Description of the "isNull" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | isNull
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The isNull operator takes a sub-expression with any base-type and cardinality. The result is a single boolean with a value of 'true' if the sub-expression is NULL and 'false' otherwise. Note that empty containers and empty strings are both treated as NULL.

### 6.7.38 "member" Attribute Description

The description of the "member" attribute for the "ExpressionGroup" class is given in Table 6.7.38.

Table 6.7.38 Description of the "member" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | member
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The member operator takes two sub-expressions which must both have the same base-type. The first sub-expression must have single cardinality and the second must be a multiple or ordered container. The result is a single boolean with a value of 'true' if the value given by the first sub-expression is in the container defined by the second sub-expression. If either sub-expression is NULL then the result of the operator is NULL. The member operator should not be used on sub-expressions with a base-type of float because of the poorly defined comparison of values. It must not be used on sub-expressions with a base-type of duration.

### 6.7.39 "product" Attribute Description

The description of the "product" attribute for the "ExpressionGroup" class is given in Table 6.7.39.

Table 6.7.39 Description of the "product" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | product
Data Type | Logic1toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The product operator takes 1 or more sub-expressions which all have numerical base-types and may have single, multiple or ordered cardinality. The result is a single float or, if all sub-expressions are of integer type, a single integer that corresponds to the product of the numerical values of the sub-expressions. If any of the sub-expressions are NULL then the operator results in NULL.

### 6.7.40 "round" Attribute Description

The description of the "round" attribute for the "ExpressionGroup" class is given in Table 6.7.40.

Table 6.7.40 Description of the "round" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | round
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The round operator takes a single sub-expression which must have single cardinality and a numerical base-type. The result is a value of base-type integer formed by rounding the value of the sub-expression. The result is the integer n for all input values in the range [n-0.5,n+0.5). In other words, 6.8 and 6.5 both round up to 7, 6.49 rounds down to 6 and -6.5 rounds up to -6. If the sub-expression is NULL then the operator results in NULL. If the sub-expression is NaN, then the result is NULL. If the sub-expression is INF, then the result is INF. If the sub-expression is -INF, then the result is -INF.

### 6.7.41 "truncate" Attribute Description

The description of the "truncate" attribute for the "ExpressionGroup" class is given in Table 6.7.41.

Table 6.7.41 Description of the "truncate" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | truncate
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The truncate operator takes a single sub-expression which must have single cardinality and a numerical base-type. The result is a value of base-type integer formed by truncating the value of the sub-expression towards zero. For example, the value 6.8 becomes 6 and the value -6.8 becomes -6. If the sub-expression is NULL then the operator results in NULL. If the sub-expression is NaN, then the result is NULL. If the sub-expression is INF, then the result is INF. If the sub-expression is -INF, then the result is -INF.

### 6.7.42 "fieldValue" Attribute Description

The description of the "fieldValue" attribute for the "ExpressionGroup" class is given in Table 6.7.42.

Table 6.7.42 Description of the "fieldValue" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | fieldValue
Data Type | FieldValue
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The field-value operator takes a sub-expression with a record container value. The result is the value of the field with the specified fieldIdentifier. If there is no field with that identifier then the result of the operator is NULL.

### 6.7.43 "randomInteger" Attribute Description

The description of the "randomInteger" attribute for the "ExpressionGroup" class is given in Table 6.7.43.

Table 6.7.43 Description of the "randomInteger" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | randomInteger
Data Type | RandomInteger
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | Selects a random integer from the specified range [min,max] satisfying min + step * n for some integer n. For example, with min=2, max=11 and step=3 the values {2,5,8,11} are possible.

### 6.7.44 "randomFloat" Attribute Description

The description of the "randomFloat" attribute for the "ExpressionGroup" class is given in Table 6.7.44.

Table 6.7.44 Description of the "randomFloat" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | randomFloat
Data Type | RandomFloat
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | Selects a random float from the specified range [min,max].

### 6.7.45 "variable" Attribute Description

The description of the "variable" attribute for the "ExpressionGroup" class is given in Table 6.7.45.

Table 6.7.45 Description of the "variable" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | variable
Data Type | Variable
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This expression looks up the value of an itemVariable that has been declared in a corresponding variableDeclaration or is one of the built-in variables. The result has the base-type and cardinality declared for the variable subject to the type promotion of weighted outcomes. During outcomes processing, values taken from an individual item session can be looked up by prefixing the name of the item variable with the identifier assigned to the item in the assessmentItemRef, separated by a period character. For example, to obtain the value of the SCORE variable in the item referred to as Q01 you would use a variable instance with identifier Q01.SCORE. In adaptive tests that contain items that are allowed to be replaced (i.e. that have the withReplacement attribute set to "true"), the same item can be instantiated more than once. In order to access the outcome variable values of each instantiation, a number that denotes the instance's place in the sequence of the item's instantiation is inserted between the item variable identifier and the item variable, separated by a period character. For example, to obtain the value of the SCORE variable in the item referred to as Q01 in its second instantiation you would use a variable instance, prefixed by the instantiation sequence number, prefixed by an identifier Q01.2.SCORE. When looking up the value of a response variable it always takes the value assigned to it by the candidate's last submission. Unsubmitted responses are not available during expression evaluation. The value of an item variable taken from an item instantiated multiple times from the same assessmentItemRef (through the use of selection withReplacement) is taken from the last instance submitted if submission is simultaneous, otherwise it is undefined.

### 6.7.46 "outcomeMinimum" Attribute Description

The description of the "outcomeMinimum" attribute for the "ExpressionGroup" class is given in Table 6.7.46.

Table 6.7.46 Description of the "outcomeMinimum" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeMinimum
Data Type | OutcomeMinMax
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This expression, which can only be used in outcomes processing, simultaneously looks up the normalMinimum value of an outcome variable in a sub-set of the items referred to in a test. Only variables with single cardinality are considered. Items with no declared minimum are ignored. The result has cardinality multiple and base-type float.

### 6.7.47 "outcomeMaximum" Attribute Description

The description of the "outcomeMaximum" attribute for the "ExpressionGroup" class is given in Table 6.7.47.

Table 6.7.47 Description of the "outcomeMaximum" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeMaximum
Data Type | OutcomeMinMax
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This expression, which can only be used in outcomes processing, simultaneously looks up the normalMaximum value of an outcome variable in a sub-set of the items referred to in a test. Only variables with single cardinality are considered. If any of the items within the given subset have no declared maximum the result is NULL, otherwise the result has cardinality multiple and base-type float.

### 6.7.48 "testVariables" Attribute Description

The description of the "testVariables" attribute for the "ExpressionGroup" class is given in Table 6.7.48.

Table 6.7.48 Description of the "testVariables" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | testVariables
Data Type | TestVariables
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This expression, which can only be used in outcomes processing, simultaneously looks up the value of an itemVariable in a sub-set of the items referred to in a test. Only variables with single cardinality are considered, all NULL values are ignored. The result has cardinality multiple and base-type as specified below.

### 6.7.49 "integerToFloat" Attribute Description

The description of the "integerToFloat" attribute for the "ExpressionGroup" class is given in Table 6.7.49.

Table 6.7.49 Description of the "integerToFloat" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | integerToFloat
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The integer to float conversion operator takes a single sub-expression which must have single cardinality and base-type integer. The result is a value of base type float with the same numeric value. If the sub-expression is NULL then the operator results in NULL.

### 6.7.50 "inside" Attribute Description

The description of the "inside" attribute for the "ExpressionGroup" class is given in Table 6.7.50.

Table 6.7.50 Description of the "inside" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | inside
Data Type | Inside
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The inside operator takes a single sub-expression which must have a baseType of point. The result is a single boolean with a value of 'true' if the given point is inside the area defined by shape and coords. If the sub-expression is a container the result is 'true' if any of the points are inside the area. If either sub-expression is NULL then the operator results in NULL.

### 6.7.51 "baseValue" Attribute Description

The description of the "baseValue" attribute for the "ExpressionGroup" class is given in Table 6.7.51.

Table 6.7.51 Description of the "baseValue" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | baseValue
Data Type | BaseValue
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The simplest expression returns a single value from the set defined by the given baseType.

### 6.7.52 "patternMatch" Attribute Description

The description of the "patternMatch" attribute for the "ExpressionGroup" class is given in Table 6.7.52.

Table 6.7.52 Description of the "patternMatch" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | patternMatch
Data Type | PatternMatch
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The patternMatch operator takes a sub-expression which must have single cardinality and a base-type of string. The result is a single boolean with a value of 'true' if the sub-expression matches the regular expression given by pattern and 'false' if it does not. If the sub-expression is NULL then the operator results in NULL.

### 6.7.53 "mapResponsePoint" Attribute Description

The description of the "mapResponsePoint" attribute for the "ExpressionGroup" class is given in Table 6.7.53.

Table 6.7.53 Description of the "mapResponsePoint" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | mapResponsePoint
Data Type | MapResponse
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The mapResponsePoint expression looks up the value of a response variable that must be of base-type point, and transforms it using the associated areaMapping. The transformation is similar to mapResponse except that the points are tested against each area in turn. When mapping containers each area can be mapped once only. For example, if the candidate identified two points that both fall in the same area then the mappedValue is still added to the calculated total just once.

### 6.7.54 "mapResponse" Attribute Description

The description of the "mapResponse" attribute for the "ExpressionGroup" class is given in Table 6.7.54.

Table 6.7.54 Description of the "mapResponse" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | mapResponse
Data Type | MapResponse
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This expression looks up the value of a response variable and then transforms it using the associated mapping, which must have been declared. The result is a single float. If the response variable has single cardinality then the value returned is simply the mapped target value from the map. If the response variable has multiple or ordered cardinality then the value returned is the sum of the mapped target values. This expression cannot be applied to variables of record cardinality. For example, if a mapping associates the identifiers {A,B,C,D} with the values {0,1,0.5,0} respectively then mapResponse will map the single value 'C' to the numeric value 0.5 and the set of values {C,B} to the value 1.5. If a container contains multiple instances of the same value then that value is counted once only. To continue the example above {B,B,C} would still map to 1.5 and not 2.5.

### 6.7.55 "stringMatch" Attribute Description

The description of the "stringMatch" attribute for the "ExpressionGroup" class is given in Table 6.7.55.

Table 6.7.55 Description of the "stringMatch" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | stringMatch
Data Type | StringMatch
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The stringMatch operator takes two sub-expressions which must have single and a base-type of string. The result is a single boolean with a value of 'true' if the two strings match according to the comparison rules and 'false' if they don't. If either sub-expression is NULL then the operator results in NULL.

### 6.7.56 "repeat" Attribute Description

The description of the "repeat" attribute for the "ExpressionGroup" class is given in Table 6.7.56.

Table 6.7.56 Description of the "repeat" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | repeat
Data Type | Repeat
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The repeat operator takes 0 or more sub-expressions, all of which must have either single or ordered cardinality and the same baseType. The result is an ordered container having the same baseType as its sub-expressions. The container is filled sequentially by evaluating each sub-expression in turn and adding the resulting single values to the container, iterating this process numberRepeats times in total. If numberRepeats refers to a variable whose value is less than 1, the value of the whole expression is NULL. Any sub-expressions evaluating to NULL are ignored. If all sub-expressions are NULL then the result is NULL.

### 6.7.57 "roundTo" Attribute Description

The description of the "roundTo" attribute for the "ExpressionGroup" class is given in Table 6.7.57.

Table 6.7.57 Description of the "roundTo" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | roundTo
Data Type | RoundTo
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The roundTo operator takes one sub-expression which must have single cardinality and a numerical base-type. The result is a single float with the value nearest to that of the expression's value such that when converted to a decimal string it represents the expression rounded by the specified rounding method to the specified precision. If the sub-expression is NULL, then the result is NULL. If the sub-expression is INF, then the result is INF. If the sub-expression is -INF, then the result is -INF. If the argument is NaN, then the result is NULL. When rounding to n significant figures, the deciding digit is the (n+1)th digit counting from the first non-zero digit from the left in the number. If the deciding digit is 5 or greater, the nth digit is increased by 1 and all digits to its right are discarded; if the deciding digit is less than 5, all digits to the right of the nth digit are discarded. When rounding to n decimal places, the deciding digit is the (n+1)th digit counting to the right from the decimal point. If the deciding digit is 5 or greater, the nth digit is increased by 1 and all digits to its right are discarded; if the deciding digit is less than 5, all digits to the right of the nth digit are discarded.

### 6.7.58 "lcm" Attribute Description

The description of the "lcm" attribute for the "ExpressionGroup" class is given in Table 6.7.58.

Table 6.7.58 Description of the "lcm" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | lcm
Data Type | Logic1toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The lcm operator takes 1 or more sub-expressions which all have base-type integer and may have single, multiple or ordered cardinality. The result is a single integer equal in value to the lowest common multiple (lcm) of the argument values. If any argument is zero, the result is 0, lcm(0,n)=0; authors should beware of this in calculations which require division by the lcm of random values. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions is not a numerical value, then the result is NULL.

### 6.7.59 "gcd" Attribute Description

The description of the "gcd" attribute for the "ExpressionGroup" class is given in Table 6.7.59.

Table 6.7.59 Description of the "gcd" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | gcd
Data Type | Logic1toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The gcd operator takes 1 or more sub-expressions which all have base-type integer and may have single, multiple or ordered cardinality. The result is a single integer equal in value to the greatest common divisor (gcd) of the argument values. If all the arguments are zero, the result is 0, gcd(0,0)=0; authors should beware of this in calculations which require division by the gcd of random values. If some, but not all, of the arguments are zero, the result is the gcd of the non-zero arguments, gcd(0,n)=n if n not equal to 0. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions is not a numerical value, then the result is NULL.

### 6.7.60 "min" Attribute Description

The description of the "min" attribute for the "ExpressionGroup" class is given in Table 6.7.60.

Table 6.7.60 Description of the "min" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | min
Data Type | Logic1toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The min operator takes 1 or more sub-expressions which all have numerical base-types and may have single, multiple or ordered cardinality. The result is a single float, or, if all sub-expressions are of integer type, a single integer, equal in value to the smallest of the argument values, i.e. the result is the argument closest to negative infinity. If the arguments have the same value, the result is that same value. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions is not a numerical value, then the result is NULL.

### 6.7.61 "max" Attribute Description

The description of the "max" attribute for the "ExpressionGroup" class is given in Table 6.7.61.

Table 6.7.61 Description of the "max" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | max
Data Type | Logic1toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The max operator takes 1 or more sub-expressions which all have numerical base-types and may have single, multiple or ordered cardinality. The result is a single float, or, if all sub-expressions are of integer type, a single integer, equal in value to the greatest of the argument values, i.e. the result is the argument closest to positive infinity. If the arguments have the same value, the result is that same value. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions is not a numerical value, then the result is NULL.

### 6.7.62 "mathConstant" Attribute Description

The description of the "mathConstant" attribute for the "ExpressionGroup" class is given in Table 6.7.62.

Table 6.7.62 Description of the "mathConstant" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | mathConstant
Data Type | MathConstant
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The result is a mathematical constant returned as a single float, e.g. Pi and e.

### 6.7.63 "statsOperator" Attribute Description

The description of the "statsOperator" attribute for the "ExpressionGroup" class is given in Table 6.7.63.

Table 6.7.63 Description of the "statsOperator" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | statsOperator
Data Type | StatsOperator
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The statsOperator operator takes 1 sub-expression which is a container of multiple or ordered cardinality and has a numerical base-type. The result is a single float. If the sub-expression or any value contained therein is NULL, the result is NULL. If any value contained in the sub-expression is not a numerical value, then the result is NULL.

### 6.7.64 "mathOperator" Attribute Description

The description of the "mathOperator" attribute for the "ExpressionGroup" class is given in Table 6.7.64.

Table 6.7.64 Description of the "mathOperator" attribute for the "ExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | mathOperator
Data Type | MathOperator
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The mathOperator operator takes 1 or more sub-expressions which all have single cardinality and have numerical base-types. The trigonometric functions, sin, cos and tan, take one argument in radians, which evaluates to a single float. Other functions take one numerical argument. Further functions might take more than one numerical argument, e.g. atan2 (two argument arc tan). The result is a single float, except for the functions signum, floor and ceil, which return a single integer. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions falls outside the natural domain of the function called by mathOperator, e.g. log(0) or asin(2), then the result is NULL. See Subsection 2.12 for the set of associated rules.

## 6.8 FeedandTempBlockStatic Class Description

The data model for the "FeedandTempBlockStatic" class is shown in Figure 6.8 and the accompanying definition in Table 6.8

Figure 6.8 - FeedandTempBlockStatic class definitions.

Table 6.8 Description of the "FeedandTempBlockStatic" class.
Descriptor | Definition
--- | ---
Class Name | FeedandTempBlockStatic
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: TemplateBlock TemplateBlockFeedbackBlock
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: flowContentModel math math include templateBlock templateInline feedbackBlock feedbackInline printedVariable
Description | This is an abstract class that enables complex content for Template Blocks based upon static content.

### 6.8.1 "flowContentModel" Attribute Description

The description of the "flowContentModel" attribute for the "FeedandTempBlockStatic" class is given in Table 6.8.1.

Table 6.8.1 Description of the "flowContentModel" attribute for the "FeedandTempBlockStatic" class.
Descriptor | Definition
--- | ---
Attribute Name | flowContentModel
Data Type | FlowContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the insertion of complex HTML markup based upon flow content.

### 6.8.2 "math" Attribute Description

The description of the "math" attribute for the "FeedandTempBlockStatic" class is given in Table 6.8.2.

Table 6.8.2 Description of the "math" attribute for the "FeedandTempBlockStatic" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of MathML 2 content.

### 6.8.3 "math" Attribute Description

The description of the "math" attribute for the "FeedandTempBlockStatic" class is given in Table 6.8.3.

Table 6.8.3 Description of the "math" attribute for the "FeedandTempBlockStatic" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of MathML 3 content.

### 6.8.4 "include" Attribute Description

The description of the "include" attribute for the "FeedandTempBlockStatic" class is given in Table 6.8.4.

Table 6.8.4 Description of the "include" attribute for the "FeedandTempBlockStatic" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of markup from external files. The form of the inclusion depends upon the binding approach. When using XML this is achieved using the 'XInclude' approach.

### 6.8.5 "templateBlock" Attribute Description

The description of the "templateBlock" attribute for the "FeedandTempBlockStatic" class is given in Table 6.8.5.

Table 6.8.5 Description of the "templateBlock" attribute for the "FeedandTempBlockStatic" class.
Descriptor | Definition
--- | ---
Attribute Name | templateBlock
Data Type | TemplateBlock
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the inclusion of template block content in the recursive structure.

### 6.8.6 "templateInline" Attribute Description

The description of the "templateInline" attribute for the "FeedandTempBlockStatic" class is given in Table 6.8.6.

Table 6.8.6 Description of the "templateInline" attribute for the "FeedandTempBlockStatic" class.
Descriptor | Definition
--- | ---
Attribute Name | templateInline
Data Type | TemplateInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the inclusion of template inline content in the recursive structure.

### 6.8.7 "feedbackBlock" Attribute Description

The description of the "feedbackBlock" attribute for the "FeedandTempBlockStatic" class is given in Table 6.8.7.

Table 6.8.7 Description of the "feedbackBlock" attribute for the "FeedandTempBlockStatic" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackBlock
Data Type | TemplateBlockFeedbackBlock
Value Space | Container [ Sequence ]
Scope | Local ("-")
Multiplicity | [1]
Description | This enables the inclusion of feedback block content in the recursive structure.

### 6.8.8 "feedbackInline" Attribute Description

The description of the "feedbackInline" attribute for the "FeedandTempBlockStatic" class is given in Table 6.8.8.

Table 6.8.8 Description of the "feedbackInline" attribute for the "FeedandTempBlockStatic" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackInline
Data Type | FeedbackInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the inclusion of feedback inline content in the recursive structure.

### 6.8.9 "printedVariable" Attribute Description

The description of the "printedVariable" attribute for the "FeedandTempBlockStatic" class is given in Table 6.8.9.

Table 6.8.9 Description of the "printedVariable" attribute for the "FeedandTempBlockStatic" class.
Descriptor | Definition
--- | ---
Attribute Name | printedVariable
Data Type | PrintedVariable
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of data defined as a printed variable.

## 6.9 FeedbackBlockStatic Class Description

The data model for the "FeedbackBlockStatic" class is shown in Figure 6.9 and the accompanying definition in Table 6.9

Figure 6.9 - FeedbackBlockStatic class definitions.

Table 6.9 Description of the "FeedbackBlockStatic" class.
Descriptor | Definition
--- | ---
Class Name | FeedbackBlockStatic
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: FeedbackBlock
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: blockGroup inlineContentModel templateInline feedbackInline printedVariable
Description | This is an abstract class that enables the FeedbackBlock class to include any sequence of content based upon the blockGroup, inline content, inline templates, inline feedback and printedVariables.

### 6.9.1 "blockGroup" Attribute Description

The description of the "blockGroup" attribute for the "FeedbackBlockStatic" class is given in Table 6.9.1.

Table 6.9.1 Description of the "blockGroup" attribute for the "FeedbackBlockStatic" class.
Descriptor | Definition
--- | ---
Attribute Name | blockGroup
Data Type | BlockGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the insertion of block content, based upon QTI interactions, from the abstract class BlockGroup.

### 6.9.2 "inlineContentModel" Attribute Description

The description of the "inlineContentModel" attribute for the "FeedbackBlockStatic" class is given in Table 6.9.2.

Table 6.9.2 Description of the "inlineContentModel" attribute for the "FeedbackBlockStatic" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineContentModel
Data Type | InlineContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attrbute that enables the insertion of inline content as defined by HTML.

### 6.9.3 "templateInline" Attribute Description

The description of the "templateInline" attribute for the "FeedbackBlockStatic" class is given in Table 6.9.3.

Table 6.9.3 Description of the "templateInline" attribute for the "FeedbackBlockStatic" class.
Descriptor | Definition
--- | ---
Attribute Name | templateInline
Data Type | TemplateInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of template inline structures i.e. to identify template-based information.

### 6.9.4 "feedbackInline" Attribute Description

The description of the "feedbackInline" attribute for the "FeedbackBlockStatic" class is given in Table 6.9.4.

Table 6.9.4 Description of the "feedbackInline" attribute for the "FeedbackBlockStatic" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackInline
Data Type | FeedbackInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of feedback inline structures i.e. to identify feedback-based information.

### 6.9.5 "printedVariable" Attribute Description

The description of the "printedVariable" attribute for the "FeedbackBlockStatic" class is given in Table 6.9.5.

Table 6.9.5 Description of the "printedVariable" attribute for the "FeedbackBlockStatic" class.
Descriptor | Definition
--- | ---
Attribute Name | printedVariable
Data Type | PrintedVariable
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of data defined as a printed variable.

## 6.10 FeedbackFlowStaticGroup Class Description

The data model for the "FeedbackFlowStaticGroup" class is shown in Figure 6.10 and the accompanying definition in Table 6.10

Figure 6.10 - FeedbackFlowStaticGroup class definitions.

Table 6.10 Description of the "FeedbackFlowStaticGroup" class.
Descriptor | Definition
--- | ---
Class Name | FeedbackFlowStaticGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: ModalFeedback TestFeedback
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: printedVariable hottext templateInline templateBlock math math include flowContentModel
Description | This is an abstract class that is used to enable the content to be defined for Modal and Test feedback.

### 6.10.1 "printedVariable" Attribute Description

The description of the "printedVariable" attribute for the "FeedbackFlowStaticGroup" class is given in Table 6.10.1.

Table 6.10.1 Description of the "printedVariable" attribute for the "FeedbackFlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | printedVariable
Data Type | PrintedVariable
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of data defined as a printed variable.

### 6.10.2 "hottext" Attribute Description

The description of the "hottext" attribute for the "FeedbackFlowStaticGroup" class is given in Table 6.10.2.

Table 6.10.2 Description of the "hottext" attribute for the "FeedbackFlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | hottext
Data Type | HotText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Defines a hottext area that is used within the content of an hottextInteraction to provide the individual choices. It must not contain any nested interactions or other hottext areas.

### 6.10.3 "templateInline" Attribute Description

The description of the "templateInline" attribute for the "FeedbackFlowStaticGroup" class is given in Table 6.10.3.

Table 6.10.3 Description of the "templateInline" attribute for the "FeedbackFlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateInline
Data Type | TemplateInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of template inline structures i.e. to identify template-based information.

### 6.10.4 "templateBlock" Attribute Description

The description of the "templateBlock" attribute for the "FeedbackFlowStaticGroup" class is given in Table 6.10.4.

Table 6.10.4 Description of the "templateBlock" attribute for the "FeedbackFlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateBlock
Data Type | TemplateBlock
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of template block structures i.e. to identify template-based information.

### 6.10.5 "math" Attribute Description

The description of the "math" attribute for the "FeedbackFlowStaticGroup" class is given in Table 6.10.5.

Table 6.10.5 Description of the "math" attribute for the "FeedbackFlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | Allows the insertion of MathML 2 markup.

### 6.10.6 "math" Attribute Description

The description of the "math" attribute for the "FeedbackFlowStaticGroup" class is given in Table 6.10.6.

Table 6.10.6 Description of the "math" attribute for the "FeedbackFlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | Allows the insertion of MathML 3 markup.

### 6.10.7 "include" Attribute Description

The description of the "include" attribute for the "FeedbackFlowStaticGroup" class is given in Table 6.10.7.

Table 6.10.7 Description of the "include" attribute for the "FeedbackFlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the inclusion of arbitrary content (the form depends on the binding approach).

### 6.10.8 "flowContentModel" Attribute Description

The description of the "flowContentModel" attribute for the "FeedbackFlowStaticGroup" class is given in Table 6.10.8.

Table 6.10.8 Description of the "flowContentModel" attribute for the "FeedbackFlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | flowContentModel
Data Type | FlowContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the insertion of complex HTML markup based upon flow content.

## 6.11 FeedbackInlineGroup Class Description

The data model for the "FeedbackInlineGroup" class is shown in Figure 6.11 and the accompanying definition in Table 6.11

Figure 6.11 - FeedbackInlineGroup class definitions.

Table 6.11 Description of the "FeedbackInlineGroup" class.
Descriptor | Definition
--- | ---
Class Name | FeedbackInlineGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: FeedbackInline
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: inlineContentModel math math include templateInline printedVariable
Description | This is an abstract class. It is the container for the content for the inline feedback.

### 6.11.1 "inlineContentModel" Attribute Description

The description of the "inlineContentModel" attribute for the "FeedbackInlineGroup" class is given in Table 6.11.1.

Table 6.11.1 Description of the "inlineContentModel" attribute for the "FeedbackInlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineContentModel
Data Type | InlineContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the insertion of inline content as defined by HTML.

### 6.11.2 "math" Attribute Description

The description of the "math" attribute for the "FeedbackInlineGroup" class is given in Table 6.11.2.

Table 6.11.2 Description of the "math" attribute for the "FeedbackInlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | Allows the insertion of MathML 2 markup.

### 6.11.3 "math" Attribute Description

The description of the "math" attribute for the "FeedbackInlineGroup" class is given in Table 6.11.3.

Table 6.11.3 Description of the "math" attribute for the "FeedbackInlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | Allows the insertion of MathML 3 markup.

### 6.11.4 "include" Attribute Description

The description of the "include" attribute for the "FeedbackInlineGroup" class is given in Table 6.11.4.

Table 6.11.4 Description of the "include" attribute for the "FeedbackInlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the inclusion of arbitrary content (the form depends on the binding approach).

### 6.11.5 "templateInline" Attribute Description

The description of the "templateInline" attribute for the "FeedbackInlineGroup" class is given in Table 6.11.5.

Table 6.11.5 Description of the "templateInline" attribute for the "FeedbackInlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateInline
Data Type | TemplateInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of template inline structures i.e. to identify template-based information.

### 6.11.6 "printedVariable" Attribute Description

The description of the "printedVariable" attribute for the "FeedbackInlineGroup" class is given in Table 6.11.6.

Table 6.11.6 Description of the "printedVariable" attribute for the "FeedbackInlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | printedVariable
Data Type | PrintedVariable
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of data defined as a printed variable.

## 6.12 FlowContentModel Class Description

The data model for the "FlowContentModel" class is shown in Figure 6.12 and the accompanying definition in Table 6.12

Figure 6.12 - FlowContentModel class definitions.

Table 6.12 Description of the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Class Name | FlowContentModel
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: FeedandTempBlockStatic FeedbackFlowStaticGroup FlowGroup FlowStaticGroup ObjectFlowGroup PromptStaticGroup RubricBlockContentModel RubricTemplateBlockContentModel
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: pre h1 h2 h3 h4 h5 h6 p address dl ol ul br hr img object blockquote em a code span sub acronym big tt kbd q i dfn abbr strong sup var small samp b cite table div bdo bdi figure audio video article aside footer header label nav section ruby ssmlGroup
Description | This is an abstract class that is used to define HTML flow content (not includng QTI interactions). These are tags that can appear inside list items, table cells, etc. which includes block-type and inline-type elements.

### 6.12.1 "pre" Attribute Description

The description of the "pre" attribute for the "FlowContentModel" class is given in Table 6.12.1.

Table 6.12.1 Description of the "pre" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | pre
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'pre' tag for block content.

### 6.12.2 "h1" Attribute Description

The description of the "h1" attribute for the "FlowContentModel" class is given in Table 6.12.2.

Table 6.12.2 Description of the "h1" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | h1
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'h1' tag for block content.

### 6.12.3 "h2" Attribute Description

The description of the "h2" attribute for the "FlowContentModel" class is given in Table 6.12.3.

Table 6.12.3 Description of the "h2" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | h2
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'h2' tag for block content.

### 6.12.4 "h3" Attribute Description

The description of the "h3" attribute for the "FlowContentModel" class is given in Table 6.12.4.

Table 6.12.4 Description of the "h3" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | h3
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'h3' tag for block content.

### 6.12.5 "h4" Attribute Description

The description of the "h4" attribute for the "FlowContentModel" class is given in Table 6.12.5.

Table 6.12.5 Description of the "h4" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | h4
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'h4' tag for block content.

### 6.12.6 "h5" Attribute Description

The description of the "h5" attribute for the "FlowContentModel" class is given in Table 6.12.6.

Table 6.12.6 Description of the "h5" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | h5
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'h5' tag for block content.

### 6.12.7 "h6" Attribute Description

The description of the "h6" attribute for the "FlowContentModel" class is given in Table 6.12.7.

Table 6.12.7 Description of the "h6" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | h6
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'h6' tag for block content.

### 6.12.8 "p" Attribute Description

The description of the "p" attribute for the "FlowContentModel" class is given in Table 6.12.8.

Table 6.12.8 Description of the "p" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | p
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'p' tag for block content.

### 6.12.9 "address" Attribute Description

The description of the "address" attribute for the "FlowContentModel" class is given in Table 6.12.9.

Table 6.12.9 Description of the "address" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | address
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'address' tag for block content.

### 6.12.10 "dl" Attribute Description

The description of the "dl" attribute for the "FlowContentModel" class is given in Table 6.12.10.

Table 6.12.10 Description of the "dl" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | dl
Data Type | DL
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'dl' tag for block content.

### 6.12.11 "ol" Attribute Description

The description of the "ol" attribute for the "FlowContentModel" class is given in Table 6.12.11.

Table 6.12.11 Description of the "ol" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | ol
Data Type | OUL
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'ol' tag for block content.

### 6.12.12 "ul" Attribute Description

The description of the "ul" attribute for the "FlowContentModel" class is given in Table 6.12.12.

Table 6.12.12 Description of the "ul" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | ul
Data Type | OUL
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'ul' tag for block content.

### 6.12.13 "br" Attribute Description

The description of the "br" attribute for the "FlowContentModel" class is given in Table 6.12.13.

Table 6.12.13 Description of the "br" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | br
Data Type | BR
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'br' tag for block content.

### 6.12.14 "hr" Attribute Description

The description of the "hr" attribute for the "FlowContentModel" class is given in Table 6.12.14.

Table 6.12.14 Description of the "hr" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | hr
Data Type | HR
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'hr' tag for block content.

### 6.12.15 "img" Attribute Description

The description of the "img" attribute for the "FlowContentModel" class is given in Table 6.12.15.

Table 6.12.15 Description of the "img" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | img
Data Type | Img
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'img' tag for block content.

### 6.12.16 "object" Attribute Description

The description of the "object" attribute for the "FlowContentModel" class is given in Table 6.12.16.

Table 6.12.16 Description of the "object" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | object
Data Type | Object
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'object' tag for block content.

### 6.12.17 "blockquote" Attribute Description

The description of the "blockquote" attribute for the "FlowContentModel" class is given in Table 6.12.17.

Table 6.12.17 Description of the "blockquote" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | blockquote
Data Type | BlockQuote
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'blockquote' tag for block content.

### 6.12.18 "em" Attribute Description

The description of the "em" attribute for the "FlowContentModel" class is given in Table 6.12.18.

Table 6.12.18 Description of the "em" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | em
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'em' tag for block content.

### 6.12.19 "a" Attribute Description

The description of the "a" attribute for the "FlowContentModel" class is given in Table 6.12.19.

Table 6.12.19 Description of the "a" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | a
Data Type | A
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'a' tag for block content.

### 6.12.20 "code" Attribute Description

The description of the "code" attribute for the "FlowContentModel" class is given in Table 6.12.20.

Table 6.12.20 Description of the "code" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | code
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'code' tag for block content.

### 6.12.21 "span" Attribute Description

The description of the "span" attribute for the "FlowContentModel" class is given in Table 6.12.21.

Table 6.12.21 Description of the "span" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | span
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'span' tag for block content.

### 6.12.22 "sub" Attribute Description

The description of the "sub" attribute for the "FlowContentModel" class is given in Table 6.12.22.

Table 6.12.22 Description of the "sub" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | sub
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'sub' tag for block content.

### 6.12.23 "acronym" Attribute Description

The description of the "acronym" attribute for the "FlowContentModel" class is given in Table 6.12.23.

Table 6.12.23 Description of the "acronym" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | acronym
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'acronym' tag for block content.

### 6.12.24 "big" Attribute Description

The description of the "big" attribute for the "FlowContentModel" class is given in Table 6.12.24.

Table 6.12.24 Description of the "big" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | big
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'big' tag for block content.

### 6.12.25 "tt" Attribute Description

The description of the "tt" attribute for the "FlowContentModel" class is given in Table 6.12.25.

Table 6.12.25 Description of the "tt" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | tt
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'tt' tag for block content.

### 6.12.26 "kbd" Attribute Description

The description of the "kbd" attribute for the "FlowContentModel" class is given in Table 6.12.26.

Table 6.12.26 Description of the "kbd" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | kbd
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'kbd' tag for block content.

### 6.12.27 "q" Attribute Description

The description of the "q" attribute for the "FlowContentModel" class is given in Table 6.12.27.

Table 6.12.27 Description of the "q" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | q
Data Type | Q
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'q' tag for block content.

### 6.12.28 "i" Attribute Description

The description of the "i" attribute for the "FlowContentModel" class is given in Table 6.12.28.

Table 6.12.28 Description of the "i" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | i
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'i' tag for block content.

### 6.12.29 "dfn" Attribute Description

The description of the "dfn" attribute for the "FlowContentModel" class is given in Table 6.12.29.

Table 6.12.29 Description of the "dfn" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | dfn
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'dfn' tag for block content.

### 6.12.30 "abbr" Attribute Description

The description of the "abbr" attribute for the "FlowContentModel" class is given in Table 6.12.30.

Table 6.12.30 Description of the "abbr" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | abbr
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'abbr' tag for block content.

### 6.12.31 "strong" Attribute Description

The description of the "strong" attribute for the "FlowContentModel" class is given in Table 6.12.31.

Table 6.12.31 Description of the "strong" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | strong
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'strong' tag for block content.

### 6.12.32 "sup" Attribute Description

The description of the "sup" attribute for the "FlowContentModel" class is given in Table 6.12.32.

Table 6.12.32 Description of the "sup" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | sup
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'sup' tag for block content.

### 6.12.33 "var" Attribute Description

The description of the "var" attribute for the "FlowContentModel" class is given in Table 6.12.33.

Table 6.12.33 Description of the "var" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | var
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'var' tag for block content.

### 6.12.34 "small" Attribute Description

The description of the "small" attribute for the "FlowContentModel" class is given in Table 6.12.34.

Table 6.12.34 Description of the "small" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | small
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'small' tag for block content.

### 6.12.35 "samp" Attribute Description

The description of the "samp" attribute for the "FlowContentModel" class is given in Table 6.12.35.

Table 6.12.35 Description of the "samp" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | samp
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'samp' tag for block content.

### 6.12.36 "b" Attribute Description

The description of the "b" attribute for the "FlowContentModel" class is given in Table 6.12.36.

Table 6.12.36 Description of the "b" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | b
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'b' tag for block content.

### 6.12.37 "cite" Attribute Description

The description of the "cite" attribute for the "FlowContentModel" class is given in Table 6.12.37.

Table 6.12.37 Description of the "cite" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | cite
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'cite' tag for block content.

### 6.12.38 "table" Attribute Description

The description of the "table" attribute for the "FlowContentModel" class is given in Table 6.12.38.

Table 6.12.38 Description of the "table" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | table
Data Type | Table
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'table' tag for block content.

### 6.12.39 "div" Attribute Description

The description of the "div" attribute for the "FlowContentModel" class is given in Table 6.12.39.

Table 6.12.39 Description of the "div" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | div
Data Type | Div
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'div' tag for block content.

### 6.12.40 "bdo" Attribute Description

The description of the "bdo" attribute for the "FlowContentModel" class is given in Table 6.12.40.

Table 6.12.40 Description of the "bdo" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | bdo
Data Type | BDO
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML 'bdo' tag for block content.

### 6.12.41 "bdi" Attribute Description

The description of the "bdi" attribute for the "FlowContentModel" class is given in Table 6.12.41.

Table 6.12.41 Description of the "bdi" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | bdi
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'bdi' tag for block content.

### 6.12.42 "figure" Attribute Description

The description of the "figure" attribute for the "FlowContentModel" class is given in Table 6.12.42.

Table 6.12.42 Description of the "figure" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | figure
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'figure' tag for block content.

### 6.12.43 "audio" Attribute Description

The description of the "audio" attribute for the "FlowContentModel" class is given in Table 6.12.43.

Table 6.12.43 Description of the "audio" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | audio
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'audio' tag for block content.

### 6.12.44 "video" Attribute Description

The description of the "video" attribute for the "FlowContentModel" class is given in Table 6.12.44.

Table 6.12.44 Description of the "video" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | video
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'video' tag for block content.

### 6.12.45 "article" Attribute Description

The description of the "article" attribute for the "FlowContentModel" class is given in Table 6.12.45.

Table 6.12.45 Description of the "article" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | article
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'article' tag for block content.

### 6.12.46 "aside" Attribute Description

The description of the "aside" attribute for the "FlowContentModel" class is given in Table 6.12.46.

Table 6.12.46 Description of the "aside" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | aside
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'aside' tag for block content.

### 6.12.47 "footer" Attribute Description

The description of the "footer" attribute for the "FlowContentModel" class is given in Table 6.12.47.

Table 6.12.47 Description of the "footer" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | footer
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'footer' tag for block content.

### 6.12.48 "header" Attribute Description

The description of the "header" attribute for the "FlowContentModel" class is given in Table 6.12.48.

Table 6.12.48 Description of the "header" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | header
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'header' tag for block content.

### 6.12.49 "label" Attribute Description

The description of the "label" attribute for the "FlowContentModel" class is given in Table 6.12.49.

Table 6.12.49 Description of the "label" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | label
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'label' tag to be used.

### 6.12.50 "nav" Attribute Description

The description of the "nav" attribute for the "FlowContentModel" class is given in Table 6.12.50.

Table 6.12.50 Description of the "nav" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | nav
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'nav' tag for block content.

### 6.12.51 "section" Attribute Description

The description of the "section" attribute for the "FlowContentModel" class is given in Table 6.12.51.

Table 6.12.51 Description of the "section" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | section
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the use of the HTML5 'section' tag for block content.

### 6.12.52 "ruby" Attribute Description

The description of the "ruby" attribute for the "FlowContentModel" class is given in Table 6.12.52.

Table 6.12.52 Description of the "ruby" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | ruby
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'ruby' tag to be used.

### 6.12.53 "ssmlGroup" Attribute Description

The description of the "ssmlGroup" attribute for the "FlowContentModel" class is given in Table 6.12.53.

Table 6.12.53 Description of the "ssmlGroup" attribute for the "FlowContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | ssmlGroup
Data Type | SSMLGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the SSML tags to be used.

## 6.13 FlowGroup Class Description

The data model for the "FlowGroup" class is shown in Figure 6.13 and the accompanying definition in Table 6.13

Figure 6.13 - FlowGroup class definitions.

Table 6.13 Description of the "FlowGroup" class.
Descriptor | Definition
--- | ---
Class Name | FlowGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: DD DivSelection LI TDH
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: printedVariable feedbackBlock hottext feedbackInline templateInline templateBlock math math include textEntryInteraction inlineChoiceInteraction endAttemptInteraction customInteraction drawingInteraction gapMatchInteraction matchInteraction graphicGapMatchInteraction hotspotInteraction graphicOrderInteraction selectPointInteraction graphicAssociateInteraction sliderInteraction choiceInteraction mediaInteraction hottextInteraction orderInteraction extendedTextInteraction uploadInteraction associateInteraction flowContentModel
Description | This is an abstract class that is used to define HTML flow content including the set of QTI interactions. These tags that can appear inside list items, table cells, etc. which includes block-type and inline-type elements.

### 6.13.1 "printedVariable" Attribute Description

The description of the "printedVariable" attribute for the "FlowGroup" class is given in Table 6.13.1.

Table 6.13.1 Description of the "printedVariable" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | printedVariable
Data Type | PrintedVariable
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of data defined as a printed variable.

### 6.13.2 "feedbackBlock" Attribute Description

The description of the "feedbackBlock" attribute for the "FlowGroup" class is given in Table 6.13.2.

Table 6.13.2 Description of the "feedbackBlock" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackBlock
Data Type | FeedbackBlock
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | To enable the inclusion of the feedback block content.

### 6.13.3 "hottext" Attribute Description

The description of the "hottext" attribute for the "FlowGroup" class is given in Table 6.13.3.

Table 6.13.3 Description of the "hottext" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | hottext
Data Type | HotText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Defines a hottext area that is used within the content. It must not contain any nested interactions or other hottext areas.

### 6.13.4 "feedbackInline" Attribute Description

The description of the "feedbackInline" attribute for the "FlowGroup" class is given in Table 6.13.4.

Table 6.13.4 Description of the "feedbackInline" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackInline
Data Type | FeedbackInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | To enable the inclusion of the feedback inline content.

### 6.13.5 "templateInline" Attribute Description

The description of the "templateInline" attribute for the "FlowGroup" class is given in Table 6.13.5.

Table 6.13.5 Description of the "templateInline" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateInline
Data Type | TemplateInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of template inline structures i.e. to identify template-based information.

### 6.13.6 "templateBlock" Attribute Description

The description of the "templateBlock" attribute for the "FlowGroup" class is given in Table 6.13.6.

Table 6.13.6 Description of the "templateBlock" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateBlock
Data Type | TemplateBlock
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of template block structures i.e. to identify template-based information.

### 6.13.7 "math" Attribute Description

The description of the "math" attribute for the "FlowGroup" class is given in Table 6.13.7.

Table 6.13.7 Description of the "math" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the option for the MathML 2 content.

### 6.13.8 "math" Attribute Description

The description of the "math" attribute for the "FlowGroup" class is given in Table 6.13.8.

Table 6.13.8 Description of the "math" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the option for the MathML 3 content.

### 6.13.9 "include" Attribute Description

The description of the "include" attribute for the "FlowGroup" class is given in Table 6.13.9.

Table 6.13.9 Description of the "include" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is the option for the inclusion of content fragments. In the case of XML-based bindings this makes use of the XInclude standard.

### 6.13.10 "textEntryInteraction" Attribute Description

The description of the "textEntryInteraction" attribute for the "FlowGroup" class is given in Table 6.13.10.

Table 6.13.10 Description of the "textEntryInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | textEntryInteraction
Data Type | TextEntryInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the textEntry interaction feature from QTI.

### 6.13.11 "inlineChoiceInteraction" Attribute Description

The description of the "inlineChoiceInteraction" attribute for the "FlowGroup" class is given in Table 6.13.11.

Table 6.13.11 Description of the "inlineChoiceInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineChoiceInteraction
Data Type | InlineChoiceInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the inlineChoice interaction feature from QTI.

### 6.13.12 "endAttemptInteraction" Attribute Description

The description of the "endAttemptInteraction" attribute for the "FlowGroup" class is given in Table 6.13.12.

Table 6.13.12 Description of the "endAttemptInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | endAttemptInteraction
Data Type | EndAttemptInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the endAttempt interaction feature from QTI.

### 6.13.13 "customInteraction" Attribute Description

The description of the "customInteraction" attribute for the "FlowGroup" class is given in Table 6.13.13.

Table 6.13.13 Description of the "customInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | customInteraction
Data Type | CustomInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the custom interaction feature from QTI.

### 6.13.14 "drawingInteraction" Attribute Description

The description of the "drawingInteraction" attribute for the "FlowGroup" class is given in Table 6.13.14.

Table 6.13.14 Description of the "drawingInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | drawingInteraction
Data Type | DrawingInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the drawing interaction feature from QTI.

### 6.13.15 "gapMatchInteraction" Attribute Description

The description of the "gapMatchInteraction" attribute for the "FlowGroup" class is given in Table 6.13.15.

Table 6.13.15 Description of the "gapMatchInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | gapMatchInteraction
Data Type | GapMatchInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the gapMatch interaction feature from QTI.

### 6.13.16 "matchInteraction" Attribute Description

The description of the "matchInteraction" attribute for the "FlowGroup" class is given in Table 6.13.16.

Table 6.13.16 Description of the "matchInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | matchInteraction
Data Type | MatchInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the match interaction feature from QTI.

### 6.13.17 "graphicGapMatchInteraction" Attribute Description

The description of the "graphicGapMatchInteraction" attribute for the "FlowGroup" class is given in Table 6.13.17.

Table 6.13.17 Description of the "graphicGapMatchInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | graphicGapMatchInteraction
Data Type | GraphicGapMatchInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the graphicGapMatch interaction feature from QTI.

### 6.13.18 "hotspotInteraction" Attribute Description

The description of the "hotspotInteraction" attribute for the "FlowGroup" class is given in Table 6.13.18.

Table 6.13.18 Description of the "hotspotInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | hotspotInteraction
Data Type | HotspotInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the hotspot interaction feature from QTI.

### 6.13.19 "graphicOrderInteraction" Attribute Description

The description of the "graphicOrderInteraction" attribute for the "FlowGroup" class is given in Table 6.13.19.

Table 6.13.19 Description of the "graphicOrderInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | graphicOrderInteraction
Data Type | GraphicOrderInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the graphicOrder interaction feature from QTI.

### 6.13.20 "selectPointInteraction" Attribute Description

The description of the "selectPointInteraction" attribute for the "FlowGroup" class is given in Table 6.13.20.

Table 6.13.20 Description of the "selectPointInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | selectPointInteraction
Data Type | SelectPointInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the selectPoint interaction feature from QTI.

### 6.13.21 "graphicAssociateInteraction" Attribute Description

The description of the "graphicAssociateInteraction" attribute for the "FlowGroup" class is given in Table 6.13.21.

Table 6.13.21 Description of the "graphicAssociateInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | graphicAssociateInteraction
Data Type | GraphicAssociateInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the graphicAssociate interaction feature from QTI.

### 6.13.22 "sliderInteraction" Attribute Description

The description of the "sliderInteraction" attribute for the "FlowGroup" class is given in Table 6.13.22.

Table 6.13.22 Description of the "sliderInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | sliderInteraction
Data Type | SliderInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the slider interaction feature from QTI.

### 6.13.23 "choiceInteraction" Attribute Description

The description of the "choiceInteraction" attribute for the "FlowGroup" class is given in Table 6.13.23.

Table 6.13.23 Description of the "choiceInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | choiceInteraction
Data Type | ChoiceInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the choice interaction feature from QTI.

### 6.13.24 "mediaInteraction" Attribute Description

The description of the "mediaInteraction" attribute for the "FlowGroup" class is given in Table 6.13.24.

Table 6.13.24 Description of the "mediaInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | mediaInteraction
Data Type | MediaInteraction
Value Space | Container [ Selection ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the media interaction feature from QTI.

### 6.13.25 "hottextInteraction" Attribute Description

The description of the "hottextInteraction" attribute for the "FlowGroup" class is given in Table 6.13.25.

Table 6.13.25 Description of the "hottextInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | hottextInteraction
Data Type | HotTextInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the hottext interaction feature from QTI.

### 6.13.26 "orderInteraction" Attribute Description

The description of the "orderInteraction" attribute for the "FlowGroup" class is given in Table 6.13.26.

Table 6.13.26 Description of the "orderInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | orderInteraction
Data Type | OrderInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the order interaction feature from QTI.

### 6.13.27 "extendedTextInteraction" Attribute Description

The description of the "extendedTextInteraction" attribute for the "FlowGroup" class is given in Table 6.13.27.

Table 6.13.27 Description of the "extendedTextInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | extendedTextInteraction
Data Type | ExtendedTextInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the extendedText interaction feature from QTI.

### 6.13.28 "uploadInteraction" Attribute Description

The description of the "uploadInteraction" attribute for the "FlowGroup" class is given in Table 6.13.28.

Table 6.13.28 Description of the "uploadInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | uploadInteraction
Data Type | UploadInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the upload interaction feature from QTI.

### 6.13.29 "associateInteraction" Attribute Description

The description of the "associateInteraction" attribute for the "FlowGroup" class is given in Table 6.13.29.

Table 6.13.29 Description of the "associateInteraction" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | associateInteraction
Data Type | AssociateInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Enables the inclusion of the associate interaction feature from QTI.

### 6.13.30 "flowContentModel" Attribute Description

The description of the "flowContentModel" attribute for the "FlowGroup" class is given in Table 6.13.30.

Table 6.13.30 Description of the "flowContentModel" attribute for the "FlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | flowContentModel
Data Type | FlowContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract child. It is used to denote the permitted flow content i.e. the permitted set of HTML children.

## 6.14 FlowStaticGroup Class Description

The data model for the "FlowStaticGroup" class is shown in Figure 6.14 and the accompanying definition in Table 6.14

Figure 6.14 - FlowStaticGroup class definitions.

Table 6.14 Description of the "FlowStaticGroup" class.
Descriptor | Definition
--- | ---
Class Name | FlowStaticGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: InfoControl SimpleAssociableChoice SimpleChoice
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: printedVariable feedbackBlock feedbackInline templateInline templateBlock math math include flowContentModel
Description | This is an abstract class that is used to enable the inclusion of HTML flow content that includes support for feedback and template-base content.

### 6.14.1 "printedVariable" Attribute Description

The description of the "printedVariable" attribute for the "FlowStaticGroup" class is given in Table 6.14.1.

Table 6.14.1 Description of the "printedVariable" attribute for the "FlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | printedVariable
Data Type | PrintedVariable
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of data defined as a printed variable.

### 6.14.2 "feedbackBlock" Attribute Description

The description of the "feedbackBlock" attribute for the "FlowStaticGroup" class is given in Table 6.14.2.

Table 6.14.2 Description of the "feedbackBlock" attribute for the "FlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackBlock
Data Type | FeedbackBlock
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | To enable the inclusion of the feedback block content.

### 6.14.3 "feedbackInline" Attribute Description

The description of the "feedbackInline" attribute for the "FlowStaticGroup" class is given in Table 6.14.3.

Table 6.14.3 Description of the "feedbackInline" attribute for the "FlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackInline
Data Type | FeedbackInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | To enable the inclusion of the feedback inline content.

### 6.14.4 "templateInline" Attribute Description

The description of the "templateInline" attribute for the "FlowStaticGroup" class is given in Table 6.14.4.

Table 6.14.4 Description of the "templateInline" attribute for the "FlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateInline
Data Type | TemplateInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | To enable the inclusion of the template inline content.

### 6.14.5 "templateBlock" Attribute Description

The description of the "templateBlock" attribute for the "FlowStaticGroup" class is given in Table 6.14.5.

Table 6.14.5 Description of the "templateBlock" attribute for the "FlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateBlock
Data Type | TemplateBlock
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | To enable the inclusion of the template block content.

### 6.14.6 "math" Attribute Description

The description of the "math" attribute for the "FlowStaticGroup" class is given in Table 6.14.6.

Table 6.14.6 Description of the "math" attribute for the "FlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of MathML 2 content.

### 6.14.7 "math" Attribute Description

The description of the "math" attribute for the "FlowStaticGroup" class is given in Table 6.14.7.

Table 6.14.7 Description of the "math" attribute for the "FlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of MathML 3 content.

### 6.14.8 "include" Attribute Description

The description of the "include" attribute for the "FlowStaticGroup" class is given in Table 6.14.8.

Table 6.14.8 Description of the "include" attribute for the "FlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of markup from external files. The form of the inclusion depends upon the binding approach. When using XML this is achieved using the 'XInclude' approach.

### 6.14.9 "flowContentModel" Attribute Description

The description of the "flowContentModel" attribute for the "FlowStaticGroup" class is given in Table 6.14.9.

Table 6.14.9 Description of the "flowContentModel" attribute for the "FlowStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | flowContentModel
Data Type | FlowContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the insertion of complex HTML markup based upon flow content.

## 6.15 GapChoice Class Description

The data model for the "GapChoice" class is shown in Figure 6.15 and the accompanying definition in Table 6.15

Figure 6.15 - GapChoice class definitions.

Table 6.15 Description of the "GapChoice" class.
Descriptor | Definition
--- | ---
Class Name | GapChoice
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: GapMatchInteraction GraphicGapMatchInteraction
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: gapText gapImg
Description | This is an abstract representation for the selection of either a GapText or a GapImg object.

### 6.15.1 "gapText" Attribute Description

The description of the "gapText" attribute for the "GapChoice" class is given in Table 6.15.1.

Table 6.15.1 Description of the "gapText" attribute for the "GapChoice" class.
Descriptor | Definition
--- | ---
Attribute Name | gapText
Data Type | GapText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Makes the selection for 'gapText' available.

### 6.15.2 "gapImg" Attribute Description

The description of the "gapImg" attribute for the "GapChoice" class is given in Table 6.15.2.

Table 6.15.2 Description of the "gapImg" attribute for the "GapChoice" class.
Descriptor | Definition
--- | ---
Attribute Name | gapImg
Data Type | GapImg
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Makes the selection for 'gapImg' available.

## 6.16 InlineChoiceGroup Class Description

The data model for the "InlineChoiceGroup" class is shown in Figure 6.16 and the accompanying definition in Table 6.16

Figure 6.16 - InlineChoiceGroup class definitions.

Table 6.16 Description of the "InlineChoiceGroup" class.
Descriptor | Definition
--- | ---
Class Name | InlineChoiceGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: GapText HotText InlineChoice Label
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: printedVariable feedbackInline templateInline math math include inlineContentModel
Description | This is an abstract class that enables a simple run of text to be displayed to the user, may be subject to variable value substitution with printedVariable and may inlcude feedback and template-based content.

### 6.16.1 "printedVariable" Attribute Description

The description of the "printedVariable" attribute for the "InlineChoiceGroup" class is given in Table 6.16.1.

Table 6.16.1 Description of the "printedVariable" attribute for the "InlineChoiceGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | printedVariable
Data Type | PrintedVariable
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | Allows the insertion of a printed variable to provided as part of the inline content.

### 6.16.2 "feedbackInline" Attribute Description

The description of the "feedbackInline" attribute for the "InlineChoiceGroup" class is given in Table 6.16.2.

Table 6.16.2 Description of the "feedbackInline" attribute for the "InlineChoiceGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackInline
Data Type | FeedbackInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Allows feedback content to be presented as part of the inline content.

### 6.16.3 "templateInline" Attribute Description

The description of the "templateInline" attribute for the "InlineChoiceGroup" class is given in Table 6.16.3.

Table 6.16.3 Description of the "templateInline" attribute for the "InlineChoiceGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateInline
Data Type | TemplateInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Allows template content to be presented as part of the inline content.

### 6.16.4 "math" Attribute Description

The description of the "math" attribute for the "InlineChoiceGroup" class is given in Table 6.16.4.

Table 6.16.4 Description of the "math" attribute for the "InlineChoiceGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the insertion of MathML 2 content.

### 6.16.5 "math" Attribute Description

The description of the "math" attribute for the "InlineChoiceGroup" class is given in Table 6.16.5.

Table 6.16.5 Description of the "math" attribute for the "InlineChoiceGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the insertion of MathML 3 content.

### 6.16.6 "include" Attribute Description

The description of the "include" attribute for the "InlineChoiceGroup" class is given in Table 6.16.6.

Table 6.16.6 Description of the "include" attribute for the "InlineChoiceGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of markup from external files. The form of the inclusion depends upon the binding approach. When using XML this is achieved using the 'XInclude' approach.

### 6.16.7 "inlineContentModel" Attribute Description

The description of the "inlineContentModel" attribute for the "InlineChoiceGroup" class is given in Table 6.16.7.

Table 6.16.7 Description of the "inlineContentModel" attribute for the "InlineChoiceGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineContentModel
Data Type | InlineContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract class that allows any combination of HTML inline content.

## 6.17 InlineContentModel Class Description

The data model for the "InlineContentModel" class is shown in Figure 6.17 and the accompanying definition in Table 6.17

Figure 6.17 - InlineContentModel class definitions.

Table 6.17 Description of the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Class Name | InlineContentModel
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: BDO FeedbackBlockStatic FeedbackInlineGroup InlineChoiceGroup InlineGroup InlineStaticGroup RubricTemplateInlineStaticGroup
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: img br object em a code span sub acronym big tt kbd q i dfn abbr strong sup var small samp b cite bdo bdi label ruby ssml11Group
Description | This is an abstract class that enables HTML inline content tags to be used to create the corresponding HTML content.

### 6.17.1 "img" Attribute Description

The description of the "img" attribute for the "InlineContentModel" class is given in Table 6.17.1.

Table 6.17.1 Description of the "img" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | img
Data Type | Img
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'img' tag to be used.

### 6.17.2 "br" Attribute Description

The description of the "br" attribute for the "InlineContentModel" class is given in Table 6.17.2.

Table 6.17.2 Description of the "br" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | br
Data Type | BR
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'br' tag to be used.

### 6.17.3 "object" Attribute Description

The description of the "object" attribute for the "InlineContentModel" class is given in Table 6.17.3.

Table 6.17.3 Description of the "object" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | object
Data Type | Object
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'object' tag to be used.

### 6.17.4 "em" Attribute Description

The description of the "em" attribute for the "InlineContentModel" class is given in Table 6.17.4.

Table 6.17.4 Description of the "em" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | em
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'em' tag to be used.

### 6.17.5 "a" Attribute Description

The description of the "a" attribute for the "InlineContentModel" class is given in Table 6.17.5.

Table 6.17.5 Description of the "a" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | a
Data Type | A
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'a' tag to be used.

### 6.17.6 "code" Attribute Description

The description of the "code" attribute for the "InlineContentModel" class is given in Table 6.17.6.

Table 6.17.6 Description of the "code" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | code
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'code' tag to be used.

### 6.17.7 "span" Attribute Description

The description of the "span" attribute for the "InlineContentModel" class is given in Table 6.17.7.

Table 6.17.7 Description of the "span" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | span
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'span' tag to be used.

### 6.17.8 "sub" Attribute Description

The description of the "sub" attribute for the "InlineContentModel" class is given in Table 6.17.8.

Table 6.17.8 Description of the "sub" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | sub
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'sub' tag to be used.

### 6.17.9 "acronym" Attribute Description

The description of the "acronym" attribute for the "InlineContentModel" class is given in Table 6.17.9.

Table 6.17.9 Description of the "acronym" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | acronym
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'acronym' tag to be used.

### 6.17.10 "big" Attribute Description

The description of the "big" attribute for the "InlineContentModel" class is given in Table 6.17.10.

Table 6.17.10 Description of the "big" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | big
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'big' tag to be used.

### 6.17.11 "tt" Attribute Description

The description of the "tt" attribute for the "InlineContentModel" class is given in Table 6.17.11.

Table 6.17.11 Description of the "tt" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | tt
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'tt' tag to be used.

### 6.17.12 "kbd" Attribute Description

The description of the "kbd" attribute for the "InlineContentModel" class is given in Table 6.17.12.

Table 6.17.12 Description of the "kbd" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | kbd
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'kbd' tag to be used.

### 6.17.13 "q" Attribute Description

The description of the "q" attribute for the "InlineContentModel" class is given in Table 6.17.13.

Table 6.17.13 Description of the "q" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | q
Data Type | Q
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'q' tag to be used.

### 6.17.14 "i" Attribute Description

The description of the "i" attribute for the "InlineContentModel" class is given in Table 6.17.14.

Table 6.17.14 Description of the "i" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | i
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'i' tag to be used.

### 6.17.15 "dfn" Attribute Description

The description of the "dfn" attribute for the "InlineContentModel" class is given in Table 6.17.15.

Table 6.17.15 Description of the "dfn" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | dfn
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'dfn' tag to be used.

### 6.17.16 "abbr" Attribute Description

The description of the "abbr" attribute for the "InlineContentModel" class is given in Table 6.17.16.

Table 6.17.16 Description of the "abbr" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | abbr
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'abbr' tag to be used.

### 6.17.17 "strong" Attribute Description

The description of the "strong" attribute for the "InlineContentModel" class is given in Table 6.17.17.

Table 6.17.17 Description of the "strong" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | strong
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'strong' tag to be used.

### 6.17.18 "sup" Attribute Description

The description of the "sup" attribute for the "InlineContentModel" class is given in Table 6.17.18.

Table 6.17.18 Description of the "sup" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | sup
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'sup' tag to be used.

### 6.17.19 "var" Attribute Description

The description of the "var" attribute for the "InlineContentModel" class is given in Table 6.17.19.

Table 6.17.19 Description of the "var" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | var
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'var' tag to be used.

### 6.17.20 "small" Attribute Description

The description of the "small" attribute for the "InlineContentModel" class is given in Table 6.17.20.

Table 6.17.20 Description of the "small" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | small
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'small' tag to be used.

### 6.17.21 "samp" Attribute Description

The description of the "samp" attribute for the "InlineContentModel" class is given in Table 6.17.21.

Table 6.17.21 Description of the "samp" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | samp
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'samp' tag to be used.

### 6.17.22 "b" Attribute Description

The description of the "b" attribute for the "InlineContentModel" class is given in Table 6.17.22.

Table 6.17.22 Description of the "b" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | b
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'b' tag to be used.

### 6.17.23 "cite" Attribute Description

The description of the "cite" attribute for the "InlineContentModel" class is given in Table 6.17.23.

Table 6.17.23 Description of the "cite" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | cite
Data Type | HTMLText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'cite' tag to be used.

### 6.17.24 "bdo" Attribute Description

The description of the "bdo" attribute for the "InlineContentModel" class is given in Table 6.17.24.

Table 6.17.24 Description of the "bdo" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | bdo
Data Type | BDO
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'bdo' tag to be used.

### 6.17.25 "bdi" Attribute Description

The description of the "bdi" attribute for the "InlineContentModel" class is given in Table 6.17.25.

Table 6.17.25 Description of the "bdi" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | bdi
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'bdi' tag to be used.

### 6.17.26 "label" Attribute Description

The description of the "label" attribute for the "InlineContentModel" class is given in Table 6.17.26.

Table 6.17.26 Description of the "label" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | label
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'label' tag to be used.

### 6.17.27 "ruby" Attribute Description

The description of the "ruby" attribute for the "InlineContentModel" class is given in Table 6.17.27.

Table 6.17.27 Description of the "ruby" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | ruby
Data Type | HTML5
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the HTML 'ruby' tag to be used.

### 6.17.28 "ssml11Group" Attribute Description

The description of the "ssml11Group" attribute for the "InlineContentModel" class is given in Table 6.17.28.

Table 6.17.28 Description of the "ssml11Group" attribute for the "InlineContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | ssml11Group
Data Type | SSMLGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the SSML tags to be used.

## 6.18 InlineGroup Class Description

The data model for the "InlineGroup" class is shown in Figure 6.18 and the accompanying definition in Table 6.18

Figure 6.18 - InlineGroup class definitions.

Table 6.18 Description of the "InlineGroup" class.
Descriptor | Definition
--- | ---
Class Name | InlineGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: A Caption DT HTMLText Q
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: textEntryInteraction hottext printedVariable gap feedbackInline templateInline inlineChoiceInteraction endAttemptInteraction customInteraction math math include inlineContentModel
Description | This is an abstract class that is used to define grouped inline content.

### 6.18.1 "textEntryInteraction" Attribute Description

The description of the "textEntryInteraction" attribute for the "InlineGroup" class is given in Table 6.18.1.

Table 6.18.1 Description of the "textEntryInteraction" attribute for the "InlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | textEntryInteraction
Data Type | TextEntryInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Permits the insertion of a textEntry interaction.

### 6.18.2 "hottext" Attribute Description

The description of the "hottext" attribute for the "InlineGroup" class is given in Table 6.18.2.

Table 6.18.2 Description of the "hottext" attribute for the "InlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | hottext
Data Type | HotText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Permits the insertion of hottext.

### 6.18.3 "printedVariable" Attribute Description

The description of the "printedVariable" attribute for the "InlineGroup" class is given in Table 6.18.3.

Table 6.18.3 Description of the "printedVariable" attribute for the "InlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | printedVariable
Data Type | PrintedVariable
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | Allows the insertion of a printed variable to provided part of the inline content.

### 6.18.4 "gap" Attribute Description

The description of the "gap" attribute for the "InlineGroup" class is given in Table 6.18.4.

Table 6.18.4 Description of the "gap" attribute for the "InlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | gap
Data Type | Gap
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Allows the insertion of gap as part of the inline content.

### 6.18.5 "feedbackInline" Attribute Description

The description of the "feedbackInline" attribute for the "InlineGroup" class is given in Table 6.18.5.

Table 6.18.5 Description of the "feedbackInline" attribute for the "InlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackInline
Data Type | FeedbackInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Allows the insertion of inline feedback as part of the inline content.

### 6.18.6 "templateInline" Attribute Description

The description of the "templateInline" attribute for the "InlineGroup" class is given in Table 6.18.6.

Table 6.18.6 Description of the "templateInline" attribute for the "InlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateInline
Data Type | TemplateInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Allows the insertion of inline template as part of the inline content.

### 6.18.7 "inlineChoiceInteraction" Attribute Description

The description of the "inlineChoiceInteraction" attribute for the "InlineGroup" class is given in Table 6.18.7.

Table 6.18.7 Description of the "inlineChoiceInteraction" attribute for the "InlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineChoiceInteraction
Data Type | InlineChoiceInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Permits the insertion of an inlineChoice interaction.

### 6.18.8 "endAttemptInteraction" Attribute Description

The description of the "endAttemptInteraction" attribute for the "InlineGroup" class is given in Table 6.18.8.

Table 6.18.8 Description of the "endAttemptInteraction" attribute for the "InlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | endAttemptInteraction
Data Type | EndAttemptInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Permits the insertion of a endAttempt interaction.

### 6.18.9 "customInteraction" Attribute Description

The description of the "customInteraction" attribute for the "InlineGroup" class is given in Table 6.18.9.

Table 6.18.9 Description of the "customInteraction" attribute for the "InlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | customInteraction
Data Type | CustomInteraction
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Permits the insertion of a custom interaction.

### 6.18.10 "math" Attribute Description

The description of the "math" attribute for the "InlineGroup" class is given in Table 6.18.10.

Table 6.18.10 Description of the "math" attribute for the "InlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the insertion of MathML 2 content.

### 6.18.11 "math" Attribute Description

The description of the "math" attribute for the "InlineGroup" class is given in Table 6.18.11.

Table 6.18.11 Description of the "math" attribute for the "InlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the insertion of MathML 3 content.

### 6.18.12 "include" Attribute Description

The description of the "include" attribute for the "InlineGroup" class is given in Table 6.18.12.

Table 6.18.12 Description of the "include" attribute for the "InlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of markup from external files. The form of the inclusion depends upon the binding approach. When using XML this is achieved using the 'XInclude' approach.

### 6.18.13 "inlineContentModel" Attribute Description

The description of the "inlineContentModel" attribute for the "InlineGroup" class is given in Table 6.18.13.

Table 6.18.13 Description of the "inlineContentModel" attribute for the "InlineGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineContentModel
Data Type | InlineContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract class that allows any combination of HTML inline content.

## 6.19 InlineStaticGroup Class Description

The data model for the "InlineStaticGroup" class is shown in Figure 6.19 and the accompanying definition in Table 6.19

Figure 6.19 - InlineStaticGroup class definitions.

Table 6.19 Description of the "InlineStaticGroup" class.
Descriptor | Definition
--- | ---
Class Name | InlineStaticGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: TemplateInline
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: hottext printedVariable gap feedbackInline templateInline math math include inlineContentModel
Description | This is an abstract class that enables the insertion of complex inline HTML content with some limited QTI tags i.e. 'gap', 'printedVariable', etc.

### 6.19.1 "hottext" Attribute Description

The description of the "hottext" attribute for the "InlineStaticGroup" class is given in Table 6.19.1.

Table 6.19.1 Description of the "hottext" attribute for the "InlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | hottext
Data Type | HotText
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the insertion of QTI hottext content.

### 6.19.2 "printedVariable" Attribute Description

The description of the "printedVariable" attribute for the "InlineStaticGroup" class is given in Table 6.19.2.

Table 6.19.2 Description of the "printedVariable" attribute for the "InlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | printedVariable
Data Type | PrintedVariable
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | Allows the insertion of a printed variable to provide part of the inline content.

### 6.19.3 "gap" Attribute Description

The description of the "gap" attribute for the "InlineStaticGroup" class is given in Table 6.19.3.

Table 6.19.3 Description of the "gap" attribute for the "InlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | gap
Data Type | Gap
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the insertion of QTI 'gap' structures in the content.

### 6.19.4 "feedbackInline" Attribute Description

The description of the "feedbackInline" attribute for the "InlineStaticGroup" class is given in Table 6.19.4.

Table 6.19.4 Description of the "feedbackInline" attribute for the "InlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | feedbackInline
Data Type | FeedbackInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Allows feedback content to be presented as part of the inline content.

### 6.19.5 "templateInline" Attribute Description

The description of the "templateInline" attribute for the "InlineStaticGroup" class is given in Table 6.19.5.

Table 6.19.5 Description of the "templateInline" attribute for the "InlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateInline
Data Type | TemplateInline
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Allows template content to be presented as part of the inline content.

### 6.19.6 "math" Attribute Description

The description of the "math" attribute for the "InlineStaticGroup" class is given in Table 6.19.6.

Table 6.19.6 Description of the "math" attribute for the "InlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the insertion of MathML 2 content.

### 6.19.7 "math" Attribute Description

The description of the "math" attribute for the "InlineStaticGroup" class is given in Table 6.19.7.

Table 6.19.7 Description of the "math" attribute for the "InlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the insertion of MathML 3 content.

### 6.19.8 "include" Attribute Description

The description of the "include" attribute for the "InlineStaticGroup" class is given in Table 6.19.8.

Table 6.19.8 Description of the "include" attribute for the "InlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of markup from external files. The form of the inclusion depends upon the binding approach. When using XML this is achieved using the 'XInclude' approach.

### 6.19.9 "inlineContentModel" Attribute Description

The description of the "inlineContentModel" attribute for the "InlineStaticGroup" class is given in Table 6.19.9.

Table 6.19.9 Description of the "inlineContentModel" attribute for the "InlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineContentModel
Data Type | InlineContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract class that allows any combination of HTML inline content.

## 6.20 ItemBodySelect Class Description

The data model for the "ItemBodySelect" class is shown in Figure 6.20 and the accompanying definition in Table 6.20

Figure 6.20 - ItemBodySelect class definitions.

Table 6.20 Description of the "ItemBodySelect" class.
Descriptor | Definition
--- | ---
Class Name | ItemBodySelect
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: ItemBody
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: rubricBlock blockGroup
Description | Within the assessmentItem, this enables the creation of the various ItemBody content structures based upon the 'rubricBlock' and the HTML block content.

### 6.20.1 "rubricBlock" Attribute Description

The description of the "rubricBlock" attribute for the "ItemBodySelect" class is given in Table 6.20.1.

Table 6.20.1 Description of the "rubricBlock" attribute for the "ItemBodySelect" class.
Descriptor | Definition
--- | ---
Attribute Name | rubricBlock
Data Type | RubricBlock
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Provides the choice of the rubric block content for the ItemBody content.

### 6.20.2 "blockGroup" Attribute Description

The description of the "blockGroup" attribute for the "ItemBodySelect" class is given in Table 6.20.2.

Table 6.20.2 Description of the "blockGroup" attribute for the "ItemBodySelect" class.
Descriptor | Definition
--- | ---
Attribute Name | blockGroup
Data Type | BlockGroup
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | Provides the choice of the HTML block content for the ItemBody content.

## 6.21 LookupTable Class Description

The data model for the "LookupTable" class is shown in Figure 6.21 and the accompanying definition in Table 6.21

Figure 6.21 - LookupTable class definitions.

Table 6.21 Description of the "LookupTable" class.
Descriptor | Definition
--- | ---
Class Name | LookupTable
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: OutcomeDeclaration
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: matchTable interpolationTable
Description | This is an abstract class that enables the selection of the 'matchTable' and 'interpolation' table tags within an 'outcomeDeclaration'.

### 6.21.1 "matchTable" Attribute Description

The description of the "matchTable" attribute for the "LookupTable" class is given in Table 6.21.1.

Table 6.21.1 Description of the "matchTable" attribute for the "LookupTable" class.
Descriptor | Definition
--- | ---
Attribute Name | matchTable
Data Type | MatchTable
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the selection of the 'matchTable' entry.

### 6.21.2 "interpolationTable" Attribute Description

The description of the "interpolationTable" attribute for the "LookupTable" class is given in Table 6.21.2.

Table 6.21.2 Description of the "interpolationTable" attribute for the "LookupTable" class.
Descriptor | Definition
--- | ---
Attribute Name | interpolationTable
Data Type | InterpolationTable
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the selection of the 'interpolationTable' entry.

## 6.22 NumericExpressionGroup Class Description

The data model for the "NumericExpressionGroup" class is shown in Figure 6.22 and the accompanying definition in Table 6.22

Figure 6.22 - NumericExpressionGroup class definitions.

Table 6.22 Description of the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Class Name | NumericExpressionGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: NumericLogic1toMany
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: sum subtract divide multiple ordered customOperator random numberIncorrect numberCorrect numberPresented numberResponded numberSelected null delete index power containerSize correct default integerDivide integerModulus product round truncate fieldValue randomInteger variable outcomeMinimum outcomeMaximum testVariables integerToFloat baseValue mapResponsePoint mapResponse repeat roundTo lcm gcd min max mathConstant statsOperator mathOperator randomFloat
Description | This is an abstract class that makes the set of QTI numeric expressions/operators available to define the associated response and/or outcome and/or template processing.

### 6.22.1 "sum" Attribute Description

The description of the "sum" attribute for the "NumericExpressionGroup" class is given in Table 6.22.1.

Table 6.22.1 Description of the "sum" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | sum
Data Type | NumericLogic1toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the 'sum' function on the enclosed set of expressions. The sum operator takes 1 or more sub-expressions which all have numerical base-types and may have single, multiple or ordered cardinality. The result is a single float or, if all sub-expressions are of integer type, a single integer that corresponds to the sum of the numerical values of the sub-expressions. If any of the sub-expressions are NULL then the operator results in NULL.

### 6.22.2 "subtract" Attribute Description

The description of the "subtract" attribute for the "NumericExpressionGroup" class is given in Table 6.22.2.

Table 6.22.2 Description of the "subtract" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | subtract
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The subtract operator takes 2 sub-expressions which all have single cardinality and numerical base-types. The result is a single float or, if both sub-expressions are of integer type, a single integer that corresponds to the first value minus the second. If either of the sub-expressions is NULL then the operator results in NULL.

### 6.22.3 "divide" Attribute Description

The description of the "divide" attribute for the "NumericExpressionGroup" class is given in Table 6.22.3.

Table 6.22.3 Description of the "divide" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | divide
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The divide operator takes 2 sub-expressions which both have single cardinality and numerical base-types. The result is a single float that corresponds to the first expression divided by the second expression. If either of the sub-expressions is NULL then the operator results in NULL. Item authors should make every effort to ensure that the value of the second expression is never 0, however, if it is zero or the resulting value is outside the value set defined by float (not including positive and negative infinity) then the operator should result in NULL.

### 6.22.4 "multiple" Attribute Description

The description of the "multiple" attribute for the "NumericExpressionGroup" class is given in Table 6.22.4.

Table 6.22.4 Description of the "multiple" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | multiple
Data Type | Logic0toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The multiple operator takes 0 or more sub-expressions all of which must have either single or multiple cardinality. Although the sub-expressions may be of any base-type they must all be of the same base-type. The result is a container with multiple cardinality containing the values of the sub-expressions, sub-expressions with multiple cardinality have their individual values added to the result: containers cannot contain other containers. For example, when applied to A, B and {C,D} the multiple operator results in {A,B,C,D}. All sub-expressions with NULL values are ignored. If no sub-expressions are given (or all are NULL) then the result is NULL.

### 6.22.5 "ordered" Attribute Description

The description of the "ordered" attribute for the "NumericExpressionGroup" class is given in Table 6.22.5.

Table 6.22.5 Description of the "ordered" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | ordered
Data Type | Logic0toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The ordered operator takes 0 or more sub-expressions all of which must have either single or ordered cardinality. Although the sub-expressions may be of any base-type they must all be of the same base-type. The result is a container with ordered cardinality containing the values of the sub-expressions, sub-expressions with ordered cardinality have their individual values added (in order) to the result: contains cannot contain other containers. For example, when applied to A, B, {C,D} the ordered operator results in {A,B,C,D}. Note that the ordered operator never results in an empty container. All sub-expressions with NULL values are ignored. If no sub-expressions are given (or all are NULL) then the result is NULL.

### 6.22.6 "customOperator" Attribute Description

The description of the "customOperator" attribute for the "NumericExpressionGroup" class is given in Table 6.22.6.

Table 6.22.6 Description of the "customOperator" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | customOperator
Data Type | CustomOperator
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The custom operator provides an extension mechanism for defining operations not currently supported by this specification.

### 6.22.7 "random" Attribute Description

The description of the "random" attribute for the "NumericExpressionGroup" class is given in Table 6.22.7.

Table 6.22.7 Description of the "random" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | random
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The random operator takes a sub-expression with a multiple or ordered container value and any base-type. The result is a single value randomly selected from the container. The result has the same base-type as the sub-expression but single cardinality. If the sub-expression is NULL then the result is also NULL.

### 6.22.8 "numberIncorrect" Attribute Description

The description of the "numberIncorrect" attribute for the "NumericExpressionGroup" class is given in Table 6.22.8.

Table 6.22.8 Description of the "numberIncorrect" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | numberIncorrect
Data Type | Number
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The numberIncorrect expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set, for which at least one of the defined response variables does not match its associated correctResponse. Only items for which all declared response variables have correct responses defined and have been attempted at least once are considered. The result is an integer with single cardinality.

### 6.22.9 "numberCorrect" Attribute Description

The description of the "numberCorrect" attribute for the "NumericExpressionGroup" class is given in Table 6.22.9.

Table 6.22.9 Description of the "numberCorrect" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | numberCorrect
Data Type | Number
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The numberCorrect expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set, for which the all defined response variables match their associated correctResponse. Only items for which all declared response variables have correct responses defined are considered. The result is an integer with single cardinality.

### 6.22.10 "numberPresented" Attribute Description

The description of the "numberPresented" attribute for the "NumericExpressionGroup" class is given in Table 6.22.10.

Table 6.22.10 Description of the "numberPresented" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | numberPresented
Data Type | Number
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The numberPresented expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set that have been attempted (at least once). In other words, items with which the user has interacted, whether or not they provided a response. The result is an integer with single cardinality.

### 6.22.11 "numberResponded" Attribute Description

The description of the "numberResponded" attribute for the "NumericExpressionGroup" class is given in Table 6.22.11.

Table 6.22.11 Description of the "numberResponded" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | numberResponded
Data Type | Number
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The numberResponded expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set that have been attempted (at least once) and for which a response was given. In other words, items for which at least one declared response has a value that differs from its declared default (typically NULL). The result is an integer with single cardinality.

### 6.22.12 "numberSelected" Attribute Description

The description of the "numberSelected" attribute for the "NumericExpressionGroup" class is given in Table 6.22.12.

Table 6.22.12 Description of the "numberSelected" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | numberSelected
Data Type | Number
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The numberSelected expression, which can only be used in outcomes processing, calculates the number of items in a given sub-set that have been selected for presentation to the candidate, regardless of whether the candidate has attempted them or not. The result is an integer with single cardinality.

### 6.22.13 "null" Attribute Description

The description of the "null" attribute for the "NumericExpressionGroup" class is given in Table 6.22.13.

Table 6.22.13 Description of the "null" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | null
Data Type | Empty (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | Null is a simple expression that returns the NULL value - the null value is treated as if it is of any desired baseType.

### 6.22.14 "delete" Attribute Description

The description of the "delete" attribute for the "NumericExpressionGroup" class is given in Table 6.22.14.

Table 6.22.14 Description of the "delete" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | delete
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The delete operator takes two sub-expressions which must both have the same base-type. The first sub-expression must have single cardinality and the second must be a multiple or ordered container. The result is a new container derived from the second sub-expression with all instances of the first sub-expression removed. For example, when applied to A and {B,A,C,A} the result is the container {B,C}. If either sub-expression is NULL the result of the operator is NULL. The restrictions that apply to the member operator also apply to the delete operator.

### 6.22.15 "index" Attribute Description

The description of the "index" attribute for the "NumericExpressionGroup" class is given in Table 6.22.15.

Table 6.22.15 Description of the "index" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | index
Data Type | Index
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The index operator takes a sub-expression with an ordered container value and any base-type. The result is the nth value of the container. The result has the same base-type as the sub-expression but single cardinality. The first value of a container has index 1, the second 2 and so on. n must be a positive integer. If n exceeds the number of values in the container (or the sub-expression is NULL) then the result of the index operator is NULL. If 'n' is an identifier, it is the value of 'n' at runtime that is used.

### 6.22.16 "power" Attribute Description

The description of the "power" attribute for the "NumericExpressionGroup" class is given in Table 6.22.16.

Table 6.22.16 Description of the "power" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | power
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The power operator takes 2 sub-expression which both have single cardinality and numerical base-types. The result is a single float that corresponds to the first expression raised to the power of the second. If either or the sub-expressions is NULL then the operator results in NULL. If the resulting value is outside the value set defined by float (not including positive and negative infinity) then the operator shall result in NULL.

### 6.22.17 "containerSize" Attribute Description

The description of the "containerSize" attribute for the "NumericExpressionGroup" class is given in Table 6.22.17.

Table 6.22.17 Description of the "containerSize" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | containerSize
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The containerSize operator takes a sub-expression with any base-type and either multiple or ordered cardinality. The result is an integer giving the number of values in the sub-expression, in other words, the size of the container. If the sub-expression is NULL the result is 0. This operator can be used for determining how many choices were selected in a multiple-response choiceInteraction, for example.

### 6.22.18 "correct" Attribute Description

The description of the "correct" attribute for the "NumericExpressionGroup" class is given in Table 6.22.18.

Table 6.22.18 Description of the "correct" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | correct
Data Type | Correct
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This expression looks up the declaration of a response variable and returns the associated correctResponse or NULL if no correct value was declared. When used in outcomes processing item identifier prefixing (see variable) may be used to obtain the correct response from an individual item.

### 6.22.19 "default" Attribute Description

The description of the "default" attribute for the "NumericExpressionGroup" class is given in Table 6.22.19.

Table 6.22.19 Description of the "default" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | default
Data Type | Default
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This expression looks up the declaration of an itemVariable and returns the associated defaultValue or NULL if no default value was declared. When used in outcomes processing item identifier prefixing (see variable) may be used to obtain the default value from an individual item.

### 6.22.20 "integerDivide" Attribute Description

The description of the "integerDivide" attribute for the "NumericExpressionGroup" class is given in Table 6.22.20.

Table 6.22.20 Description of the "integerDivide" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | integerDivide
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The integer divide operator takes 2 sub-expressions which both have single cardinality and base-type integer. The result is the single integer that corresponds to the first expression (x) divided by the second expression (y) rounded down to the greatest integer (i) such that i LTE (x/y). If y is 0, or if either of the sub-expressions is NULL then the operator results in NULL.

### 6.22.21 "integerModulus" Attribute Description

The description of the "integerModulus" attribute for the "NumericExpressionGroup" class is given in Table 6.22.21.

Table 6.22.21 Description of the "integerModulus" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | integerModulus
Data Type | LogicPair
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The integer modulus operator takes 2 sub-expressions which both have single cardinality and base-type integer. The result is the single integer that corresponds to the remainder when the first expression (x) is divided by the second expression (y). If z is the result of the corresponding integerDivide operator then the result is x-z*y. If y is 0, or if either of the sub-expressions is NULL then the operator results in NULL.

### 6.22.22 "product" Attribute Description

The description of the "product" attribute for the "NumericExpressionGroup" class is given in Table 6.22.22.

Table 6.22.22 Description of the "product" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | product
Data Type | Logic1toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The product operator takes 1 or more sub-expressions which all have numerical base-types and may have single, multiple or ordered cardinality. The result is a single float or, if all sub-expressions are of integer type, a single integer that corresponds to the product of the numerical values of the sub-expressions. If any of the sub-expressions are NULL then the operator results in NULL.

### 6.22.23 "round" Attribute Description

The description of the "round" attribute for the "NumericExpressionGroup" class is given in Table 6.22.23.

Table 6.22.23 Description of the "round" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | round
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The round operator takes a single sub-expression which must have single cardinality and a numerical base-type. The result is a value of base-type integer formed by rounding the value of the sub-expression. The result is the integer n for all input values in the range [n-0.5,n+0.5). In other words, 6.8 and 6.5 both round up to 7, 6.49 rounds down to 6 and -6.5 rounds up to -6. If the sub-expression is NULL then the operator results in NULL. If the sub-expression is NaN, then the result is NULL. If the sub-expression is INF, then the result is INF. If the sub-expression is -INF, then the result is -INF.

### 6.22.24 "truncate" Attribute Description

The description of the "truncate" attribute for the "NumericExpressionGroup" class is given in Table 6.22.24.

Table 6.22.24 Description of the "truncate" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | truncate
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The truncate operator takes a single sub-expression which must have single cardinality and a numerical base-type. The result is a value of base-type integer formed by truncating the value of the sub-expression towards zero. For example, the value 6.8 becomes 6 and the value -6.8 becomes -6. If the sub-expression is NULL then the operator results in NULL. If the sub-expression is NaN, then the result is NULL. If the sub-expression is INF, then the result is INF. If the sub-expression is -INF, then the result is -INF.

### 6.22.25 "fieldValue" Attribute Description

The description of the "fieldValue" attribute for the "NumericExpressionGroup" class is given in Table 6.22.25.

Table 6.22.25 Description of the "fieldValue" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | fieldValue
Data Type | FieldValue
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The field-value operator takes a sub-expression with a record container value. The result is the value of the field with the specified fieldIdentifier. If there is no field with that identifier then the result of the operator is NULL.

### 6.22.26 "randomInteger" Attribute Description

The description of the "randomInteger" attribute for the "NumericExpressionGroup" class is given in Table 6.22.26.

Table 6.22.26 Description of the "randomInteger" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | randomInteger
Data Type | RandomInteger
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | Selects a random integer from the specified range [min,max] satisfying min + step * n for some integer n. For example, with min=2, max=11 and step=3 the values {2,5,8,11} are possible.

### 6.22.27 "variable" Attribute Description

The description of the "variable" attribute for the "NumericExpressionGroup" class is given in Table 6.22.27.

Table 6.22.27 Description of the "variable" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | variable
Data Type | Variable
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This expression looks up the value of an itemVariable that has been declared in a corresponding variableDeclaration or is one of the built-in variables. The result has the base-type and cardinality declared for the variable subject to the type promotion of weighted outcomes (see below). During outcomes processing, values taken from an individual item session can be looked up by prefixing the name of the item variable with the identifier assigned to the item in the assessmentItemRef, separated by a period character. For example, to obtain the value of the SCORE variable in the item referred to as Q01 you would use a variable instance with identifier Q01.SCORE. In adaptive tests that contain items that are allowed to be replaced (i.e. that have the withReplacement attribute set to "true"), the same item can be instantiated more than once. In order to access the outcome variable values of each instantiation, a number that denotes the instance's place in the sequence of the item's instantiation is inserted between the item variable identifier and the item variable, separated by a period character. For example, to obtain the value of the SCORE variable in the item referred to as Q01 in its second instantiation you would use a variable instance, prefixed by the instantiation sequence number, prefixed by an identifier Q01.2.SCORE. When looking up the value of a response variable it always takes the value assigned to it by the candidate's last submission. Unsubmitted responses are not available during expression evaluation. The value of an item variable taken from an item instantiated multiple times from the same assessmentItemRef (through the use of selection withReplacement) is taken from the last instance submitted if submission is simultaneous, otherwise it is undefined.

### 6.22.28 "outcomeMinimum" Attribute Description

The description of the "outcomeMinimum" attribute for the "NumericExpressionGroup" class is given in Table 6.22.28.

Table 6.22.28 Description of the "outcomeMinimum" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeMinimum
Data Type | OutcomeMinMax
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This expression, which can only be used in outcomes processing, simultaneously looks up the normalMinimum value of an outcome variable in a sub-set of the items referred to in a test. Only variables with single cardinality are considered. Items with no declared minimum are ignored. The result has cardinality multiple and base-type float.

### 6.22.29 "outcomeMaximum" Attribute Description

The description of the "outcomeMaximum" attribute for the "NumericExpressionGroup" class is given in Table 6.22.29.

Table 6.22.29 Description of the "outcomeMaximum" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeMaximum
Data Type | OutcomeMinMax
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This expression, which can only be used in outcomes processing, simultaneously looks up the normalMaximum value of an outcome variable in a sub-set of the items referred to in a test. Only variables with single cardinality are considered. If any of the items within the given subset have no declared maximum the result is NULL, otherwise the result has cardinality multiple and base-type float.

### 6.22.30 "testVariables" Attribute Description

The description of the "testVariables" attribute for the "NumericExpressionGroup" class is given in Table 6.22.30.

Table 6.22.30 Description of the "testVariables" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | testVariables
Data Type | TestVariables
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This expression, which can only be used in outcomes processing, simultaneously looks up the value of an itemVariable in a sub-set of the items referred to in a test. Only variables with single cardinality are considered, all NULL values are ignored. The result has cardinality multiple and base-type as specified below.

### 6.22.31 "integerToFloat" Attribute Description

The description of the "integerToFloat" attribute for the "NumericExpressionGroup" class is given in Table 6.22.31.

Table 6.22.31 Description of the "integerToFloat" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | integerToFloat
Data Type | LogicSingle
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The integer to float conversion operator takes a single sub-expression which must have single cardinality and base-type integer. The result is a value of base type float with the same numeric value. If the sub-expression is NULL then the operator results in NULL.

### 6.22.32 "baseValue" Attribute Description

The description of the "baseValue" attribute for the "NumericExpressionGroup" class is given in Table 6.22.32.

Table 6.22.32 Description of the "baseValue" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | baseValue
Data Type | BaseValue
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The simplest expression returns a single value from the set defined by the given baseType.

### 6.22.33 "mapResponsePoint" Attribute Description

The description of the "mapResponsePoint" attribute for the "NumericExpressionGroup" class is given in Table 6.22.33.

Table 6.22.33 Description of the "mapResponsePoint" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | mapResponsePoint
Data Type | MapResponse
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The mapResponsePoint expression looks up the value of a response variable that must be of base-type point, and transforms it using the associated areaMapping. The transformation is similar to mapResponse except that the points are tested against each area in turn. When mapping containers each area can be mapped once only. For example, if the candidate identified two points that both fall in the same area then the mappedValue is still added to the calculated total just once.

### 6.22.34 "mapResponse" Attribute Description

The description of the "mapResponse" attribute for the "NumericExpressionGroup" class is given in Table 6.22.34.

Table 6.22.34 Description of the "mapResponse" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | mapResponse
Data Type | MapResponse
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This expression looks up the value of a response variable and then transforms it using the associated mapping, which must have been declared. The result is a single float. If the response variable has single cardinality then the value returned is simply the mapped target value from the map. If the response variable has multiple or ordered cardinality then the value returned is the sum of the mapped target values. This expression cannot be applied to variables of record cardinality. For example, if a mapping associates the identifiers {A,B,C,D} with the values {0,1,0.5,0} respectively then mapResponse will map the single value 'C' to the numeric value 0.5 and the set of values {C,B} to the value 1.5. If a container contains multiple instances of the same value then that value is counted once only. To continue the example above {B,B,C} would still map to 1.5 and not 2.5.

### 6.22.35 "repeat" Attribute Description

The description of the "repeat" attribute for the "NumericExpressionGroup" class is given in Table 6.22.35.

Table 6.22.35 Description of the "repeat" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | repeat
Data Type | Repeat
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The repeat operator takes 0 or more sub-expressions, all of which must have either single or ordered cardinality and the same baseType. The result is an ordered container having the same baseType as its sub-expressions. The container is filled sequentially by evaluating each sub-expression in turn and adding the resulting single values to the container, iterating this process numberRepeats times in total. If numberRepeats refers to a variable whose value is less than 1, the value of the whole expression is NULL. Any sub-expressions evaluating to NULL are ignored. If all sub-expressions are NULL then the result is NULL.

### 6.22.36 "roundTo" Attribute Description

The description of the "roundTo" attribute for the "NumericExpressionGroup" class is given in Table 6.22.36.

Table 6.22.36 Description of the "roundTo" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | roundTo
Data Type | RoundTo
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The roundTo operator takes one sub-expression which must have single cardinality and a numerical base-type. The result is a single float with the value nearest to that of the expression's value such that when converted to a decimal string it represents the expression rounded by the specified rounding method to the specified precision. If the sub-expression is NULL, then the result is NULL. If the sub-expression is INF, then the result is INF. If the sub-expression is -INF, then the result is -INF. If the argument is NaN, then the result is NULL. When rounding to n significant figures, the deciding digit is the (n+1)th digit counting from the first non-zero digit from the left in the number. If the deciding digit is 5 or greater, the nth digit is increased by 1 and all digits to its right are discarded; if the deciding digit is less than 5, all digits to the right of the nth digit are discarded. When rounding to n decimal places, the deciding digit is the (n+1)th digit counting to the right from the decimal point. If the deciding digit is 5 or greater, the nth digit is increased by 1 and all digits to its right are discarded; if the deciding digit is less than 5, all digits to the right of the nth digit are discarded.

### 6.22.37 "lcm" Attribute Description

The description of the "lcm" attribute for the "NumericExpressionGroup" class is given in Table 6.22.37.

Table 6.22.37 Description of the "lcm" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | lcm
Data Type | Logic1toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The lcm operator takes 1 or more sub-expressions which all have base-type integer and may have single, multiple or ordered cardinality. The result is a single integer equal in value to the lowest common multiple (lcm) of the argument values. If any argument is zero, the result is 0, lcm(0,n)=0; authors should beware of this in calculations which require division by the lcm of random values. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions is not a numerical value, then the result is NULL.

### 6.22.38 "gcd" Attribute Description

The description of the "gcd" attribute for the "NumericExpressionGroup" class is given in Table 6.22.38.

Table 6.22.38 Description of the "gcd" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | gcd
Data Type | Logic1toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The gcd operator takes 1 or more sub-expressions which all have base-type integer and may have single, multiple or ordered cardinality. The result is a single integer equal in value to the greatest common divisor (gcd) of the argument values. If all the arguments are zero, the result is 0, gcd(0,0)=0; authors should beware of this in calculations which require division by the gcd of random values. If some, but not all, of the arguments are zero, the result is the gcd of the non-zero arguments, gcd(0,n)=n if n not equal to 0. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions is not a numerical value, then the result is NULL.

### 6.22.39 "min" Attribute Description

The description of the "min" attribute for the "NumericExpressionGroup" class is given in Table 6.22.39.

Table 6.22.39 Description of the "min" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | min
Data Type | Logic1toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The min operator takes 1 or more sub-expressions which all have numerical base-types and may have single, multiple or ordered cardinality. The result is a single float, or, if all sub-expressions are of integer type, a single integer, equal in value to the smallest of the argument values, i.e. the result is the argument closest to negative infinity. If the arguments have the same value, the result is that same value. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions is not a numerical value, then the result is NULL.

### 6.22.40 "max" Attribute Description

The description of the "max" attribute for the "NumericExpressionGroup" class is given in Table 6.22.40.

Table 6.22.40 Description of the "max" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | max
Data Type | Logic1toMany
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The max operator takes 1 or more sub-expressions which all have numerical base-types and may have single, multiple or ordered cardinality. The result is a single float, or, if all sub-expressions are of integer type, a single integer, equal in value to the greatest of the argument values, i.e. the result is the argument closest to positive infinity. If the arguments have the same value, the result is that same value. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions is not a numerical value, then the result is NULL.

### 6.22.41 "mathConstant" Attribute Description

The description of the "mathConstant" attribute for the "NumericExpressionGroup" class is given in Table 6.22.41.

Table 6.22.41 Description of the "mathConstant" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | mathConstant
Data Type | MathConstant
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The result is a mathematical constant returned as a single float, e.g. π and e.

### 6.22.42 "statsOperator" Attribute Description

The description of the "statsOperator" attribute for the "NumericExpressionGroup" class is given in Table 6.22.42.

Table 6.22.42 Description of the "statsOperator" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | statsOperator
Data Type | StatsOperator
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The statsOperator operator takes 1 sub-expression which is a container of multiple or ordered cardinality and has a numerical base-type. The result is a single float. If the sub-expression or any value contained therein is NULL, the result is NULL. If any value contained in the sub-expression is not a numerical value, then the result is NULL.

### 6.22.43 "mathOperator" Attribute Description

The description of the "mathOperator" attribute for the "NumericExpressionGroup" class is given in Table 6.22.43.

Table 6.22.43 Description of the "mathOperator" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | mathOperator
Data Type | MathOperator
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The mathOperator operator takes 1 or more sub-expressions which all have single cardinality and have numerical base-types. The trigonometric functions, sin, cos and tan, take one argument in radians, which evaluates to a single float. Other functions take one numerical argument. Further functions might take more than one numerical argument, e.g. atan2 (two argument arc tan). The result is a single float, except for the functions signum, floor and ceil, which return a single integer. If any of the sub-expressions is NULL, the result is NULL. If any of the sub-expressions falls outside the natural domain of the function called by mathOperator, e.g. log(0) or asin(2), then the result is NULL. See Subsection 2.12 for the set of associated rules.

### 6.22.44 "randomFloat" Attribute Description

The description of the "randomFloat" attribute for the "NumericExpressionGroup" class is given in Table 6.22.44.

Table 6.22.44 Description of the "randomFloat" attribute for the "NumericExpressionGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | randomFloat
Data Type | RandomFloat
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | Selects a random float from the specified range [min,max].

## 6.23 ObjectFlowGroup Class Description

The data model for the "ObjectFlowGroup" class is shown in Figure 6.23 and the accompanying definition in Table 6.23

Figure 6.23 - ObjectFlowGroup class definitions.

Table 6.23 Description of the "ObjectFlowGroup" class.
Descriptor | Definition
--- | ---
Class Name | ObjectFlowGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: Object
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: math math include param flowContentModel
Description | This is an abstract class that enables the detailed complex content/parameters to be defined for the object.

### 6.23.1 "math" Attribute Description

The description of the "math" attribute for the "ObjectFlowGroup" class is given in Table 6.23.1.

Table 6.23.1 Description of the "math" attribute for the "ObjectFlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of MathML 2 content.

### 6.23.2 "math" Attribute Description

The description of the "math" attribute for the "ObjectFlowGroup" class is given in Table 6.23.2.

Table 6.23.2 Description of the "math" attribute for the "ObjectFlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of MathML 3 content.

### 6.23.3 "include" Attribute Description

The description of the "include" attribute for the "ObjectFlowGroup" class is given in Table 6.23.3.

Table 6.23.3 Description of the "include" attribute for the "ObjectFlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of markup from external files. The form of the inclusion depends upon the binding approach. When using XML this is achieved using the 'XIcnude' approach.

### 6.23.4 "param" Attribute Description

The description of the "param" attribute for the "ObjectFlowGroup" class is given in Table 6.23.4.

Table 6.23.4 Description of the "param" attribute for the "ObjectFlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | param
Data Type | Param
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This is a parameter that is to be used in the conext of the HTML object i.e. passed to the object.

### 6.23.5 "flowContentModel" Attribute Description

The description of the "flowContentModel" attribute for the "ObjectFlowGroup" class is given in Table 6.23.5.

Table 6.23.5 Description of the "flowContentModel" attribute for the "ObjectFlowGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | flowContentModel
Data Type | FlowContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstarct attribute that enables the insertion of complex HTML markup based upon flow content.

## 6.24 OutcomeRule Class Description

The data model for the "OutcomeRule" class is shown in Figure 6.24 and the accompanying definition in Table 6.24

Figure 6.24 - OutcomeRule class definitions.

Table 6.24 Description of the "OutcomeRule" class.
Descriptor | Definition
--- | ---
Class Name | OutcomeRule
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: OutcomeElse OutcomeIf OutcomeProcessing OutcomeProcessingFragment
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: lookupOutcomeValue outcomeProcessingFragment setOutcomeValue include exitTest outcomeCondition
Description | This is an abstract class to define an outcome processing rule. An outcome rule is either an outcomeCondition, a simple action or an outcomeProcessingFragment. Outcome rules define the light-weight programming language necessary for creating outcomes. Note that this programming language contains a minimal number of control structures, more complex rules must be coded in other languages and referred to using a customOperator. Result rules are followed in the order given. Variables updated by a rule take their new value when evaluated as part of any following rules.

### 6.24.1 "lookupOutcomeValue" Attribute Description

The description of the "lookupOutcomeValue" attribute for the "OutcomeRule" class is given in Table 6.24.1.

Table 6.24.1 Description of the "lookupOutcomeValue" attribute for the "OutcomeRule" class.
Descriptor | Definition
--- | ---
Attribute Name | lookupOutcomeValue
Data Type | LookupOutcomeValue
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The lookupOutcomeValue rule sets the value of an outcome variable to the value obtained by looking up the value of the associated expression in the lookupTable associated with the outcome's declaration.

### 6.24.2 "outcomeProcessingFragment" Attribute Description

The description of the "outcomeProcessingFragment" attribute for the "OutcomeRule" class is given in Table 6.24.2.

Table 6.24.2 Description of the "outcomeProcessingFragment" attribute for the "OutcomeRule" class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeProcessingFragment
Data Type | OutcomeProcessingFragment
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | An outcomeProcessingFragment is a simple group of outcome Rules which are grouped together in order to allow them to be managed as a separate resource. It should not be used for any other purpose.

### 6.24.3 "setOutcomeValue" Attribute Description

The description of the "setOutcomeValue" attribute for the "OutcomeRule" class is given in Table 6.24.3.

Table 6.24.3 Description of the "setOutcomeValue" attribute for the "OutcomeRule" class.
Descriptor | Definition
--- | ---
Attribute Name | setOutcomeValue
Data Type | SetValue
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The setOutcomeValue rule sets the value of an outcome variable to the value obtained from the associated expression. An outcome variable can be updated with reference to a previously assigned value, in other words, the outcome variable being set may appear in the expression where it takes the value previously assigned to it. Special care is required when using the numeric base-types because floating point values can not be assigned to integer variables and vice-versa. The truncate, round or integerToFloat operators must be used to achieve numeric type conversion.

### 6.24.4 "include" Attribute Description

The description of the "include" attribute for the "OutcomeRule" class is given in Table 6.24.4.

Table 6.24.4 Description of the "include" attribute for the "OutcomeRule" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the inclusion of arbitrary content (the form depends on the binding approach).

### 6.24.5 "exitTest" Attribute Description

The description of the "exitTest" attribute for the "OutcomeRule" class is given in Table 6.24.5.

Table 6.24.5 Description of the "exitTest" attribute for the "OutcomeRule" class.
Descriptor | Definition
--- | ---
Attribute Name | exitTest
Data Type | Empty (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The exit outcome rule terminates outcomes processing immediately (for this invocation).

### 6.24.6 "outcomeCondition" Attribute Description

The description of the "outcomeCondition" attribute for the "OutcomeRule" class is given in Table 6.24.6.

Table 6.24.6 Description of the "outcomeCondition" attribute for the "OutcomeRule" class.
Descriptor | Definition
--- | ---
Attribute Name | outcomeCondition
Data Type | OutcomeCondition
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This allows the rule 'If..Then..Else' definition to be entered.

## 6.25 PromptStaticGroup Class Description

The data model for the "PromptStaticGroup" class is shown in Figure 6.25 and the accompanying definition in Table 6.25

Figure 6.25 - PromptStaticGroup class definitions.

Table 6.25 Description of the "PromptStaticGroup" class.
Descriptor | Definition
--- | ---
Class Name | PromptStaticGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: Prompt
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: math math include flowContentModel
Description | This is an abstract class that is used to enable complex ordering of content within the 'Prompt' class.

### 6.25.1 "math" Attribute Description

The description of the "math" attribute for the "PromptStaticGroup" class is given in Table 6.25.1.

Table 6.25.1 Description of the "math" attribute for the "PromptStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of MathML 2 content.

### 6.25.2 "math" Attribute Description

The description of the "math" attribute for the "PromptStaticGroup" class is given in Table 6.25.2.

Table 6.25.2 Description of the "math" attribute for the "PromptStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of MathML 3 content.

### 6.25.3 "include" Attribute Description

The description of the "include" attribute for the "PromptStaticGroup" class is given in Table 6.25.3.

Table 6.25.3 Description of the "include" attribute for the "PromptStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of markup from external files. The form of the inclusion depends upon the binding approach. When using XML this is achieved using the 'XIncude' approach.

### 6.25.4 "flowContentModel" Attribute Description

The description of the "flowContentModel" attribute for the "PromptStaticGroup" class is given in Table 6.25.4.

Table 6.25.4 Description of the "flowContentModel" attribute for the "PromptStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | flowContentModel
Data Type | FlowContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the insertion of complex HTML markup based upon flow content.

## 6.26 ResponseRuleGroup Class Description

The data model for the "ResponseRuleGroup" class is shown in Figure 6.26 and the accompanying definition in Table 6.26

Figure 6.26 - ResponseRuleGroup class definitions.

Table 6.26 Description of the "ResponseRuleGroup" class.
Descriptor | Definition
--- | ---
Class Name | ResponseRuleGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: ResponseElse ResponseIf ResponseProcessing ResponseProcessingFragment
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: include responseCondition responseProcessingFragment setOutcomeValue exitResponse lookupOutcomeValue
Description | This is an abstract class to define a response processing rule. A response rule is either a responseCondition, a simple action or a responseProcessingFragment. Response rules define the light-weight programming language necessary for deriving outcomes from responses i.e. scoring. Note that this programming language contains a minimal number of control structures, more complex scoring rules must be coded in other languages and referred to using a customOperator. Result rules are followed in the order given. Variables updated by a rule take their new value when evaluated as part of any following rules.

### 6.26.1 "include" Attribute Description

The description of the "include" attribute for the "ResponseRuleGroup" class is given in Table 6.26.1.

Table 6.26.1 Description of the "include" attribute for the "ResponseRuleGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the inclusion of arbitrary content (the form depends on the binding approach).

### 6.26.2 "responseCondition" Attribute Description

The description of the "responseCondition" attribute for the "ResponseRuleGroup" class is given in Table 6.26.2.

Table 6.26.2 Description of the "responseCondition" attribute for the "ResponseRuleGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | responseCondition
Data Type | ResponseCondition
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This allows the rule 'If..Then..Else' definition to be entered.

### 6.26.3 "responseProcessingFragment" Attribute Description

The description of the "responseProcessingFragment" attribute for the "ResponseRuleGroup" class is given in Table 6.26.3.

Table 6.26.3 Description of the "responseProcessingFragment" attribute for the "ResponseRuleGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | responseProcessingFragment
Data Type | ResponseProcessingFragment
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | A responseProcessingFragment is a simple group of responseRules which are grouped together in order to allow them to be managed as a separate resource. It should not be used for any other purpose.

### 6.26.4 "setOutcomeValue" Attribute Description

The description of the "setOutcomeValue" attribute for the "ResponseRuleGroup" class is given in Table 6.26.4.

Table 6.26.4 Description of the "setOutcomeValue" attribute for the "ResponseRuleGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | setOutcomeValue
Data Type | SetValue
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The setOutcomeValue rule sets the value of an outcome variable to the value obtained from the associated expression. An outcome variable can be updated with reference to a previously assigned value, in other words, the outcome variable being set may appear in the expression where it takes the value previously assigned to it. Special care is required when using the numeric base-types because floating point values can not be assigned to integer variables and vice-versa. The truncate, round or integerToFloat operators must be used to achieve numeric type conversion.

### 6.26.5 "exitResponse" Attribute Description

The description of the "exitResponse" attribute for the "ResponseRuleGroup" class is given in Table 6.26.5.

Table 6.26.5 Description of the "exitResponse" attribute for the "ResponseRuleGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | exitResponse
Data Type | Empty (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The exit response rule terminates response processing immediately (for this invocation).

### 6.26.6 "lookupOutcomeValue" Attribute Description

The description of the "lookupOutcomeValue" attribute for the "ResponseRuleGroup" class is given in Table 6.26.6.

Table 6.26.6 Description of the "lookupOutcomeValue" attribute for the "ResponseRuleGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | lookupOutcomeValue
Data Type | LookupOutcomeValue
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The lookupOutcomeValue rule sets the value of an outcome variable to the value obtained by looking up the value of the associated expression in the lookupTable associated with the outcome's declaration.

## 6.27 RubricBlockContentModel Class Description

The data model for the "RubricBlockContentModel" class is shown in Figure 6.27 and the accompanying definition in Table 6.27

Figure 6.27 - RubricBlockContentModel class definitions.

Table 6.27 Description of the "RubricBlockContentModel" class.
Descriptor | Definition
--- | ---
Class Name | RubricBlockContentModel
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: RubricBlock
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: flowContentModel math math include templateBlock templateInline printedVariable
Description | This is an abstract class that enables the top-level complex content for the Rubric block to be defined.

### 6.27.1 "flowContentModel" Attribute Description

The description of the "flowContentModel" attribute for the "RubricBlockContentModel" class is given in Table 6.27.1.

Table 6.27.1 Description of the "flowContentModel" attribute for the "RubricBlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | flowContentModel
Data Type | FlowContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the insertion of complex HTML markup based upon flow content.

### 6.27.2 "math" Attribute Description

The description of the "math" attribute for the "RubricBlockContentModel" class is given in Table 6.27.2.

Table 6.27.2 Description of the "math" attribute for the "RubricBlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of MathML 2 content.

### 6.27.3 "math" Attribute Description

The description of the "math" attribute for the "RubricBlockContentModel" class is given in Table 6.27.3.

Table 6.27.3 Description of the "math" attribute for the "RubricBlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of MathML 3 content.

### 6.27.4 "include" Attribute Description

The description of the "include" attribute for the "RubricBlockContentModel" class is given in Table 6.27.4.

Table 6.27.4 Description of the "include" attribute for the "RubricBlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of markup from external files. The form of the inclusion depends upon the binding approach. When using XML this is achieved using the 'XInclude' approach.

### 6.27.5 "templateBlock" Attribute Description

The description of the "templateBlock" attribute for the "RubricBlockContentModel" class is given in Table 6.27.5.

Table 6.27.5 Description of the "templateBlock" attribute for the "RubricBlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | templateBlock
Data Type | RubricBlockTemplateBlock
Value Space | Container [ Sequence ]
Scope | Local ("-")
Multiplicity | [1]
Description | This allows template block content to be inserted into the rubric block structure.

### 6.27.6 "templateInline" Attribute Description

The description of the "templateInline" attribute for the "RubricBlockContentModel" class is given in Table 6.27.6.

Table 6.27.6 Description of the "templateInline" attribute for the "RubricBlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | templateInline
Data Type | RubricBlockTemplateInline
Value Space | Container [ Sequence ]
Scope | Local ("-")
Multiplicity | [1]
Description | This allows template inline content to be inserted into the rubric block structure.

### 6.27.7 "printedVariable" Attribute Description

The description of the "printedVariable" attribute for the "RubricBlockContentModel" class is given in Table 6.27.7.

Table 6.27.7 Description of the "printedVariable" attribute for the "RubricBlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | printedVariable
Data Type | PrintedVariable
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of data defined as a printed variable.

## 6.28 RubricTemplateBlockContentModel Class Description

The data model for the "RubricTemplateBlockContentModel" class is shown in Figure 6.28 and the accompanying definition in Table 6.28

Figure 6.28 - RubricTemplateBlockContentModel class definitions.

Table 6.28 Description of the "RubricTemplateBlockContentModel" class.
Descriptor | Definition
--- | ---
Class Name | RubricTemplateBlockContentModel
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: RubricBlockTemplateBlock
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: flowContentModel math math include templateBlock printedVariable
Description | Ths is an abstract class that permits the insertion of the content for the RubricBlock when used in the context of a Template block.

### 6.28.1 "flowContentModel" Attribute Description

The description of the "flowContentModel" attribute for the "RubricTemplateBlockContentModel" class is given in Table 6.28.1.

Table 6.28.1 Description of the "flowContentModel" attribute for the "RubricTemplateBlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | flowContentModel
Data Type | FlowContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the insertion of complex HTML markup based upon flow content.

### 6.28.2 "math" Attribute Description

The description of the "math" attribute for the "RubricTemplateBlockContentModel" class is given in Table 6.28.2.

Table 6.28.2 Description of the "math" attribute for the "RubricTemplateBlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of MathML 2 content.

### 6.28.3 "math" Attribute Description

The description of the "math" attribute for the "RubricTemplateBlockContentModel" class is given in Table 6.28.3.

Table 6.28.3 Description of the "math" attribute for the "RubricTemplateBlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of MathML 3 content.

### 6.28.4 "include" Attribute Description

The description of the "include" attribute for the "RubricTemplateBlockContentModel" class is given in Table 6.28.4.

Table 6.28.4 Description of the "include" attribute for the "RubricTemplateBlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of markup from external files. The form of the inclusion depends upon the binding approach. When using XML this is achieved using the 'XInclude' approach.

### 6.28.5 "templateBlock" Attribute Description

The description of the "templateBlock" attribute for the "RubricTemplateBlockContentModel" class is given in Table 6.28.5.

Table 6.28.5 Description of the "templateBlock" attribute for the "RubricTemplateBlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | templateBlock
Data Type | RubricBlockTemplateBlock
Value Space | Container [ Sequence ]
Scope | Local ("-")
Multiplicity | [1]
Description | An abstract attribute that enables the inclusion of template information for use in the rubric block.

### 6.28.6 "printedVariable" Attribute Description

The description of the "printedVariable" attribute for the "RubricTemplateBlockContentModel" class is given in Table 6.28.6.

Table 6.28.6 Description of the "printedVariable" attribute for the "RubricTemplateBlockContentModel" class.
Descriptor | Definition
--- | ---
Attribute Name | printedVariable
Data Type | PrintedVariable
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of data defined as a printed variable.

## 6.29 RubricTemplateInlineStaticGroup Class Description

The data model for the "RubricTemplateInlineStaticGroup" class is shown in Figure 6.29 and the accompanying definition in Table 6.29

Figure 6.29 - RubricTemplateInlineStaticGroup class definitions.

Table 6.29 Description of the "RubricTemplateInlineStaticGroup" class.
Descriptor | Definition
--- | ---
Class Name | RubricTemplateInlineStaticGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: RubricBlockTemplateInline
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: inlineContentModel math math include templateInline printedVariable
Description | This is an abstract class that allows the complex content for the Rubric block content in the context of inline Template content.

### 6.29.1 "inlineContentModel" Attribute Description

The description of the "inlineContentModel" attribute for the "RubricTemplateInlineStaticGroup" class is given in Table 6.29.1.

Table 6.29.1 Description of the "inlineContentModel" attribute for the "RubricTemplateInlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | inlineContentModel
Data Type | InlineContentModel
Value Space | Abstract Container [ Selection ]
Scope | Local ("-")
Multiplicity | [1]
Description | This is an abstract attribute that enables the insertion of complex HTML markup based upon inline content.

### 6.29.2 "math" Attribute Description

The description of the "math" attribute for the "RubricTemplateInlineStaticGroup" class is given in Table 6.29.2.

Table 6.29.2 Description of the "math" attribute for the "RubricTemplateInlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML2
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of MathML 2 content.

### 6.29.3 "math" Attribute Description

The description of the "math" attribute for the "RubricTemplateInlineStaticGroup" class is given in Table 6.29.3.

Table 6.29.3 Description of the "math" attribute for the "RubricTemplateInlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | math
Data Type | MathML3
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of MathML 3 content.

### 6.29.4 "include" Attribute Description

The description of the "include" attribute for the "RubricTemplateInlineStaticGroup" class is given in Table 6.29.4.

Table 6.29.4 Description of the "include" attribute for the "RubricTemplateInlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This provides the insertion of markup from external files. The form of the inclusion depends upon the binding approach. When using XML this is achieved using the 'XInclude' approach.

### 6.29.5 "templateInline" Attribute Description

The description of the "templateInline" attribute for the "RubricTemplateInlineStaticGroup" class is given in Table 6.29.5.

Table 6.29.5 Description of the "templateInline" attribute for the "RubricTemplateInlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateInline
Data Type | RubricBlockTemplateInline
Value Space | Container [ Sequence ]
Scope | Local ("-")
Multiplicity | [1]
Description | This allows template block content to be inserted into the rubric block structure.

### 6.29.6 "printedVariable" Attribute Description

The description of the "printedVariable" attribute for the "RubricTemplateInlineStaticGroup" class is given in Table 6.29.6.

Table 6.29.6 Description of the "printedVariable" attribute for the "RubricTemplateInlineStaticGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | printedVariable
Data Type | PrintedVariable
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This permits the insertion of data defined as a printed variable.

## 6.30 SSMLGroup Class Description

The data model for the "SSMLGroup" class is shown in Figure 6.30 and the accompanying definition in Table 6.30

Figure 6.30 - SSMLGroup class definitions.

Table 6.30 Description of the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Class Name | SSMLGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: FlowContentModel InlineContentModel
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: p s say-as phoneme sub voice emphasis break prosody mark audio speak
Description | This is an abstract class that enables the set of SSML annotations to be used within the HTML content. SSML is part of a larger set of markup specifications for voice browsers developed through the open processes of the W3C. It is designed to provide a rich, XML-based markup language for assisting the generation of synthetic speech in Web and other applications. The essential role of the markup language is to give authors of synthesizable content a standard way to control aspects of speech output such as pronunciation, volume, pitch, rate, etc. across different synthesis-capable platforms.

### 6.30.1 "p" Attribute Description

The description of the "p" attribute for the "SSMLGroup" class is given in Table 6.30.1.

Table 6.30.1 Description of the "p" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | p
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. A 'p' tag represents a paragraph.

### 6.30.2 "s" Attribute Description

The description of the "s" attribute for the "SSMLGroup" class is given in Table 6.30.2.

Table 6.30.2 Description of the "s" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | s
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. A 's' tag represents a sentence.

### 6.30.3 "say-as" Attribute Description

The description of the "say-as" attribute for the "SSMLGroup" class is given in Table 6.30.3.

Table 6.30.3 Description of the "say-as" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | say-as
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The 'say-as' tag allows the author to indicate information on the type of text construct contained within the tag and to help specify the level of detail for rendering the contained text. Defining a comprehensive set of text format types is difficult because of the variety of languages that have to be considered and because of the innate flexibility of written languages. SSML only specifies the 'say-as' tag, its characteristics, and their purpose. It does not enumerate the possible values for the characteristics.

### 6.30.4 "phoneme" Attribute Description

The description of the "phoneme" attribute for the "SSMLGroup" class is given in Table 6.30.4.

Table 6.30.4 Description of the "phoneme" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | phoneme
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The phoneme tag provides a phonemic/phonetic pronunciation for the contained text. The phoneme tag may be empty. However, it is recommended that the tag contain human-readable text that can be used for non-spoken rendering of the document. For example, the content may be displayed visually for users with hearing impairments.

### 6.30.5 "sub" Attribute Description

The description of the "sub" attribute for the "SSMLGroup" class is given in Table 6.30.5.

Table 6.30.5 Description of the "sub" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | sub
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The 'sub' tag is employed to indicate that the text in the alias attribute value replaces the contained text for pronunciation. This allows a document to contain both a spoken and written form.

### 6.30.6 "voice" Attribute Description

The description of the "voice" attribute for the "SSMLGroup" class is given in Table 6.30.6.

Table 6.30.6 Description of the "voice" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | voice
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The 'voice' tag is a production element that requests a change in speaking voice.

### 6.30.7 "emphasis" Attribute Description

The description of the "emphasis" attribute for the "SSMLGroup" class is given in Table 6.30.7.

Table 6.30.7 Description of the "emphasis" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | emphasis
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The emphasis tag requests that the contained text be spoken with emphasis (also referred to as prominence or stress). The synthesis processor determines how to render emphasis since the nature of emphasis differs between languages, dialects or even voices.

### 6.30.8 "break" Attribute Description

The description of the "break" attribute for the "SSMLGroup" class is given in Table 6.30.8.

Table 6.30.8 Description of the "break" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | break
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The 'break' tag is an empty tag that controls the pausing or other prosodic boundaries between words. The use of the break tag between any pair of words is optional. If the tag is not present between words, the synthesis processor is expected to automatically determine a break based on the linguistic context. In practice, the break tag is most often used to override the typical automatic behavior of a synthesis processor.

### 6.30.9 "prosody" Attribute Description

The description of the "prosody" attribute for the "SSMLGroup" class is given in Table 6.30.9.

Table 6.30.9 Description of the "prosody" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | prosody
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The 'prosody' tag permits control of the pitch, speaking rate and volume of the speech output.

### 6.30.10 "mark" Attribute Description

The description of the "mark" attribute for the "SSMLGroup" class is given in Table 6.30.10.

Table 6.30.10 Description of the "mark" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | mark
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. A 'mark' tag is an empty tag that places a marker into the text/tag sequence.

### 6.30.11 "audio" Attribute Description

The description of the "audio" attribute for the "SSMLGroup" class is given in Table 6.30.11.

Table 6.30.11 Description of the "audio" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | audio
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The 'audio' tag supports the insertion of recorded audio files and the insertion of other audio formats in conjunction with synthesized speech output. The audio tag may be empty. If the audio tag is not empty then the contents should be the marked-up text to be spoken if the audio document is not available. The alternate content may include text, speech markup, desc tags, or other audio tags.

### 6.30.12 "speak" Attribute Description

The description of the "speak" attribute for the "SSMLGroup" class is given in Table 6.30.12.

Table 6.30.12 Description of the "speak" attribute for the "SSMLGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | speak
Data Type | SSMLv1p1
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This is one of the SSML annotation attributes. The 'speak' tag is the root for the markup annotation.

## 6.31 SectionPart Class Description

The data model for the "SectionPart" class is shown in Figure 6.31 and the accompanying definition in Table 6.31

Figure 6.31 - SectionPart class definitions.

Table 6.31 Description of the "SectionPart" class.
Descriptor | Definition
--- | ---
Class Name | SectionPart
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: AssessmentSection
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: include assessmentItemRef assessmentSection assessmentSectionRef
Description | This is an abstract class that enables the inclusion of the external referenced content or child assessmentSections to be used in an 'assessmentSection'.

### 6.31.1 "include" Attribute Description

The description of the "include" attribute for the "SectionPart" class is given in Table 6.31.1.

Table 6.31.1 Description of the "include" attribute for the "SectionPart" class.
Descriptor | Definition
--- | ---
Attribute Name | include
Data Type | Include
Value Space | Imported
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the inclusion of arbitrary content (the form depends on the binding approach).

### 6.31.2 "assessmentItemRef" Attribute Description

The description of the "assessmentItemRef" attribute for the "SectionPart" class is given in Table 6.31.2.

Table 6.31.2 Description of the "assessmentItemRef" attribute for the "SectionPart" class.
Descriptor | Definition
--- | ---
Attribute Name | assessmentItemRef
Data Type | AssessmentItemRef
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the inclusion of a reference to an 'assessmentItem' using the 'assessmentItemRef'.

### 6.31.3 "assessmentSection" Attribute Description

The description of the "assessmentSection" attribute for the "SectionPart" class is given in Table 6.31.3.

Table 6.31.3 Description of the "assessmentSection" attribute for the "SectionPart" class.
Descriptor | Definition
--- | ---
Attribute Name | assessmentSection
Data Type | AssessmentSection
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the inclusion of a child 'assessmentSection' using the 'assessmentSection'.

### 6.31.4 "assessmentSectionRef" Attribute Description

The description of the "assessmentSectionRef" attribute for the "SectionPart" class is given in Table 6.31.4.

Table 6.31.4 Description of the "assessmentSectionRef" attribute for the "SectionPart" class.
Descriptor | Definition
--- | ---
Attribute Name | assessmentSectionRef
Data Type | AssessmentSectionRef
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | This enables the inclusion of a reference to an 'assessmentSection' using the 'assessmentSectionRef'.

## 6.32 TableCellGroup Class Description

The data model for the "TableCellGroup" class is shown in Figure 6.32 and the accompanying definition in Table 6.32

Figure 6.32 - TableCellGroup class definitions.

Table 6.32 Description of the "TableCellGroup" class.
Descriptor | Definition
--- | ---
Class Name | TableCellGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: TR
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: td th
Description | This is an abstract class that enables the selection between the 'td' and 'th' tags for HTML table rows.

### 6.32.1 "td" Attribute Description

The description of the "td" attribute for the "TableCellGroup" class is given in Table 6.32.1.

Table 6.32.1 Description of the "td" attribute for the "TableCellGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | td
Data Type | TDH
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Provides the 'td' HTML tag choice as a child of the 'tr' HTML tag.

### 6.32.2 "th" Attribute Description

The description of the "th" attribute for the "TableCellGroup" class is given in Table 6.32.2.

Table 6.32.2 Description of the "th" attribute for the "TableCellGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | th
Data Type | TDH
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Provides the 'th' HTML tag choice as a child of the 'tr' HTML tag.

## 6.33 TemplateRuleGroup Class Description

The data model for the "TemplateRuleGroup" class is shown in Figure 6.33 and the accompanying definition in Table 6.33

Figure 6.33 - TemplateRuleGroup class definitions.

Table 6.33 Description of the "TemplateRuleGroup" class.
Descriptor | Definition
--- | ---
Class Name | TemplateRuleGroup
Class Type | Abstract Container [ Selection ]
Parents | The set of parent classes are: TemplateElse TemplateIf TemplateProcessing
Derived Classes | There are no derived classes.
Super Classes | This class is not derived from another class.
Characteristics | There are no characteristics.
Children | The set of children attributes are: setTemplateValue exitTemplate templateCondition setDefaultValue setCorrectResponse templateConstraint
Description | A template rule is either a templateCondition or a simple action. Template rules define the light-weight programming language necessary for creating cloned items. Note that this programming language contains a minimal number of control structures, more complex cloning rules are outside the scope of this specification. An expression used in a templateRule must not refer to the value of a response variable or outcome variable. It may only refer to the values of the template variables. Template rules are followed in the order given. Variables updated by a rule take their new value when evaluated as part of any following rules.

### 6.33.1 "setTemplateValue" Attribute Description

The description of the "setTemplateValue" attribute for the "TemplateRuleGroup" class is given in Table 6.33.1.

Table 6.33.1 Description of the "setTemplateValue" attribute for the "TemplateRuleGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | setTemplateValue
Data Type | SetValue
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This sets the value of a template variable to the value obtained from the associated expression. A template variable can be updated with reference to a previously assigned value, in other words, the template variable being set may appear in the expression where it takes the value previously assigned to it.

### 6.33.2 "exitTemplate" Attribute Description

The description of the "exitTemplate" attribute for the "TemplateRuleGroup" class is given in Table 6.33.2.

Table 6.33.2 Description of the "exitTemplate" attribute for the "TemplateRuleGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | exitTemplate
Data Type | Empty (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The exit template rule terminates template processing immediately.

### 6.33.3 "templateCondition" Attribute Description

The description of the "templateCondition" attribute for the "TemplateRuleGroup" class is given in Table 6.33.3.

Table 6.33.3 Description of the "templateCondition" attribute for the "TemplateRuleGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateCondition
Data Type | TemplateCondition
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | This allows the inclusion of the template condition i.e. the clause 'If..Then..Else' construction.

### 6.33.4 "setDefaultValue" Attribute Description

The description of the "setDefaultValue" attribute for the "TemplateRuleGroup" class is given in Table 6.33.4.

Table 6.33.4 Description of the "setDefaultValue" attribute for the "TemplateRuleGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | setDefaultValue
Data Type | SetValue
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The response variable or outcome variable to have its default value set.

### 6.33.5 "setCorrectResponse" Attribute Description

The description of the "setCorrectResponse" attribute for the "TemplateRuleGroup" class is given in Table 6.33.5.

Table 6.33.5 Description of the "setCorrectResponse" attribute for the "TemplateRuleGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | setCorrectResponse
Data Type | SetValue
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | The response variable to have its correct value set.

### 6.33.6 "templateConstraint" Attribute Description

The description of the "templateConstraint" attribute for the "TemplateRuleGroup" class is given in Table 6.33.6.

Table 6.33.6 Description of the "templateConstraint" attribute for the "TemplateRuleGroup" class.
Descriptor | Definition
--- | ---
Attribute Name | templateConstraint
Data Type | TemplateConstraint
Value Space | Container [ Sequence ]
Scope | Global ("+")
Multiplicity | [1]
Description | Allows the definition of the template constraints. A templateConstraint contains an expression which must have an effective baseType of boolean and single cardinality.

toc | top

# 7. Derived Class Descriptions

All of the derived data classes used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.2.

## 7.1 ARIALevelInteger Class Description

The data model for the "ARIALevelInteger" class is shown in Figure 7.1 and the accompanying definition in Table 7.1.

Figure 7.1 - ARIALevelInteger class definitions.

Table 7.1 Description of the "ARIALevelInteger" class.
Descriptor | Definition
--- | ---
Class Name | ARIALevelInteger
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: BasePromptInteraction BaseSequence BaseSequenceFull BaseSequenceRIdent BaseSequenceXBase BaseSequenceXBaseEmpty
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Integer (PrimitiveType)
Characteristics | There are no characteristics.
Children | The set of children attributes are: minInclusive
Description | Defines the datatype for the 'aria-level' property. This is an integer that must be '1' or greater.

### 7.1.1 "minInclusive" Attribute Description

The description of the "minInclusive" attribute for the "ARIALevelInteger" class is given in Table 7.1.

Table 7.1 Description of the "minInclusive" attribute for the "ARIALevelInteger" class.
Descriptor | Definition
--- | ---
Attribute Name | minInclusive
Data Type | Integer (Primitive-type)
Value Space | See Appendix A1.3. Default = "1".
Scope | Local ("-")
Multiplicity | [1]
Description | Constrains the value to be at least '1'.

## 7.2 AreaMapEntry Class Description

The data model for the "AreaMapEntry" class is shown in Figure 7.2 and the accompanying definition in Table 7.2.

Figure 7.2 - AreaMapEntry class definitions.

Table 7.2 Description of the "AreaMapEntry" class.
Descriptor | Definition
--- | ---
Class Name | AreaMapEntry
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: AreaMapping
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: shape coords mappedValue
Children | There are no children.
Description | The map is defined by a set of areaMapEntries, each of which maps an area of the coordinate space onto a single float. When mapping points each area is tested in turn, with those listed first taking priority in the case where areas overlap and a point falls in the intersection.

### 7.2.1 "shape" Characteristic Description

The description of the "shape" characteristic for the "AreaMapEntry" class is given in Table 7.2.1.

Table 7.2.1 Description of the "shape" characteristic for the "AreaMapEntry" class.
Descriptor | Definition
--- | ---
Characteristic Name | shape
Data Type | Shape
Value Space | Enumerated value set of: { circle | default | ellipse | poly | rect }
Scope | Global ("+")
Multiplicity | [1]
Description | The shape of the area.

### 7.2.2 "coords" Characteristic Description

The description of the "coords" characteristic for the "AreaMapEntry" class is given in Table 7.2.2.

Table 7.2.2 Description of the "coords" characteristic for the "AreaMapEntry" class.
Descriptor | Definition
--- | ---
Characteristic Name | coords
Data Type | Coords
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The size and position of the area, interpreted in conjunction with the shape.

### 7.2.3 "mappedValue" Characteristic Description

The description of the "mappedValue" characteristic for the "AreaMapEntry" class is given in Table 7.2.3.

Table 7.2.3 Description of the "mappedValue" characteristic for the "AreaMapEntry" class.
Descriptor | Definition
--- | ---
Characteristic Name | mappedValue
Data Type | Double (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The mapped value.

## 7.3 AssessmentSectionRef Class Description

The data model for the "AssessmentSectionRef" class is shown in Figure 7.3 and the accompanying definition in Table 7.3.

Figure 7.3 - AssessmentSectionRef class definitions.

Table 7.3 Description of the "AssessmentSectionRef" class.
Descriptor | Definition
--- | ---
Class Name | AssessmentSectionRef
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: AssessmentSectionSelection SectionPart
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: identifier href
Children | There are no children.
Description | Sections can be included into testParts or other assessmentSections by aggregation or by reference. The assessmentSectionRef element enables the inclusion by reference. The only documents that can be refered to by assessmentSectionRef are XML documents that contain a single assessmentSection as a single root. There are no other restrictions on the referenced assessmentSection document. The assessmentSectionRef element functions as a facade for the assessmentSection it refers to. That means that, at runtime, the document that contains the reference - with the refered-to section merged in - should behave exactly the same as a document that has all the same sections aggregated in one document. Adaptive test branch rules can only refer to included or directly referenced sections, they can not refer to sections that are in their turn included or referenced within the referenced section. That is to say, branching rules should treat referred sections as leaf nodes, that have no children that are amenable to branching separately from their immediate parent.

### 7.3.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "AssessmentSectionRef" class is given in Table 7.3.1.

Table 7.3.1 Description of the "identifier" characteristic for the "AssessmentSectionRef" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The unique identifier for the section reference. The identifier is a string of characters that must start with a Letter or an underscore ('_') and contain only Letters, underscores, hyphens ('-'), period ('.', a.k.a. full-stop), Digits, CombiningChars and Extenders. Identifiers containing the period character are reserved for use in prefixing, as described in the definition of variable. The character classes Letter, Digit, CombiningChar and Extender are defined in the Extensible Markup Language (XML) 1.0 (Second Edition) [XML, 00]. Note particularly that identifiers may not contain the colon (':') character. Identifiers should have no more than 32 characters for compatibility with version 1. They are always compared case-sensitively.

### 7.3.2 "href" Characteristic Description

The description of the "href" characteristic for the "AssessmentSectionRef" class is given in Table 7.3.2.

Table 7.3.2 Description of the "href" characteristic for the "AssessmentSectionRef" class.
Descriptor | Definition
--- | ---
Characteristic Name | href
Data Type | AnyURI (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The uri is used to refer to the assessmentSection document file e.g. elsewhere in the same content package. There is no requirement that this be unique. A test may refer to the same item multiple times within a test. Note however that each reference must have a unique identifier.

## 7.4 AssessmentStimulusRef Class Description

The data model for the "AssessmentStimulusRef" class is shown in Figure 7.4 and the accompanying definition in Table 7.4.

Figure 7.4 - AssessmentStimulusRef class definitions.

Table 7.4 Description of the "AssessmentStimulusRef" class.
Descriptor | Definition
--- | ---
Class Name | AssessmentStimulusRef
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: AssessmentItem
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: identifier href
Children | There are no children.
Description | This is the structure that enables reference to an 'assessmentStimulus' instance. The stimulus must be contained within its own instance and so the Item uses the 'assessmentStimulusRef' structure to provide the link between the Item and the Stimulus.

### 7.4.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "AssessmentStimulusRef" class is given in Table 7.4.1.

Table 7.4.1 Description of the "identifier" characteristic for the "AssessmentStimulusRef" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The unique identifier for the stimulus reference. The identifier is a string of characters that must start with a Letter or an underscore ('_') and contain only Letters, underscores, hyphens ('-'), period ('.', a.k.a. full-stop), Digits, CombiningChars and Extenders. Identifiers containing the period character are reserved for use in prefixing, as described in the definition of variable. The character classes Letter, Digit, CombiningChar and Extender are defined in the Extensible Markup Language (XML) 1.0 (Second Edition) [XML, 00]. Note particularly that identifiers may not contain the colon (':') character. Identifiers should have no more than 32 characters for compatibility with version 1. They are always compared case-sensitively.

### 7.4.2 "href" Characteristic Description

The description of the "href" characteristic for the "AssessmentStimulusRef" class is given in Table 7.4.2.

Table 7.4.2 Description of the "href" characteristic for the "AssessmentStimulusRef" class.
Descriptor | Definition
--- | ---
Characteristic Name | href
Data Type | AnyURI (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The uri used to refer to the stimulus file (e.g. elsewhere in the same content package). There is no requirement that this be unique. Several items may refer to the same stimulus. Note however that each reference must have a unique identifier.

## 7.5 BaseSequenceXBaseEmpty Class Description

The data model for the "BaseSequenceXBaseEmpty" class is shown in Figure 7.5 and the accompanying definition in Table 7.5.

Figure 7.5 - BaseSequenceXBaseEmpty class definitions.

Table 7.5 Description of the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Class Name | BaseSequenceXBaseEmpty
Class Type | Container [ DerivedType ]
Parents | There are no parent classes.
Derived Classes | The set of derived classes are: AssociableHotspot BR Col EndAttemptInteraction Gap HR HotspotChoice Img TextEntryInteraction
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: id class language label base dir role aria-controls aria-describedby aria-flowsto aria-label aria-labelledby aria-level aria-live aria-orientation aria-owns dataExtension
Children | There are no children.
Description | This is the base class for the HTML features and some QTI interactions that have no children elements i.e. must be empty. This consists of a set of child characteristics.

### 7.5.1 "id" Characteristic Description

The description of the "id" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.1.

Table 7.5.1 Description of the "id" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | id
Data Type | UniqueIdentifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The unique identifier assigned to the HTML tag. This must be unique otherwise features such as the APIP accessibilty text cannot be supplied as an alternative.

### 7.5.2 "class" Characteristic Description

The description of the "class" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.2.

Table 7.5.2 Description of the "class" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | class
Data Type | StringList
Value Space | The list consist of values of data-type(s): String (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | Every HTML tag may have a class characteristic specified. If specified, it must have a value that is a set of space-separated tokens representing the various classes to which the element belongs.

### 7.5.3 "language" Characteristic Description

The description of the "language" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.3.

Table 7.5.3 Description of the "language" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | language
Data Type | Language (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This characteristic specifies the primary language for the element's contents and for any of the element's characteristics that contain text. Its value must be a valid [RFC 3066] language tag, or the empty string. Setting the attribute to the empty string indicates that the primary language is unknown.

### 7.5.4 "label" Characteristic Description

The description of the "label" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.4.

Table 7.5.4 Description of the "label" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The label characteristic provides authoring systems with a mechanism for labelling elements of the content model with application specific data. If an item uses labels then values for the associated toolName and toolVersion attributes must also be provided.

### 7.5.5 "base" Characteristic Description

The description of the "base" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.5.

Table 7.5.5 Description of the "base" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | base
Data Type | Base (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | An optional URI used to change the base for resolving relative URI for the scope of this object. Particular care needs to be taken when resolving relative URI included as part of an Item Fragment. See Item and Test Fragments for more information.

### 7.5.6 "dir" Characteristic Description

The description of the "dir" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.6.

Table 7.5.6 Description of the "dir" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | dir
Data Type | DIR
Value Space | Enumerated value set of: { ltr | rtl | auto } Default = "auto".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Specifies the element's text directionality.

### 7.5.7 "role" Characteristic Description

The description of the "role" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.7.

Table 7.5.7 Description of the "role" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | role
Data Type | ARIARoleValue
Value Space | Enumerated value set of: { article | columnheader | definition | directory | document | group | heading | img | list | listitem | math | note | presentation | region | row | rowgroup | rowheader | separator | toolbar | button | checkbox | gridcell | link | log | option | radio | slider | spinbutton | status | tab | tabpanel | textbox | timer | listbox | radiogroup | tablist | complementary | contentinfo }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the ARIA role. Roles are defined and described by their characteristics. Characteristics define the structural function of a role, such as what a role is, concepts behind it, and what instances the role can or must contain.

### 7.5.8 "aria-controls" Characteristic Description

The description of the "aria-controls" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.8.

Table 7.5.8 Description of the "aria-controls" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-controls
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. This identifies the element (or elements) whose contents or presence are controlled by the current element.

### 7.5.9 "aria-describedby" Characteristic Description

The description of the "aria-describedby" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.9.

Table 7.5.9 Description of the "aria-describedby" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-describedby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the element (or elements) that describes the object.

### 7.5.10 "aria-flowsto" Characteristic Description

The description of the "aria-flowsto" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.10.

Table 7.5.10 Description of the "aria-flowsto" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-flowsto
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.

### 7.5.11 "aria-label" Characteristic Description

The description of the "aria-label" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.11.

Table 7.5.11 Description of the "aria-label" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines a string value that labels the current element. See related aria-labelledby. The purpose of aria-label is the same as that of aria-labelledby. It provides the user with a recognizable name of the object.

### 7.5.12 "aria-labelledby" Characteristic Description

The description of the "aria-labelledby" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.12.

Table 7.5.12 Description of the "aria-labelledby" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-labelledby
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Identifies the tag (or tags) that labels the current element. See related aria-label and aria-describedby. The purpose of aria-labelledby is the same as that of aria-label. It provides the user with a recognizable name of the object. The most common accessibility API mapping for a label is the accessible name property. If the label text is visible on screen, authors SHOULD use aria-labelledby and SHOULD NOT use aria-label. Use aria-label only if the interface is such that it is not possible to have a visible label on the screen. As required by the text alternative computation, user agents give precedence to aria-labelledby over aria-label when computing the accessible name property. The aria-labelledby attribute is similar to aria-describedby in that both reference other elements to calculate a text alternative, but a label should be concise, where a description is intended to provide more verbose information.

### 7.5.13 "aria-level" Characteristic Description

The description of the "aria-level" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.13.

Table 7.5.13 Description of the "aria-level" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-level
Data Type | ARIALevelInteger
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Defines the hierarchical level of an element within a structure. This can be applied inside trees to tree items, to headings inside a document, to nested grids, nested tablists and to other structural items that may appear inside a container or participate in an ownership hierarchy. The value for aria-level is an integer greater than or equal to 1.

### 7.5.14 "aria-live" Characteristic Description

The description of the "aria-live" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.14.

Table 7.5.14 Description of the "aria-live" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-live
Data Type | ARIALiveValue
Value Space | Enumerated value set of: { off | polite | assertive }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. The values of this attribute are expressed in degrees of importance. When regions are specified as polite, assistive technologies will notify users of updates but generally do not interrupt the current task, and updates take low priority. When regions are specified as assertive, assistive technologies will immediately notify the user, and could potentially clear the speech queue of previous updates.

### 7.5.15 "aria-orientation" Characteristic Description

The description of the "aria-orientation" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.15.

Table 7.5.15 Description of the "aria-orientation" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-orientation
Data Type | ARIAOrientationValue
Value Space | Enumerated value set of: { vertical | horizontal } Default = "horizontal".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. Indicates whether the element and orientation is horizontal or vertical.

### 7.5.16 "aria-owns" Characteristic Description

The description of the "aria-owns" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.16.

Table 7.5.16 Description of the "aria-owns" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | aria-owns
Data Type | IDREFS (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is a part of the ARIA annotation. See related aria-controls. The value of the aria-owns attribute is a space-separated list of IDREFS that reference one or more elements in the document by ID.

### 7.5.17 "dataExtension" Characteristic Description

The description of the "dataExtension" characteristic for the "BaseSequenceXBaseEmpty" class is given in Table 7.5.17.

Table 7.5.17 Description of the "dataExtension" characteristic for the "BaseSequenceXBaseEmpty" class.
Descriptor | Definition
--- | ---
Characteristic Name | dataExtension
Data Type | DataHTML5Extension
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0.. unbounded]
Description | This is the HTML5 extension characteristic. A custom data characteristic is a characteristic in no namespace whose name starts with the string 'data-', has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters.

## 7.6 BaseValue Class Description

The data model for the "BaseValue" class is shown in Figure 7.6 and the accompanying definition in Table 7.6.

Figure 7.6 - BaseValue class definitions.

Table 7.6 Description of the "BaseValue" class.
Descriptor | Definition
--- | ---
Class Name | BaseValue
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: String (PrimitiveType)
Characteristics | The set of characteristics are: baseType
Children | There are no children.
Description | One of the QTI expression functions. The simplest expression returns a single value from the set defined by the given baseType.

### 7.6.1 "baseType" Characteristic Description

The description of the "baseType" characteristic for the "BaseValue" class is given in Table 7.6.1.

Table 7.6.1 Description of the "baseType" characteristic for the "BaseValue" class.
Descriptor | Definition
--- | ---
Characteristic Name | baseType
Data Type | BaseType
Value Space | Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope | Global ("+")
Multiplicity | [1]
Description | The base type of the of the value.

## 7.7 Coords Class Description

The data model for the "Coords" class is shown in Figure 7.7 and the accompanying definition in Table 7.7.

Figure 7.7 - Coords class definitions.

Table 7.7 Description of the "Coords" class.
Descriptor | Definition
--- | ---
Class Name | Coords
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: AreaMapEntry AssociableHotspot HotspotChoice Inside MediaInteraction
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: NormalizedString (PrimitiveType)
Characteristics | There are no characteristics.
Children | The set of children attributes are: pattern
Description | The coords type provides the coordinates that determine the size and location of an area defined by a corresponding shape. The coordinates themselves are an ordered list of lengths (as defined in [XHTML, 10]). The interpretation of each length value is dependent on the value of the associated shape as follows. (a) rect: left-x, top-y, right-x, bottom-y; (b) circle: center-x, center-y, radius. Note. When the radius value is a percentage value, user agents should calculate the final radius value based on the associated object's width and height. The radius should be the smaller value of the two; (c) poly: x1, y1, x2, y2, ..., xN, yN. The first x and y coordinate pair and the last should be the same to close the polygon. When these coordinate values are not the same, user agents should infer an additional coordinate pair to close the polygon; (d) ellipse: center-x, center-y, h-radius, v-radius. Note that the ellipse shape is deprecated as it is not defined by XHTML; (e) default: no coordinates should be given.

### 7.7.1 "pattern" Attribute Description

The description of the "pattern" attribute for the "Coords" class is given in Table 7.7.

Table 7.7 Description of the "pattern" attribute for the "Coords" class.
Descriptor | Definition
--- | ---
Attribute Name | pattern
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3. Default = "(([0-9]+%?[,]){2}([0-9]+%?))|(([0-9]+%?[,]){3}([0-9]+%?))|(([0-9]+%?[,]){2}(([0-9]+%?[,]){2})+([0-9]+%?[,])([0-9]+%?))".
Scope | Local ("-")
Multiplicity | [1]
Description | This is the pattern that establishes the permitted values for the coords of: rect=x1,y1,x2,y2; circle=x,y,r; poly=x1,y1...xN,yN. All values are either an integer or a percentage.

## 7.8 Correct Class Description

The data model for the "Correct" class is shown in Figure 7.8 and the accompanying definition in Table 7.8.

Figure 7.8 - Correct class definitions.

Table 7.8 Description of the "Correct" class.
Descriptor | Definition
--- | ---
Class Name | Correct
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: identifier
Children | There are no children.
Description | This is a QTI expression. This expression looks up the declaration of a response variable and returns the associated correctResponse or NULL if no correct value was declared. When used in outcomes processing item identifier prefixing (see variable) may be used to obtain the correct response from an individual item.

### 7.8.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "Correct" class is given in Table 7.8.1.

Table 7.8.1 Description of the "identifier" characteristic for the "Correct" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the associated response variable. The identifier is a string of characters that must start with a Letter or an underscore ('_') and contain only Letters, underscores, hyphens ('-'), period ('.', a.k.a. full-stop), Digits, CombiningChars and Extenders. Identifiers containing the period character are reserved for use in prefixing, as described in the definition of variable. The character classes Letter, Digit, CombiningChar and Extender are defined in the Extensible Markup Language (XML) 1.0 (Second Edition) [XML, 00]. Note particularly that identifiers may not contain the colon (':') character. Identifiers should have no more than 32 characters for compatibility with version 1. They are always compared case-sensitively.

## 7.9 DataHTML5Extension Class Description

The data model for the "DataHTML5Extension" class is shown in Figure 7.9 and the accompanying definition in Table 7.9.

Figure 7.9 - DataHTML5Extension class definitions.

Table 7.9 Description of the "DataHTML5Extension" class.
Descriptor | Definition
--- | ---
Class Name | DataHTML5Extension
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: BasePromptInteraction BaseSequence BaseSequenceFull BaseSequenceRIdent BaseSequenceXBase BaseSequenceXBaseEmpty
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: AnyTypeLax (PrimitiveType)
Characteristics | There are no characteristics.
Children | The set of children attributes are: pattern
Description | This data-type is used to define a constrained extension. The extension is in no namespace but has a name that starts with the string 'data-', has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters.

### 7.9.1 "pattern" Attribute Description

The description of the "pattern" attribute for the "DataHTML5Extension" class is given in Table 7.9.

Table 7.9 Description of the "pattern" attribute for the "DataHTML5Extension" class.
Descriptor | Definition
--- | ---
Attribute Name | pattern
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3. Default = "(data-)[a-z|A-Z|0-9|-|.|_]+".
Scope | Local ("-")
Multiplicity | [1]
Description | This is the pattern that defines the regular expression for the name of the attrubute. It is a the string starting with 'data-', has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters.

## 7.10 Default Class Description

The data model for the "Default" class is shown in Figure 7.10 and the accompanying definition in Table 7.10.

Figure 7.10 - Default class definitions.

Table 7.10 Description of the "Default" class.
Descriptor | Definition
--- | ---
Class Name | Default
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: identifier
Children | There are no children.
Description | This is one of the QTI expression functions. This expression looks up the declaration of an itemVariable and returns the associated defaultValue or NULL if no default value was declared. When used in outcomes processing item identifier prefixing (see variable) may be used to obtain the default value from an individual item.

### 7.10.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "Default" class is given in Table 7.10.1.

Table 7.10.1 Description of the "identifier" characteristic for the "Default" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the associated Item variable. The identifier is a string of characters that must start with a Letter or an underscore ('_') and contain only Letters, underscores, hyphens ('-'), period ('.', a.k.a. full-stop), Digits, CombiningChars and Extenders. Identifiers containing the period character are reserved for use in prefixing, as described in the definition of variable. The character classes Letter, Digit, CombiningChar and Extender are defined in the Extensible Markup Language (XML) 1.0 (Second Edition) [XML, 00]. Note particularly that identifiers may not contain the colon (':') character. Identifiers should have no more than 32 characters for compatibility with version 1. They are always compared case-sensitively.

## 7.11 EncVariableString Class Description

The data model for the "EncVariableString" class is shown in Figure 7.11 and the accompanying definition in Table 7.11.

Figure 7.11 - EncVariableString class definitions.

Table 7.11 Description of the "EncVariableString" class.
Descriptor | Definition
--- | ---
Class Name | EncVariableString
Class Type | Container [ DerivedType ]
Parents | There are no parent classes.
Derived Classes | The set of derived classes are: StringOrVariableRef
Super Classes | The set of classes from which this class is derived: String (PrimitiveType)
Characteristics | There are no characteristics.
Children | The set of children attributes are: pattern
Description | The data-type for 'VariableRefs' used in lists based upon VariableRefs and Strings.

### 7.11.1 "pattern" Attribute Description

The description of the "pattern" attribute for the "EncVariableString" class is given in Table 7.11.

Table 7.11 Description of the "pattern" attribute for the "EncVariableString" class.
Descriptor | Definition
--- | ---
Attribute Name | pattern
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3. Default = "\{[\i-[:]][\c-[:]]*\}".
Scope | Local ("-")
Multiplicity | [1]
Description | Establishes the constraint that the content must be a string enclosed in curly brackets i.e. {...}.

## 7.12 Identifier Class Description

The data model for the "Identifier" class is shown in Figure 7.12 and the accompanying definition in Table 7.12.

Figure 7.12 - Identifier class definitions.

Table 7.12 Description of the "Identifier" class.
Descriptor | Definition
--- | ---
Class Name | Identifier
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: AssociableHotspot BasePromptInteraction BaseSequenceFull BaseSequenceRIdent BranchRule Correct CustomOperator Default EndAttemptInteraction ExtendedTextInteraction FeedbackBlock FeedbackInline FieldValue Gap GapImg GapText HotText HotspotChoice InlineChoice LookupOutcomeValue MapResponse ModalFeedback Number OutcomeDeclaration OutcomeMinMax PrintedVariable RubricBlockTemplateBlock RubricBlockTemplateInline SetValue SimpleAssociableChoice SimpleChoice TemplateBlock TemplateBlockFeedbackBlock TemplateDeclaration TemplateDefault TemplateInline TestFeedback TestVariables Value Variable VariableMapping Weight
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: NCName (PrimitiveType)
Characteristics | There are no characteristics.
Children | There are no children.
Description | An identifier is simply a logical reference to another object in the item, such as an itemVariable or choice. An identifier is a string of characters that must start with a Letter or an underscore ('_') and contain only Letters, underscores, hyphens ('-'), period ('.', a.k.a. full-stop), Digits, CombiningChars and Extenders. Identifiers containing the period character are reserved for use in prefixing, as described in the definition of variable. The character classes Letter, Digit, CombiningChar and Extender are defined in the Extensible Markup Language (XML) 1.0 (Second Edition) [XML, 00]. Note particularly that identifiers may not contain the colon (':') character. Identifiers should have no more than 32 characters for compatibility with version 1. They are always compared case-sensitively.

## 7.13 InterpolationTableEntry Class Description

The data model for the "InterpolationTableEntry" class is shown in Figure 7.13 and the accompanying definition in Table 7.13.

Figure 7.13 - InterpolationTableEntry class definitions.

Table 7.13 Description of the "InterpolationTableEntry" class.
Descriptor | Definition
--- | ---
Class Name | InterpolationTableEntry
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: InterpolationTable
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: sourceValue includeBoundary targetValue
Children | There are no children.
Description | Provides an interpolation table entry in the associated interpolation table.

### 7.13.1 "sourceValue" Characteristic Description

The description of the "sourceValue" characteristic for the "InterpolationTableEntry" class is given in Table 7.13.1.

Table 7.13.1 Description of the "sourceValue" characteristic for the "InterpolationTableEntry" class.
Descriptor | Definition
--- | ---
Characteristic Name | sourceValue
Data Type | Double (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The lower bound for the source value to match this entry.

### 7.13.2 "includeBoundary" Characteristic Description

The description of the "includeBoundary" characteristic for the "InterpolationTableEntry" class is given in Table 7.13.2.

Table 7.13.2 Description of the "includeBoundary" characteristic for the "InterpolationTableEntry" class.
Descriptor | Definition
--- | ---
Characteristic Name | includeBoundary
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "true".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Determines if an exact match of sourceValue matches this entry. If 'true', the default, then an exact match of the value is considered a match of this entry.

### 7.13.3 "targetValue" Characteristic Description

The description of the "targetValue" characteristic for the "InterpolationTableEntry" class is given in Table 7.13.3.

Table 7.13.3 Description of the "targetValue" characteristic for the "InterpolationTableEntry" class.
Descriptor | Definition
--- | ---
Characteristic Name | targetValue
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The target value that is used to set the outcome when a match is found.

## 7.14 ItemSessionControl Class Description

The data model for the "ItemSessionControl" class is shown in Figure 7.14 and the accompanying definition in Table 7.14.

Figure 7.14 - ItemSessionControl class definitions.

Table 7.14 Description of the "ItemSessionControl" class.
Descriptor | Definition
--- | ---
Class Name | ItemSessionControl
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: AssessmentItemRef AssessmentSection TestPart
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: maxAttempts showFeedback allowReview showSolution allowComment allowSkipping validateResponses
Children | There are no children.
Description | When items are referenced as part of a test, the test may impose constraints on how many attempts, and which states are allowed. These constraints can be specified for individual items, for whole sections or for an entire testPart. By default, a setting at testPart level affects all items in that part unless the setting is overridden at the assessmentSection level or ultimately at the individual assessmentItemRef. The defaults for an ItemSessionControl are used only in the absence of any applicable constraint.

### 7.14.1 "maxAttempts" Characteristic Description

The description of the "maxAttempts" characteristic for the "ItemSessionControl" class is given in Table 7.14.1.

Table 7.14.1 Description of the "maxAttempts" characteristic for the "ItemSessionControl" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxAttempts
Data Type | Int (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | For non-adaptive items, maxAttempts controls the maximum number of attempts allowed in the given test context. Normally this is 1 as the scoring rules for non-adaptive items are the same for each attempt. A value of 0 indicates no limit. If it is unspecified it is treated as 1 for non-adaptive items. For adaptive items, the value of maxAttempts is ignored as the number of attempts is limited by the value of the completionStatus built-in outcome variable. A value of maxAttempts greater than 1, by definition, indicates that any applicable feedback must be shown. This applies to both Modal Feedback and Integrated Feedback where applicable. However, once the maximum number of allowed attempts have been used (or for adaptive items, completionStatus has been set to completed) whether or not feedback is shown is controlled by the showFeedback constraint.

### 7.14.2 "showFeedback" Characteristic Description

The description of the "showFeedback" characteristic for the "ItemSessionControl" class is given in Table 7.14.2.

Table 7.14.2 Description of the "showFeedback" characteristic for the "ItemSessionControl" class.
Descriptor | Definition
--- | ---
Characteristic Name | showFeedback
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This constraint affects the visibility of feedback after the end of the last attempt. If it is 'false' then feedback is not shown. This includes both Modal Feedback and Integrated Feedback even if the candidate has access to the review state. The default is 'false'.

### 7.14.3 "allowReview" Characteristic Description

The description of the "allowReview" characteristic for the "ItemSessionControl" class is given in Table 7.14.3.

Table 7.14.3 Description of the "allowReview" characteristic for the "ItemSessionControl" class.
Descriptor | Definition
--- | ---
Characteristic Name | allowReview
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "true".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This constraint also applies only after the end of the last attempt. If set to 'true' the item session is allowed to enter the review state during which the candidate can review the itemBody along with the responses they gave, but cannot update or resubmit them. If set to 'false' the candidate can not review the itemBody or their responses once they have submitted their last attempt. The default is 'true'. If the review state is allowed, but feedback is not, delivery systems must take extra care not to show integrated feedback that resulted from the last attempt as part of the review process. Feedback can however take the form of hiding material that was previously visible as well as the more usual form of showing material that was previously hidden. To resolve this ambiguity, for non-adaptive items the absence of feedback is defined to be the version of the itemBody displayed to the candidate at the start of each attempt. In other words, with the visibility of any integrated feedback determined by the default values of the outcome variables and not the values of the outcome variables updated by the invocation of response processing. For Adaptive Items the situation is complicated by the iterative nature of response processing which makes it hard to identify the appropriate state in which to place the item for review. To avoid requiring delivery engines to cache the values of the outcome variables the setting of showFeedback should be ignored for adaptive items when allowReview is 'true'. When in the review state, the final values of the outcome variables should be used to determine the visibility of integrated feedback.

### 7.14.4 "showSolution" Characteristic Description

The description of the "showSolution" characteristic for the "ItemSessionControl" class is given in Table 7.14.4.

Table 7.14.4 Description of the "showSolution" characteristic for the "ItemSessionControl" class.
Descriptor | Definition
--- | ---
Characteristic Name | showSolution
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This constraint controls whether or not the system may provide the candidate with a way of entering the solution state. The default is 'false'.

### 7.14.5 "allowComment" Characteristic Description

The description of the "allowComment" characteristic for the "ItemSessionControl" class is given in Table 7.14.5.

Table 7.14.5 Description of the "allowComment" characteristic for the "ItemSessionControl" class.
Descriptor | Definition
--- | ---
Characteristic Name | allowComment
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Some delivery systems support the capture of candidate comments. The comment is not part of the assessed responses but provides feedback from the candidate to the other actors in the assessment process. This constraint controls whether or not the candidate is allowed to provide a comment on the item during the session.

### 7.14.6 "allowSkipping" Characteristic Description

The description of the "allowSkipping" characteristic for the "ItemSessionControl" class is given in Table 7.14.6.

Table 7.14.6 Description of the "allowSkipping" characteristic for the "ItemSessionControl" class.
Descriptor | Definition
--- | ---
Characteristic Name | allowSkipping
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "true".
Scope | Global ("+")
Multiplicity | [0..1]
Description | An item is defined to be skipped if the candidate has not provided any response. In other words, all response variables are submitted with their default value or are NULL. This definition is consistent with the numberResponded operator available in outcomeProcessing. If 'false', candidates are not allowed to skip the item, or in other words, they are not allowed to submit the item until they have provided a non-default value for at least one of the response variables. By definition, an item with no response variables cannot be skipped. The value of this attribute is only applicable when the item is in a testPart with individual submission mode. Note that if allowSkipping is 'true' delivery engines must ensure that the candidate can choose to submit no response, for example, through the provision of a "skip" button.

### 7.14.7 "validateResponses" Characteristic Description

The description of the "validateResponses" characteristic for the "ItemSessionControl" class is given in Table 7.14.7.

Table 7.14.7 Description of the "validateResponses" characteristic for the "ItemSessionControl" class.
Descriptor | Definition
--- | ---
Characteristic Name | validateResponses
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | This attribute controls the behaviour of delivery engines when the candidate submits an invalid response. An invalid response is defined to be a response which does not satisfy the constraints imposed by the interaction with which it is associated (see interaction for more information). When validateResponses is turned on (true) then the candidates are not allowed to submit the item until they have provided valid responses for all interactions. When turned off (false) invalid responses may be accepted by the system. The value of this attribute is only applicable when the item is in a testPart with individual submission mode (see Navigation and Submission).

## 7.15 Length Class Description

The data model for the "Length" class is shown in Figure 7.15 and the accompanying definition in Table 7.15.

Figure 7.15 - Length class definitions.

Table 7.15 Description of the "Length" class.
Descriptor | Definition
--- | ---
Class Name | Length
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: Img Object
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: String (PrimitiveType)
Characteristics | There are no characteristics.
Children | The set of children attributes are: pattern
Description | The length datatype is as defined in [XHTML, 10].

### 7.15.1 "pattern" Attribute Description

The description of the "pattern" attribute for the "Length" class is given in Table 7.15.

Table 7.15 Description of the "pattern" attribute for the "Length" class.
Descriptor | Definition
--- | ---
Attribute Name | pattern
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3. Default = "[0-9]+%?".
Scope | Local ("-")
Multiplicity | [1]
Description | Defines the constraint on the length such that is must contain only the numbers 0-9.

## 7.16 MapEntry Class Description

The data model for the "MapEntry" class is shown in Figure 7.16 and the accompanying definition in Table 7.16.

Figure 7.16 - MapEntry class definitions.

Table 7.16 Description of the "MapEntry" class.
Descriptor | Definition
--- | ---
Class Name | MapEntry
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: Mapping
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: mapKey mappedValue caseSensitive
Children | There are no children.
Description | This is a part of the mapping functionality. The map is defined by a set of mapEntries, each of which maps a single value from the source set onto a single float.

### 7.16.1 "mapKey" Characteristic Description

The description of the "mapKey" characteristic for the "MapEntry" class is given in Table 7.16.1.

Table 7.16.1 Description of the "mapKey" characteristic for the "MapEntry" class.
Descriptor | Definition
--- | ---
Characteristic Name | mapKey
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The source value for the mapEntry.

### 7.16.2 "mappedValue" Characteristic Description

The description of the "mappedValue" characteristic for the "MapEntry" class is given in Table 7.16.2.

Table 7.16.2 Description of the "mappedValue" characteristic for the "MapEntry" class.
Descriptor | Definition
--- | ---
Characteristic Name | mappedValue
Data Type | Double (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The mapped value for the MapEntry.

### 7.16.3 "caseSensitive" Characteristic Description

The description of the "caseSensitive" characteristic for the "MapEntry" class is given in Table 7.16.3.

Table 7.16.3 Description of the "caseSensitive" characteristic for the "MapEntry" class.
Descriptor | Definition
--- | ---
Characteristic Name | caseSensitive
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | Used to control whether or not a mapEntry string is matched case sensitively. The default value is false.

## 7.17 MapResponse Class Description

The data model for the "MapResponse" class is shown in Figure 7.17 and the accompanying definition in Table 7.17.

Figure 7.17 - MapResponse class definitions.

Table 7.17 Description of the "MapResponse" class.
Descriptor | Definition
--- | ---
Class Name | MapResponse
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: identifier
Children | There are no children.
Description | This is a QTI expression function. This expression looks up the value of a response variable and then transforms it using the associated mapping, which must have been declared. The result is a single float. If the response variable has single cardinality then the value returned is simply the mapped target value from the map. If the response variable has multiple or ordered cardinality then the value returned is the sum of the mapped target values. This expression cannot be applied to variables of record cardinality. For example, if a mapping associates the identifiers {A,B,C,D} with the values {0,1,0.5,0} respectively then mapResponse will map the single value 'C' to the numeric value 0.5 and the set of values {C,B} to the value 1.5. If a container contains multiple instances of the same value then that value is counted once only. To continue the example above {B,B,C} would still map to 1.5 and not 2.5.

### 7.17.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "MapResponse" class is given in Table 7.17.1.

Table 7.17.1 Description of the "identifier" characteristic for the "MapResponse" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the associated Response variable. The identifier is a string of characters that must start with a Letter or an underscore ('_') and contain only Letters, underscores, hyphens ('-'), period ('.', a.k.a. full-stop), Digits, CombiningChars and Extenders. Identifiers containing the period character are reserved for use in prefixing, as described in the definition of variable. The character classes Letter, Digit, CombiningChar and Extender are defined in the Extensible Markup Language (XML) 1.0 (Second Edition) [XML, 00]. Note particularly that identifiers may not contain the colon (':') character. Identifiers should have no more than 32 characters for compatibility with version 1. They are always compared case-sensitively.

## 7.18 MatchTableEntry Class Description

The data model for the "MatchTableEntry" class is shown in Figure 7.18 and the accompanying definition in Table 7.18.

Figure 7.18 - MatchTableEntry class definitions.

Table 7.18 Description of the "MatchTableEntry" class.
Descriptor | Definition
--- | ---
Class Name | MatchTableEntry
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: MatchTable
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: sourceValue targetValue
Children | There are no children.
Description | A matchTable transforms a source integer by finding the first matchTableEntry with an exact match to the source. The MatchTableEntry allows the definition of each entry in the table.

### 7.18.1 "sourceValue" Characteristic Description

The description of the "sourceValue" characteristic for the "MatchTableEntry" class is given in Table 7.18.1.

Table 7.18.1 Description of the "sourceValue" characteristic for the "MatchTableEntry" class.
Descriptor | Definition
--- | ---
Characteristic Name | sourceValue
Data Type | Int (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The lower bound for the source value to match this entry.

### 7.18.2 "targetValue" Characteristic Description

The description of the "targetValue" characteristic for the "MatchTableEntry" class is given in Table 7.18.2.

Table 7.18.2 Description of the "targetValue" characteristic for the "MatchTableEntry" class.
Descriptor | Definition
--- | ---
Characteristic Name | targetValue
Data Type | BaseType
Value Space | Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope | Global ("+")
Multiplicity | [1]
Description | The target value that is used to set the outcome when a match is found.

## 7.19 MathConstant Class Description

The data model for the "MathConstant" class is shown in Figure 7.19 and the accompanying definition in Table 7.19.

Figure 7.19 - MathConstant class definitions.

Table 7.19 Description of the "MathConstant" class.
Descriptor | Definition
--- | ---
Class Name | MathConstant
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: name
Children | There are no children.
Description | This is a QTI expression function. The result is a mathematical constant returned as a single float, e.g. Pi and e.

### 7.19.1 "name" Characteristic Description

The description of the "name" characteristic for the "MathConstant" class is given in Table 7.19.1.

Table 7.19.1 Description of the "name" characteristic for the "MathConstant" class.
Descriptor | Definition
--- | ---
Characteristic Name | name
Data Type | MathConstantNames
Value Space | Enumerated value set of: { pi | e }
Scope | Global ("+")
Multiplicity | [1]
Description | The name of the mathematical constant. This is from an enumerated list.

## 7.20 MimeType Class Description

The data model for the "MimeType" class is shown in Figure 7.20 and the accompanying definition in Table 7.20.

Figure 7.20 - MimeType class definitions.

Table 7.20 Description of the "MimeType" class.
Descriptor | Definition
--- | ---
Class Name | MimeType
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: A Object Param StyleSheet UploadInteraction
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: NormalizedString (PrimitiveType)
Characteristics | There are no characteristics.
Children | The set of children attributes are: pattern
Description | The set of mime types (type and subtype), as defined by [RFC 2045].

### 7.20.1 "pattern" Attribute Description

The description of the "pattern" attribute for the "MimeType" class is given in Table 7.20.

Table 7.20 Description of the "pattern" attribute for the "MimeType" class.
Descriptor | Definition
--- | ---
Attribute Name | pattern
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3. Default = "[\p{IsBasicLatin}-[()<>@,;:\\"/\[\]?=]]+/[\p{IsBasicLatin}-[()<>@,;:\\"/\[\]?=]]+".
Scope | Local ("-")
Multiplicity | [1]
Description | Defines the regular expression for a mimeType value.

## 7.21 NonNegativeDouble Class Description

The data model for the "NonNegativeDouble" class is shown in Figure 7.21 and the accompanying definition in Table 7.21.

Figure 7.21 - NonNegativeDouble class definitions.

Table 7.21 Description of the "NonNegativeDouble" class.
Descriptor | Definition
--- | ---
Class Name | NonNegativeDouble
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: OutcomeDeclaration SliderInteraction TimeLimits
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Double (PrimitiveType)
Characteristics | There are no characteristics.
Children | The set of children attributes are: minInclusive
Description | This is the data-type for numbers that are of the data-type 'double' but must not be negative i.e. the minimum value is 0.0.

### 7.21.1 "minInclusive" Attribute Description

The description of the "minInclusive" attribute for the "NonNegativeDouble" class is given in Table 7.21.

Table 7.21 Description of the "minInclusive" attribute for the "NonNegativeDouble" class.
Descriptor | Definition
--- | ---
Attribute Name | minInclusive
Data Type | Double (Primitive-type)
Value Space | See Appendix A1.3. Default = "0.0".
Scope | Global ("+")
Multiplicity | [1]
Description | Defines the constraint that the minimum value is 0.0.

## 7.22 Number Class Description

The data model for the "Number" class is shown in Figure 7.22 and the accompanying definition in Table 7.22.

Figure 7.22 - Number class definitions.

Table 7.22 Description of the "Number" class.
Descriptor | Definition
--- | ---
Class Name | Number
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: sectionIdentifier includeCategory excludeCategory
Children | There are no children.
Description | This is base class for some of the QTI expressions. This is the data-type used in some of the functions that are used in Outcome Processing only and which provide summative information.

### 7.22.1 "sectionIdentifier" Characteristic Description

The description of the "sectionIdentifier" characteristic for the "Number" class is given in Table 7.22.1.

Table 7.22.1 Description of the "sectionIdentifier" characteristic for the "Number" class.
Descriptor | Definition
--- | ---
Characteristic Name | sectionIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | If specified, only variables from items in the assessmentSection with matching identifier are matched. Items in sub-sections are included in this definition.

### 7.22.2 "includeCategory" Characteristic Description

The description of the "includeCategory" characteristic for the "Number" class is given in Table 7.22.2.

Table 7.22.2 Description of the "includeCategory" characteristic for the "Number" class.
Descriptor | Definition
--- | ---
Characteristic Name | includeCategory
Data Type | IdentifierList
Value Space | The list consist of values of data-type(s): NCName (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | If specified, only variables from items with a matching category are included.

### 7.22.3 "excludeCategory" Characteristic Description

The description of the "excludeCategory" characteristic for the "Number" class is given in Table 7.22.3.

Table 7.22.3 Description of the "excludeCategory" characteristic for the "Number" class.
Descriptor | Definition
--- | ---
Characteristic Name | excludeCategory
Data Type | IdentifierList
Value Space | The list consist of values of data-type(s): NCName (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | If specified, only variables from items with no matching category are included.

## 7.23 OutcomeMinMax Class Description

The data model for the "OutcomeMinMax" class is shown in Figure 7.23 and the accompanying definition in Table 7.23.

Figure 7.23 - OutcomeMinMax class definitions.

Table 7.23 Description of the "OutcomeMinMax" class.
Descriptor | Definition
--- | ---
Class Name | OutcomeMinMax
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: sectionIdentifier includeCategory excludeCategory outcomeIdentifier weightIdentifier
Children | There are no children.
Description | This is a data-type for the 'outcomeMinimum' and 'outcomeMaximum' QTI expressions for outcome processing.

### 7.23.1 "sectionIdentifier" Characteristic Description

The description of the "sectionIdentifier" characteristic for the "OutcomeMinMax" class is given in Table 7.23.1.

Table 7.23.1 Description of the "sectionIdentifier" characteristic for the "OutcomeMinMax" class.
Descriptor | Definition
--- | ---
Characteristic Name | sectionIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | If specified, only variables from items in the assessmentSection with matching identifier are matched. Items in sub-sections are included in this definition.

### 7.23.2 "includeCategory" Characteristic Description

The description of the "includeCategory" characteristic for the "OutcomeMinMax" class is given in Table 7.23.2.

Table 7.23.2 Description of the "includeCategory" characteristic for the "OutcomeMinMax" class.
Descriptor | Definition
--- | ---
Characteristic Name | includeCategory
Data Type | IdentifierList
Value Space | The list consist of values of data-type(s): NCName (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | If specified, only variables from items with a matching category are included.

### 7.23.3 "excludeCategory" Characteristic Description

The description of the "excludeCategory" characteristic for the "OutcomeMinMax" class is given in Table 7.23.3.

Table 7.23.3 Description of the "excludeCategory" characteristic for the "OutcomeMinMax" class.
Descriptor | Definition
--- | ---
Characteristic Name | excludeCategory
Data Type | IdentifierList
Value Space | The list consist of values of data-type(s): NCName (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | If specified, only variables from items with no matching category are included.

### 7.23.4 "outcomeIdentifier" Characteristic Description

The description of the "outcomeIdentifier" characteristic for the "OutcomeMinMax" class is given in Table 7.23.4.

Table 7.23.4 Description of the "outcomeIdentifier" characteristic for the "OutcomeMinMax" class.
Descriptor | Definition
--- | ---
Characteristic Name | outcomeIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | As per the 'variableIdentifier' attribute of 'testVariables'.

### 7.23.5 "weightIdentifier" Characteristic Description

The description of the "weightIdentifier" characteristic for the "OutcomeMinMax" class is given in Table 7.23.5.

Table 7.23.5 Description of the "weightIdentifier" characteristic for the "OutcomeMinMax" class.
Descriptor | Definition
--- | ---
Characteristic Name | weightIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | As per the 'weightIdentifier' characteristic of 'testVariables'.

## 7.24 Param Class Description

The data model for the "Param" class is shown in Figure 7.24 and the accompanying definition in Table 7.24.

Figure 7.24 - Param class definitions.

Table 7.24 Description of the "Param" class.
Descriptor | Definition
--- | ---
Class Name | Param
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: ObjectFlowGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: name value valuetype type
Children | There are no children.
Description | This is the container for a parameter being passed to the HTML 'object' tag.

### 7.24.1 "name" Characteristic Description

The description of the "name" characteristic for the "Param" class is given in Table 7.24.1.

Table 7.24.1 Description of the "name" characteristic for the "Param" class.
Descriptor | Definition
--- | ---
Characteristic Name | name
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The name of the parameter, as interpreted by the object.

### 7.24.2 "value" Characteristic Description

The description of the "value" characteristic for the "Param" class is given in Table 7.24.2.

Table 7.24.2 Description of the "value" characteristic for the "Param" class.
Descriptor | Definition
--- | ---
Characteristic Name | value
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The value to pass to the object for the named parameter. This value is subject to template variable expansion. If the value is the name of a template variable that was declared with the paramVariable set to true then the template variable's value is passed to the object as the value for the given parameter. When expanding a template variable as a parameter value, types other than identifiers, strings and uris must be converted to strings. Numeric types are converted to strings using the "%i" or "%G" formats as appropriate (see printedVariable for a discussion of numeric formatting). Values of base-type boolean are expanded to one of the strings "true" or "false". Values of base-type point are expanded to two space-separated integers in the order horizontal coordinate, vertical coordinate, using "%i" format. Values of base-type pair and directedPair are converted to a string consisting of the two identifiers, space separated. Values of base-type duration are converted using "%G" format. Values of base-type file cannot be used in parameter expansion. If the valuetype is REF the template variable must be of base-type uri.

### 7.24.3 "valuetype" Characteristic Description

The description of the "valuetype" characteristic for the "Param" class is given in Table 7.24.3.

Table 7.24.3 Description of the "valuetype" characteristic for the "Param" class.
Descriptor | Definition
--- | ---
Characteristic Name | valuetype
Data Type | ParamType
Value Space | Enumerated value set of: { DATA | REF }
Scope | Global ("+")
Multiplicity | [1]
Description | This specification supports the use of DATA and REF but not OBJECT.

### 7.24.4 "type" Characteristic Description

The description of the "type" characteristic for the "Param" class is given in Table 7.24.4.

Table 7.24.4 Description of the "type" characteristic for the "Param" class.
Descriptor | Definition
--- | ---
Characteristic Name | type
Data Type | MimeType
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | Used to provide a type, using mimetypes, for values valuetype REF.

## 7.25 PrintedVariable Class Description

The data model for the "PrintedVariable" class is shown in Figure 7.25 and the accompanying definition in Table 7.25.

Figure 7.25 - PrintedVariable class definitions.

Table 7.25 Description of the "PrintedVariable" class.
Descriptor | Definition
--- | ---
Class Name | PrintedVariable
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: FeedandTempBlockStatic FeedbackBlockStatic FeedbackFlowStaticGroup FeedbackInlineGroup FlowGroup FlowStaticGroup InlineChoiceGroup InlineGroup InlineStaticGroup RubricBlockContentModel RubricTemplateBlockContentModel RubricTemplateInlineStaticGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: id class language label baseuri identifier format base index powerForm field delimiter mappingIndicator
Children | There are no children.
Description | The outcome variable or template variable must have been defined. The values of response variables cannot be printed directly as their values are implicitly known to the candidate through the interactions they are bound to; if necessary, their values can be assigned to outcomes during responseProcessing and displayed to the candidate as part of a bodyElement visible only in the appropriate feedback states. If the variable's value is NULL then the element is ignored. Variables of baseType string are treated as simple runs of text. Variables of baseType integer or float are converted to runs of text (strings) using the formatting rules described below. Float values should only be formatted in the e, E, f, g, G, r or R styles. Variables of baseType duration are treated as floats, representing the duration in seconds. Variables of baseType file are rendered using a control that enables the user to open the file. The control should display the name associated with the file, if any. Variables of baseType uri are rendered using a control that enables the user to open the identified resource, for example, by following a hypertext link in the case of a URL. For variables of single cardinality, the value of the variable is printed. For variables of ordered cardinality, if the attribute index is set, the single value corresponding to the indexed member is printed, otherwise an ordered list of the values within the container is printed, delimited by the string value of the delimiter attribute. For variables of multiple cardinality, a list of the values within the container is printed, delimited by the string value of the delimiter attribute. For variables of record cardinality, if the attribute field is set, the value corresponding to the specified field is printed, otherwise a list of the field names and corresponding field values within the variable is printed, delimited by the string value of the delimiter attribute and with the correspondence between them indicated by the string value of the mappingIndicator attribute.

### 7.25.1 "id" Characteristic Description

The description of the "id" characteristic for the "PrintedVariable" class is given in Table 7.25.1.

Table 7.25.1 Description of the "id" characteristic for the "PrintedVariable" class.
Descriptor | Definition
--- | ---
Characteristic Name | id
Data Type | UniqueIdentifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | The unique identifier assigned to the 'printVariable' tag. This must be unique otherwise features such as the APIP accessibilty text cannot be supplied as an alternative.

### 7.25.2 "class" Characteristic Description

The description of the "class" characteristic for the "PrintedVariable" class is given in Table 7.25.2.

Table 7.25.2 Description of the "class" characteristic for the "PrintedVariable" class.
Descriptor | Definition
--- | ---
Characteristic Name | class
Data Type | StringList
Value Space | The list consist of values of data-type(s): String (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | If specified, it must have a value that is a set of space-separated tokens representing the various style classes to which the element belongs.

### 7.25.3 "language" Characteristic Description

The description of the "language" characteristic for the "PrintedVariable" class is given in Table 7.25.3.

Table 7.25.3 Description of the "language" characteristic for the "PrintedVariable" class.
Descriptor | Definition
--- | ---
Characteristic Name | language
Data Type | Language (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | This attribute specifies the primary language for the element's contents and for any of the element's attributes that contain text. Its value must be a valid [RFC 3066] language tag, or the empty string. Setting the attribute to the empty string indicates that the primary language is unknown.

### 7.25.4 "label" Characteristic Description

The description of the "label" characteristic for the "PrintedVariable" class is given in Table 7.25.4.

Table 7.25.4 Description of the "label" characteristic for the "PrintedVariable" class.
Descriptor | Definition
--- | ---
Characteristic Name | label
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The label attribute represents information for the element that can be used to identify it or its functionality, such as would be appropriate for a tooltip. The value is text.

### 7.25.5 "baseuri" Characteristic Description

The description of the "baseuri" characteristic for the "PrintedVariable" class is given in Table 7.25.5.

Table 7.25.5 Description of the "baseuri" characteristic for the "PrintedVariable" class.
Descriptor | Definition
--- | ---
Characteristic Name | baseuri
Data Type | Base (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | An optional URI used to change the base for resolving relative URI for the scope of this object. Particular care needs to be taken when resolving relative URI included as part of an Item Fragment (see Item and Test Fragments in Section 2 for more information).

### 7.25.6 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "PrintedVariable" class is given in Table 7.25.6.

Table 7.25.6 Description of the "identifier" characteristic for the "PrintedVariable" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The outcome variable or template variable must have been defined. The values of response variables cannot be printed directly as their values are implicitly known to the candidate through the interactions they are bound to; if necessary, their values can be assigned to outcomes during responseProcessing and displayed to the candidate as part of a bodyElement visible only in the appropriate feedback states.

### 7.25.7 "format" Characteristic Description

The description of the "format" characteristic for the "PrintedVariable" class is given in Table 7.25.7.

Table 7.25.7 Description of the "format" characteristic for the "PrintedVariable" class.
Descriptor | Definition
--- | ---
Characteristic Name | format
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The format conversion specifier to use when converting numerical values to strings (see Number Formatting Rules in Subsection 2.3.4 for details).

### 7.25.8 "base" Characteristic Description

The description of the "base" characteristic for the "PrintedVariable" class is given in Table 7.25.8.

Table 7.25.8 Description of the "base" characteristic for the "PrintedVariable" class.
Descriptor | Definition
--- | ---
Characteristic Name | base
Data Type | IntegerOrVariableRef
Value Space | The union consist of values of data-type(s): Integer (Primitive-type), VariableString (Derived-type) Default = "10".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The number base to use when converting integer variables to strings with the 'i' conversion type code.

### 7.25.9 "index" Characteristic Description

The description of the "index" characteristic for the "PrintedVariable" class is given in Table 7.25.9.

Table 7.25.9 Description of the "index" characteristic for the "PrintedVariable" class.
Descriptor | Definition
--- | ---
Characteristic Name | index
Data Type | IntegerOrVariableRef
Value Space | The union consist of values of data-type(s): Integer (Primitive-type), VariableString (Derived-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | The index to use when displaying a variable of ordered cardinality. If a variable of ordered cardinality is to be displayed and index is not set, all the values in the container are displayed.

### 7.25.10 "powerForm" Characteristic Description

The description of the "powerForm" characteristic for the "PrintedVariable" class is given in Table 7.25.10.

Table 7.25.10 Description of the "powerForm" characteristic for the "PrintedVariable" class.
Descriptor | Definition
--- | ---
Characteristic Name | powerForm
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | If the variable value is a float and powerForm is set to 'false', the variable will be rendered using the 'e' or 'E' format. If the powerform is set to 'true', the form "e+n" is changed to "x 10 to the power n".

### 7.25.11 "field" Characteristic Description

The description of the "field" characteristic for the "PrintedVariable" class is given in Table 7.25.11.

Table 7.25.11 Description of the "field" characteristic for the "PrintedVariable" class.
Descriptor | Definition
--- | ---
Characteristic Name | field
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | The field specifier to use when displaying variables of record cardinality.

### 7.25.12 "delimiter" Characteristic Description

The description of the "delimiter" characteristic for the "PrintedVariable" class is given in Table 7.25.12.

Table 7.25.12 Description of the "delimiter" characteristic for the "PrintedVariable" class.
Descriptor | Definition
--- | ---
Characteristic Name | delimiter
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3. Default = ";".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The delimiter to use between values when displaying variables of ordered, multiple or record cardinality. ";" is default when delimiter is not declared. Implementations can override this default with personal preferences or locale settings.

### 7.25.13 "mappingIndicator" Characteristic Description

The description of the "mappingIndicator" characteristic for the "PrintedVariable" class is given in Table 7.25.13.

Table 7.25.13 Description of the "mappingIndicator" characteristic for the "PrintedVariable" class.
Descriptor | Definition
--- | ---
Characteristic Name | mappingIndicator
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3. Default = "=".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The mapping indicator to use between field name and field value when displaying variables of record cardinality. "=" is default when mappingIndicator is not declared. Implementations can override this default with personal preferences or locale settings.

## 7.26 RandomFloat Class Description

The data model for the "RandomFloat" class is shown in Figure 7.26 and the accompanying definition in Table 7.26.

Figure 7.26 - RandomFloat class definitions.

Table 7.26 Description of the "RandomFloat" class.
Descriptor | Definition
--- | ---
Class Name | RandomFloat
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: min max
Children | There are no children.
Description | This is a QTI expresssion function. Selects a random float from the specified range [min,max].

### 7.26.1 "min" Characteristic Description

The description of the "min" characteristic for the "RandomFloat" class is given in Table 7.26.1.

Table 7.26.1 Description of the "min" characteristic for the "RandomFloat" class.
Descriptor | Definition
--- | ---
Characteristic Name | min
Data Type | FloatOrVariableRef
Value Space | The union consist of values of data-type(s): Double (Primitive-type), VariableString (Derived-type) Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The lower bound for the random float generation.

### 7.26.2 "max" Characteristic Description

The description of the "max" characteristic for the "RandomFloat" class is given in Table 7.26.2.

Table 7.26.2 Description of the "max" characteristic for the "RandomFloat" class.
Descriptor | Definition
--- | ---
Characteristic Name | max
Data Type | FloatOrVariableRef
Value Space | The union consist of values of data-type(s): Double (Primitive-type), VariableString (Derived-type)
Scope | Global ("+")
Multiplicity | [1]
Description | The upper bound for the random float generation.

## 7.27 RandomInteger Class Description

The data model for the "RandomInteger" class is shown in Figure 7.27 and the accompanying definition in Table 7.27.

Figure 7.27 - RandomInteger class definitions.

Table 7.27 Description of the "RandomInteger" class.
Descriptor | Definition
--- | ---
Class Name | RandomInteger
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: min max step
Children | There are no children.
Description | This is a QTI expression function. Selects a random integer from the specified range [min,max] satisfying min + step * n for some integer n. For example, with min=2, max=11 and step=3 the values {2,5,8,11} are possible.

### 7.27.1 "min" Characteristic Description

The description of the "min" characteristic for the "RandomInteger" class is given in Table 7.27.1.

Table 7.27.1 Description of the "min" characteristic for the "RandomInteger" class.
Descriptor | Definition
--- | ---
Characteristic Name | min
Data Type | IntegerOrVariableRef
Value Space | The union consist of values of data-type(s): Integer (Primitive-type), VariableString (Derived-type) Default = "0".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The lower bound for the random integer generation.

### 7.27.2 "max" Characteristic Description

The description of the "max" characteristic for the "RandomInteger" class is given in Table 7.27.2.

Table 7.27.2 Description of the "max" characteristic for the "RandomInteger" class.
Descriptor | Definition
--- | ---
Characteristic Name | max
Data Type | IntegerOrVariableRef
Value Space | The union consist of values of data-type(s): Integer (Primitive-type), VariableString (Derived-type)
Scope | Global ("+")
Multiplicity | [1]
Description | The upper bound for the random integer generation.

### 7.27.3 "step" Characteristic Description

The description of the "step" characteristic for the "RandomInteger" class is given in Table 7.27.3.

Table 7.27.3 Description of the "step" characteristic for the "RandomInteger" class.
Descriptor | Definition
--- | ---
Characteristic Name | step
Data Type | IntegerOrVariableRef
Value Space | The union consist of values of data-type(s): Integer (Primitive-type), VariableString (Derived-type) Default = "1".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The step value for the random integer generation.

## 7.28 StyleSheet Class Description

The data model for the "StyleSheet" class is shown in Figure 7.28 and the accompanying definition in Table 7.28.

Figure 7.28 - StyleSheet class definitions.

Table 7.28 Description of the "StyleSheet" class.
Descriptor | Definition
--- | ---
Class Name | StyleSheet
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: AssessmentItem AssessmentStimulus AssessmentTest FeedbackBlock ModalFeedback RubricBlock RubricBlockTemplateBlock TemplateBlock TemplateBlockFeedbackBlock TestFeedback
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: href type media title
Children | There are no children.
Description | Used to associate an external stylesheet with an object such as an assessmentItem, etc. QTI supports CSS 2.1 and CSS 3.0.

### 7.28.1 "href" Characteristic Description

The description of the "href" characteristic for the "StyleSheet" class is given in Table 7.28.1.

Table 7.28.1 Description of the "href" characteristic for the "StyleSheet" class.
Descriptor | Definition
--- | ---
Characteristic Name | href
Data Type | AnyURI (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier or location of the external stylesheet.

### 7.28.2 "type" Characteristic Description

The description of the "type" characteristic for the "StyleSheet" class is given in Table 7.28.2.

Table 7.28.2 Description of the "type" characteristic for the "StyleSheet" class.
Descriptor | Definition
--- | ---
Characteristic Name | type
Data Type | MimeType
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The type of the external stylesheet.

### 7.28.3 "media" Characteristic Description

The description of the "media" characteristic for the "StyleSheet" class is given in Table 7.28.3.

Table 7.28.3 Description of the "media" characteristic for the "StyleSheet" class.
Descriptor | Definition
--- | ---
Characteristic Name | media
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | An optional media descriptor that describes the media to which this stylesheet applies.

### 7.28.4 "title" Characteristic Description

The description of the "title" characteristic for the "StyleSheet" class is given in Table 7.28.4.

Table 7.28.4 Description of the "title" characteristic for the "StyleSheet" class.
Descriptor | Definition
--- | ---
Characteristic Name | title
Data Type | NormalizedString (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [0..1]
Description | An optional title for the stylesheet.

## 7.29 TestVariables Class Description

The data model for the "TestVariables" class is shown in Figure 7.29 and the accompanying definition in Table 7.29.

Figure 7.29 - TestVariables class definitions.

Table 7.29 Description of the "TestVariables" class.
Descriptor | Definition
--- | ---
Class Name | TestVariables
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: sectionIdentifier includeCategory excludeCategory variableIdentifier weightIdentifier baseType
Children | There are no children.
Description | This is a QTI expression function. This expression, which can only be used in outcomes processing, simultaneously looks up the value of an itemVariable in a sub-set of the items referred to in a test. Only variables with single cardinality are considered, all NULL values are ignored. The result has cardinality multiple and base-type as specified below.

### 7.29.1 "sectionIdentifier" Characteristic Description

The description of the "sectionIdentifier" characteristic for the "TestVariables" class is given in Table 7.29.1.

Table 7.29.1 Description of the "sectionIdentifier" characteristic for the "TestVariables" class.
Descriptor | Definition
--- | ---
Characteristic Name | sectionIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | If specified, only variables from items in the assessmentSection with matching identifier are matched. Items in sub-sections are included in this definition.

### 7.29.2 "includeCategory" Characteristic Description

The description of the "includeCategory" characteristic for the "TestVariables" class is given in Table 7.29.2.

Table 7.29.2 Description of the "includeCategory" characteristic for the "TestVariables" class.
Descriptor | Definition
--- | ---
Characteristic Name | includeCategory
Data Type | IdentifierList
Value Space | The list consist of values of data-type(s): NCName (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | If specified, only variables from items with a matching category are included.

### 7.29.3 "excludeCategory" Characteristic Description

The description of the "excludeCategory" characteristic for the "TestVariables" class is given in Table 7.29.3.

Table 7.29.3 Description of the "excludeCategory" characteristic for the "TestVariables" class.
Descriptor | Definition
--- | ---
Characteristic Name | excludeCategory
Data Type | IdentifierList
Value Space | The list consist of values of data-type(s): NCName (Primitive-type)
Scope | Global ("+")
Multiplicity | [0..1]
Description | If specified, only variables from items with no matching category are included.

### 7.29.4 "variableIdentifier" Characteristic Description

The description of the "variableIdentifier" characteristic for the "TestVariables" class is given in Table 7.29.4.

Table 7.29.4 Description of the "variableIdentifier" characteristic for the "TestVariables" class.
Descriptor | Definition
--- | ---
Characteristic Name | variableIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the variable to look up in each item. If a test brings together items with different variable naming conventions variableMappings may be used to reduce the complexity of outcomes processing and allow a single testVariables expression to be used. Items with no matching variable are ignored.

### 7.29.5 "weightIdentifier" Characteristic Description

The description of the "weightIdentifier" characteristic for the "TestVariables" class is given in Table 7.29.5.

Table 7.29.5 Description of the "weightIdentifier" characteristic for the "TestVariables" class.
Descriptor | Definition
--- | ---
Characteristic Name | weightIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | If specified, the defined weight is applied to each variable as described in the definition of weightIdentifier for a single variable. The behaviour of this characterisic is only defined if the baseType attribute is float or omitted . When a weighting is specified the result of the expression always has base-type float. Note that this option is incomptable with baseType integer. This restriction ensures that the value of the baseType attribute remains consistent with the resulting container type.

### 7.29.6 "baseType" Characteristic Description

The description of the "baseType" characteristic for the "TestVariables" class is given in Table 7.29.6.

Table 7.29.6 Description of the "baseType" characteristic for the "TestVariables" class.
Descriptor | Definition
--- | ---
Characteristic Name | baseType
Data Type | BaseType
Value Space | Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope | Global ("+")
Multiplicity | [0..1]
Description | If specified, matches only variables declared with this baseType. This also becomes the base-type of the result (subject to type promotion through weighting, as described below). If omitted, variables declared with base-type integer or float are matched. The base-type of the result is integer if all matching values have base-type integer, otherwise it is float and integer values are subject to type promotion.

## 7.30 TimeLimits Class Description

The data model for the "TimeLimits" class is shown in Figure 7.30 and the accompanying definition in Table 7.30.

Figure 7.30 - TimeLimits class definitions.

Table 7.30 Description of the "TimeLimits" class.
Descriptor | Definition
--- | ---
Class Name | TimeLimits
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: AssessmentItemRef AssessmentSection AssessmentTest TestPart
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: minTime maxTime allowLateSubmission
Children | There are no children.
Description | In the context of a specific assessmentTest an item, or group of items, may be subject to a time constraint. This specification supports both minimum and maximum time constraints. The controlled time for a single item is simply the duration of the item session as defined by the builtin response variable duration. For assessmentSections, testParts and whole assessmentTests the time limits relate to the durations of all the item sessions plus any other time spent navigating that part of the test. In other words, the time includes time spent in states where no item is being interacted with, such as dedicated navigation screens. The allowLateSubmission attribute regulates whether a candidate's response that is beyond the maxTime should still be accepted. Minimum times are applicable to assessmentSections and assessmentItems only when linear navigation mode is in effect.

### 7.30.1 "minTime" Characteristic Description

The description of the "minTime" characteristic for the "TimeLimits" class is given in Table 7.30.1.

Table 7.30.1 Description of the "minTime" characteristic for the "TimeLimits" class.
Descriptor | Definition
--- | ---
Characteristic Name | minTime
Data Type | NonNegativeDouble
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the minimum duration, in seconds, allocated to the test. Minimum times are applicable to assessmentSections and assessmentItems only when linear navigation mode is in effect.

### 7.30.2 "maxTime" Characteristic Description

The description of the "maxTime" characteristic for the "TimeLimits" class is given in Table 7.30.2.

Table 7.30.2 Description of the "maxTime" characteristic for the "TimeLimits" class.
Descriptor | Definition
--- | ---
Characteristic Name | maxTime
Data Type | NonNegativeDouble
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This is the maximum duration, in seconds, allocated to the test.

### 7.30.3 "allowLateSubmission" Characteristic Description

The description of the "allowLateSubmission" characteristic for the "TimeLimits" class is given in Table 7.30.3.

Table 7.30.3 Description of the "allowLateSubmission" characteristic for the "TimeLimits" class.
Descriptor | Definition
--- | ---
Characteristic Name | allowLateSubmission
Data Type | Boolean (Primitive-type)
Value Space | See Appendix A1.3. Default = "false".
Scope | Global ("+")
Multiplicity | [0..1]
Description | The allowLateSubmission attribute regulates whether a candidate's response that is beyond the maxTime should still be accepted.

## 7.31 UniqueIdentifier Class Description

The data model for the "UniqueIdentifier" class is shown in Figure 7.31 and the accompanying definition in Table 7.31.

Figure 7.31 - UniqueIdentifier class definitions.

Table 7.31 Description of the "UniqueIdentifier" class.
Descriptor | Definition
--- | ---
Class Name | UniqueIdentifier
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: BasePromptInteraction BaseSequence BaseSequenceFull BaseSequenceRIdent BaseSequenceXBase BaseSequenceXBaseEmpty ItemBody PositionObjectStage PrintedVariable ResponseDeclaration SimpleMatchSet
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: ID (PrimitiveType)
Characteristics | There are no characteristics.
Children | There are no children.
Description | A unique identifier is simply an identifier that is unique within the scope of the instance. An identifier is a string of characters that must start with a Letter or an underscore ('_') and contain only Letters, underscores, hyphens ('-'), period ('.', a.k.a. full-stop), Digits, CombiningChars and Extenders. Identifiers containing the period character are reserved for use in prefixing, as described in the definition of variable. The character classes Letter, Digit, CombiningChar and Extender are defined in the Extensible Markup Language (XML) 1.0 (Second Edition) [XML, 00]. Note particularly that identifiers may not contain the colon (':') character. Identifiers should have no more than 32 characters for compatibility with version 1. They are always compared case-sensitively.

## 7.32 UniqueIdentifierRef Class Description

The data model for the "UniqueIdentifierRef" class is shown in Figure 7.32 and the accompanying definition in Table 7.32.

Figure 7.32 - UniqueIdentifierRef class definitions.

Table 7.32 Description of the "UniqueIdentifierRef" class.
Descriptor | Definition
--- | ---
Class Name | UniqueIdentifierRef
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: OutcomeDeclaration TextEntryInteraction
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: IDREF (PrimitiveType)
Characteristics | There are no characteristics.
Children | There are no children.
Description | A reference to an object that has been declared using the 'UniqueIdentifier' data-type. unique identifier is simply an identifier that is unique within the scope of the instance. An identifier is a string of characters that must start with a Letter or an underscore ('_') and contain only Letters, underscores, hyphens ('-'), period ('.', a.k.a. full-stop), Digits, CombiningChars and Extenders. Identifiers containing the period character are reserved for use in prefixing, as described in the definition of variable. The character classes Letter, Digit, CombiningChar and Extender are defined in the Extensible Markup Language (XML) 1.0 (Second Edition) [XML, 00]. Note particularly that identifiers may not contain the colon (':') character. Identifiers should have no more than 32 characters for compatibility with version 1. They are always compared case-sensitively.

## 7.33 Value Class Description

The data model for the "Value" class is shown in Figure 7.33 and the accompanying definition in Table 7.33.

Figure 7.33 - Value class definitions.

Table 7.33 Description of the "Value" class.
Descriptor | Definition
--- | ---
Class Name | Value
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: CorrectResponse DefaultValue
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: NormalizedString (PrimitiveType)
Characteristics | The set of characteristics are: fieldIdentifier baseType
Children | There are no children.
Description | A class that can represent a single value of any baseType in variable declarations and result reports. The base-type is defined by the baseType attribute of the declaration except in the case of variables with record cardinality.

### 7.33.1 "fieldIdentifier" Characteristic Description

The description of the "fieldIdentifier" characteristic for the "Value" class is given in Table 7.33.1.

Table 7.33.1 Description of the "fieldIdentifier" characteristic for the "Value" class.
Descriptor | Definition
--- | ---
Characteristic Name | fieldIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | This characterisic is only used for specifying the field identifier for a value that forms part of a record.

### 7.33.2 "baseType" Characteristic Description

The description of the "baseType" characteristic for the "Value" class is given in Table 7.33.2.

Table 7.33.2 Description of the "baseType" characteristic for the "Value" class.
Descriptor | Definition
--- | ---
Characteristic Name | baseType
Data Type | BaseType
Value Space | Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope | Global ("+")
Multiplicity | [0..1]
Description | This characteristic is only used for specifying the base-type of a value that forms part of a record.

## 7.34 Variable Class Description

The data model for the "Variable" class is shown in Figure 7.34 and the accompanying definition in Table 7.34.

Figure 7.34 - Variable class definitions.

Table 7.34 Description of the "Variable" class.
Descriptor | Definition
--- | ---
Class Name | Variable
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: ExpressionGroup NumericExpressionGroup
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: identifier weightIdentifier
Children | There are no children.
Description | This is a QTI expression function. This expression looks up the value of an itemVariable that has been declared in a corresponding variableDeclaration or is one of the built-in variables. The result has the base-type and cardinality declared for the variable subject to the type promotion of weighted outcomes. During outcomes processing, values taken from an individual item session can be looked up by prefixing the name of the item variable with the identifier assigned to the item in the assessmentItemRef, separated by a period character. For example, to obtain the value of the SCORE variable in the item referred to as Q01 you would use a variable instance with identifier Q01.SCORE. In adaptive tests that contain items that are allowed to be replaced (i.e. that have the withReplacement attribute set to "true"), the same item can be instantiated more than once. In order to access the outcome variable values of each instantiation, a number that denotes the instance's place in the sequence of the item's instantiation is inserted between the item variable identifier and the item variable, separated by a period character. For example, to obtain the value of the SCORE variable in the item referred to as Q01 in its second instantiation you would use a variable instance, prefixed by the instantiation sequence number, prefixed by an identifier Q01.2.SCORE. When looking up the value of a response variable it always takes the value assigned to it by the candidate's last submission. Unsubmitted responses are not available during expression evaluation. The value of an item variable taken from an item instantiated multiple times from the same assessmentItemRef (through the use of selection withReplacement) is taken from the last instance submitted if submission is simultaneous, otherwise it is undefined.

### 7.34.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "Variable" class is given in Table 7.34.1.

Table 7.34.1 Description of the "identifier" characteristic for the "Variable" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The identifier of the itemVariable that has been declared in a corresponding variableDeclaration or of the built-in variables.

### 7.34.2 "weightIdentifier" Characteristic Description

The description of the "weightIdentifier" characteristic for the "Variable" class is given in Table 7.34.2.

Table 7.34.2 Description of the "weightIdentifier" characteristic for the "Variable" class.
Descriptor | Definition
--- | ---
Characteristic Name | weightIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [0..1]
Description | An optional weighting to be applied to the value of the variable. Weights are defined only in the test context (and hence only in outcomes processing) and only when the item identifier prefixing technique (see above) is being used to look up the value of an item variable. The weight identifier refers to a weight definition in the corresponding assessmentItemRef. If no matching definition is found the weight is assumed to be 1.0. Weights only apply to item variables with base types integer and float. If the item variable is of any other type the weight is ignored. All weights are treated as having base type float and the resulting value is obtained by multiplying the variable's value by the associated weight. When applying a weight to the value of a variable with base type integer the value is subject to type promotion and the result of the expression has base type float.

## 7.35 VariableMapping Class Description

The data model for the "VariableMapping" class is shown in Figure 7.35 and the accompanying definition in Table 7.35.

Figure 7.35 - VariableMapping class definitions.

Table 7.35 Description of the "VariableMapping" class.
Descriptor | Definition
--- | ---
Class Name | VariableMapping
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: AssessmentItemRef
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: sourceIdentifier targetIdentifier
Children | There are no children.
Description | Variable mappings allow outcome variables declared with the name sourceIdentifier in the corresponding item to be treated as if they were declared with the name targetIdentifier during outcomeProcessing. Use of variable mappings allows more control over the way outcomes are aggregated when using testVariables.

### 7.35.1 "sourceIdentifier" Characteristic Description

The description of the "sourceIdentifier" characteristic for the "VariableMapping" class is given in Table 7.35.1.

Table 7.35.1 Description of the "sourceIdentifier" characteristic for the "VariableMapping" class.
Descriptor | Definition
--- | ---
Characteristic Name | sourceIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The outcome variables declared with the name sourceIdentifier in the corresponding item to be treated as if they were declared with the name targetIdentifier during outcomeProcessing.

### 7.35.2 "targetIdentifier" Characteristic Description

The description of the "targetIdentifier" characteristic for the "VariableMapping" class is given in Table 7.35.2.

Table 7.35.2 Description of the "targetIdentifier" characteristic for the "VariableMapping" class.
Descriptor | Definition
--- | ---
Characteristic Name | targetIdentifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | The outcome variables declared with the name sourceIdentifier in the corresponding item to be treated as if they were declared with the name targetIdentifier during outcomeProcessing.

## 7.36 VariableString Class Description

The data model for the "VariableString" class is shown in Figure 7.36 and the accompanying definition in Table 7.36.

Figure 7.36 - VariableString class definitions.

Table 7.36 Description of the "VariableString" class.
Descriptor | Definition
--- | ---
Class Name | VariableString
Class Type | Container [ DerivedType ]
Parents | There are no parent classes.
Derived Classes | The set of derived classes are: FloatOrVariableRef IntegerOrVariableRef
Super Classes | The set of classes from which this class is derived: String (PrimitiveType)
Characteristics | There are no characteristics.
Children | The set of children attributes are: pattern
Description | The data-type for 'VariableRefs' used in list based upon VariableRefs with anything other than a string.

### 7.36.1 "pattern" Attribute Description

The description of the "pattern" attribute for the "VariableString" class is given in Table 7.36.

Table 7.36 Description of the "pattern" attribute for the "VariableString" class.
Descriptor | Definition
--- | ---
Attribute Name | pattern
Data Type | String (Primitive-type)
Value Space | See Appendix A1.3. Default = "[\i-[:]][\c-[:]]*".
Scope | Local ("-")
Multiplicity | [1]
Description | Establishes the constraint that the content must be a valid string.

## 7.37 Weight Class Description

The data model for the "Weight" class is shown in Figure 7.37 and the accompanying definition in Table 7.37.

Figure 7.37 - Weight class definitions.

Table 7.37 Description of the "Weight" class.
Descriptor | Definition
--- | ---
Class Name | Weight
Class Type | Container [ DerivedType ]
Parents | The set of parent classes are: AssessmentItemRef
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Empty (PrimitiveType)
Characteristics | The set of characteristics are: identifier value
Children | There are no children.
Description | The contribution of an individual item score to an overall test score typically varies from test to test. The score of the item is said to be weighted. Weights are defined as part of each reference to an item (assessmentItemRef) within a test.

### 7.37.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "Weight" class is given in Table 7.37.1.

Table 7.37.1 Description of the "identifier" characteristic for the "Weight" class.
Descriptor | Definition
--- | ---
Characteristic Name | identifier
Data Type | Identifier
Value Space | Container [ DerivedType ]
Scope | Global ("+")
Multiplicity | [1]
Description | An item can have any number of weights, each one is given an identifier that is used to refer to the weight in outcomes processing (see the variable and testVariables definitions).

### 7.37.2 "value" Characteristic Description

The description of the "value" characteristic for the "Weight" class is given in Table 7.37.2.

Table 7.37.2 Description of the "value" characteristic for the "Weight" class.
Descriptor | Definition
--- | ---
Characteristic Name | value
Data Type | Double (Primitive-type)
Value Space | See Appendix A1.3.
Scope | Global ("+")
Multiplicity | [1]
Description | Weights are floating point values. Weights can be applied to outcome variables of base type float or integer. The weight is applied at the time the variable's value is evaluated during outcomes processing. The result is always treated as having base type float even if the variable itself was declared as being of base type integer.

toc | top

# 8. Enumerated Vocabulary Descriptions

All of the enumerated vocabularies used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.4.

## 8.1 ARIALiveValue Vocabulary Description

The permitted set of values for the aria-level ARIA annotations.The data model for the "ARIALiveValue" enumerated class is shown in Figure 8.1 and the accompanying vocabulary definition in Table 8.1.

Figure 8.1 - ARIALiveValue class definitions.

Table 8.1 Description of the "ARIALiveValue" enumerated vocabulary terms.
Term | Definition
--- | ---
assertive | Denotes that the content is assertive in nature.
off | Denotes that the ARIA live feature is off (the default setting).
polite | Denotes that the content is polite in nature.

## 8.2 ARIAOrientationValue Vocabulary Description

The set of permitted values that indicate the orientation of the associated element.The data model for the "ARIAOrientationValue" enumerated class is shown in Figure 8.2 and the accompanying vocabulary definition in Table 8.2.

Figure 8.2 - ARIAOrientationValue class definitions.

Table 8.2 Description of the "ARIAOrientationValue" enumerated vocabulary terms.
Term | Definition
--- | ---
horizontal | Denotes that the orientation of the associated element is horizontal.
vertical | Denotes that the orientation of the associated element is vertical.

## 8.3 ARIARoleValue Vocabulary Description

The permitted set of values for the ARIA roles that have been identified as applicable to QTI XML markup.The data model for the "ARIARoleValue" enumerated class is shown in Figure 8.3 and the accompanying vocabulary definition in Table 8.3.

Figure 8.3 - ARIARoleValue class definitions.

Table 8.3 Description of the "ARIARoleValue" enumerated vocabulary terms.
Term | Definition
--- | ---
article | Identifies the role as a section of a page that consists of a composition that forms an independent part of a document, page, or site.
button | Identifies the role as an input that allows for user-triggered actions when clicked or pressed. See related link.
checkbox | Identifies the role as a checkable input that has three possible values: true, false, or mixed.
columnheader | Identifies the role as a cell containing header information for a column.
complementary | Identifies the role as a supporting section of the document, designed to be complementary to the main content at a similar level in the DOM hierarchy, but remains meaningful when separated from the main content.
contentinfo | Identifies the role as a large perceivable region that contains information about the parent document.
definition | Identifies the role as a definition of a term or concept.
directory | Identifies the role as a list of references to members of a group, such as a static table of contents.
document | Identifies the role as a region containing related information that is declared as document content, as opposed to a web application.
gridcell | Identifies the role as a cell in a grid or treegrid.
group | Identifies the role as a set of user interface objects which are not intended to be included in a page summary or table of contents by assistive technologies.
heading | Identifies the role as a heading for a section of the page.
img | Identifies the role as a container for a collection of elements that form an image.
link | Identifies the role as a an interactive reference to an internal or external resource that, when activated, causes the user agent to navigate to that resource. See related button.
list | Identifies the role as a group of non-interactive list items. See related listbox.
listbox | Identifies the role as a widget that allows the user to select one or more items from a list of choices. See related list.
listitem | Identifies the role as a single item in a list or directory.
log | Identifies the role as a type of live region where new information is added in meaningful order and old information may disappear.
math | Identifies the role as content that represents a mathematical expression.
note | Identifies the role as a section whose content is parenthetic or ancillary to the main content of the resource.
option | Identifies the role as a selectable item in a select list.
presentation | Identifies the role as an element whose implicit native role semantics will not be mapped to the accessibility API.
radio | Identifies the role as a checkable input in a group of radio roles, only one of which can be checked at a time.
radiogroup | Identifies the role as a group of radio buttons.
region | Identifies the role as a large perceivable section of a web page or document, that is important enough to be included in a page summary or table of contents, for example, an area of the page containing live sporting event statistics.
row | Identifies the role as a row of cells in a grid.
rowgroup | Identifies the role as a group containing one or more row elements in a grid.
rowheader | Identifies the role as a cell containing header information for a row in a grid.
separator | Identifies the role as a divider that separates and distinguishes sections of content or groups of menuitems.
slider | Identifies the role as a user input where the user selects a value from within a given range.
spinbutton | Identifies the role as a form of range that expects the user to select from among discrete choices.
status | Identifies the role as a container whose content is advisory information for the user but is not important enough to justify an alert, often but not necessarily presented as a status bar.
tab | Identifies the role as a grouping label providing a mechanism for selecting the tab content that is to be rendered to the user.
tablist | Identifies the role as a list of tab elements, which are references to tabpanel elements.
tabpanel | Identifies the role as a container for the resources associated with a tab, where each tab is contained in a tablist.
textbox | Identifies the role as an Input that allows free-form text as its value.
timer | Identifies the role as a type of live region containing a numerical counter which indicates an amount of elapsed time from a start point, or the time remaining until an end point.
toolbar | Identifies the role as a collection of commonly used function buttons or controls represented in compact visual form.

## 8.4 Align Vocabulary Description

Provides the permitted set of values for the 'align' attribute in the HTML markup i.e. how the associated object is horizontally aligned on the page.The data model for the "Align" enumerated class is shown in Figure 8.4 and the accompanying vocabulary definition in Table 8.4.

Figure 8.4 - Align class definitions.

Table 8.4 Description of the "Align" enumerated vocabulary terms.
Term | Definition
--- | ---
center | Center horizontal alignment.
char | Set the horizontal alignment to the '.' character.
justify | Justified horizontal alignment i.e. create equal marhins left and right..
left | Left horizontal alignment.
right | Right horizontal alignment.

## 8.5 BaseType Vocabulary Description

A base-type is simply a description of a set of atomic values (atomic to this specification). Note that several of the baseTypes used to define the runtime data model have identical definitions to those of the basic data types used to define the values for attributes in the specification itself. The use of an enumeration to define the set of baseTypes used in the runtime model, as opposed to the use of classes with similar names, is designed to help distinguish between these two distinct levels of modelling.The data model for the "BaseType" enumerated class is shown in Figure 8.5 and the accompanying vocabulary definition in Table 8.5.

Figure 8.5 - BaseType class definitions.

Table 8.5 Description of the "BaseType" enumerated vocabulary terms.
Term | Definition
--- | ---
boolean | The set of boolean values is the same as the set of values defined by the boolean primitveType.
directedPair | A directedPair value represents a pair of identifiers corresponding to a directed association between two objects. The two identifiers correspond to the source and destination objects.
duration | A duration value specifies a distance (in time) between two time points. In other words, a time period as defined by [ISO 8601], but represented as a single float that records time in seconds. Durations may have a fractional part. Durations are represented using the xsd:double datatype rather than xsd:dateTime for convenience and backward compatibility.
file | A file value is any sequence of octets (bytes) qualified by a content-type and an optional filename given to the file (for example, by the candidate when uploading it as part of an interaction). The content type of the file is one of the MIME types defined by [RFC 2045].
float | The set of float values is the same as the set of values defined by the float primitiveType.
identifier | The set of identifier values is the same as the set of values defined by the identifier class.
integer | The set of integer values is the same as the set of values defined by the integer primitiveType.
pair | A pair value represents a pair of identifiers corresponding to an association between two objects. The association is undirected so (A,B) and (B,A) are equivalent.
point | A point value represents an integer tuple corresponding to a graphic point. The two integers correspond to the horizontal (x-axis) and vertical (y-axis) positions respectively. The up/down and left/right senses of the axes are context dependent.
string | The set of string values is the same as the set of values defined by the string primitiveType.
uri | A URI value is a Uniform Resource Identifier as defined by [URI, 98].

## 8.6 CORSSettings Vocabulary Description

The permitted set of values for the Cross Origin Resource Sharing ARIA settings.The data model for the "CORSSettings" enumerated class is shown in Figure 8.6 and the accompanying vocabulary definition in Table 8.6.

Figure 8.6 - CORSSettings class definitions.

Table 8.6 Description of the "CORSSettings" enumerated vocabulary terms.
Term | Definition
--- | ---
anonymous | Denotes that CORS requests for this element will not have the credentials flag set.
use-credentials | Denotes that CORS requests for this element will have the credentials flag set i.e. the request will provide credentials.

## 8.7 Cardinality Vocabulary Description

Contains the permitted set of cardinality values. The cardinality is used in the context of the associated variable.The data model for the "Cardinality" enumerated class is shown in Figure 8.7 and the accompanying vocabulary definition in Table 8.7.

Figure 8.7 - Cardinality class definitions.

Table 8.7 Description of the "Cardinality" enumerated vocabulary terms.
Term | Definition
--- | ---
multiple | A multi-valued expression (or variable) is called a container. A container contains a list of values, this list may be empty in which case it is treated as NULL. All the values in a multiple or ordered container are drawn from the same value set, however, containers may contain multiple occurrences of the same value. In other words, [A,B,B,C] is an acceptable value for a container.
ordered | A container with cardinality multiple and value [A,B,C] is equivalent to a similar one with value [C,B,A] whereas these two values would be considered distinct for containers with cardinality ordered.
record | The record container type is a special container that contains a set of independent values each identified by its own identifier and having its own base-type. This specification does not make use of the record type directly however it is provided to enable customInteractions to manipulate more complex responses and customOperators to return more complex values, in addition to the use for detailed information about numeric responses described in the stringInteraction abstract class.
single | A cardinality of single i.e. a single value.

## 8.8 DIR Vocabulary Description

To define the direction of the text layout as part of the Bi-direction (bidi) element in HTML.The data model for the "DIR" enumerated class is shown in Figure 8.8 and the accompanying vocabulary definition in Table 8.8.

Figure 8.8 - DIR class definitions.

Table 8.8 Description of the "DIR" enumerated vocabulary terms.
Term | Definition
--- | ---
auto | Allow the rendering system to determine the text layout direction.
ltr | A left-to-right text diection layout.
rtl | A right-to-left text diection layout.

## 8.9 ExternalScored Vocabulary Description

Identifies the set of modes for the exernal scoring of the Item.The data model for the "ExternalScored" enumerated class is shown in Figure 8.9 and the accompanying vocabulary definition in Table 8.9.

Figure 8.9 - ExternalScored class definitions.

Table 8.9 Description of the "ExternalScored" enumerated vocabulary terms.
Term | Definition
--- | ---
externalMachine | An external scoring system will be used to score the Item.
human | A human must score the Item.

## 8.10 MathConstantNames Vocabulary Description

The set of mathematical constants available to the mathematical expressions.The data model for the "MathConstantNames" enumerated class is shown in Figure 8.10 and the accompanying vocabulary definition in Table 8.10.

Figure 8.10 - MathConstantNames class definitions.

Table 8.10 Description of the "MathConstantNames" enumerated vocabulary terms.
Term | Definition
--- | ---
e | The mathematical constant 'e'.
pi | The mathematical constant Pi.

## 8.11 MathOperatorName Vocabulary Description

The set of permitted names for the mathOperator expression.The data model for the "MathOperatorName" enumerated class is shown in Figure 8.11 and the accompanying vocabulary definition in Table 8.11.

Figure 8.11 - MathOperatorName class definitions.

Table 8.11 Description of the "MathOperatorName" enumerated vocabulary terms.
Term | Definition
--- | ---
abs | The absolute value of the argument. If the argument is 0 or -0, the result is 0. If the argument is INF or -INF, the result is INF. If the argument is NaN, then the result is NULL.
acos | The inverse trigonometric cosine of the argument. The returned value is in the range 0 to Pi. If the absolute value of the argument is greater than 1, the result is NULL.
acot | The inverse trigonometric cotangent of the argument. The returned value is in the range -Pi/2 to Pi/2.
acsc | The inverse trigonometric cosecant of the argument. The returned value is in the range -Pi/2 to Pi/2. If the absolute value of the argument is less than 1, the result is NULL.
asec | The inverse trigonometric secant of the argument. The returned value is in the range 0 to Pi. If the absolute value of the argument is less than 1, the result is NULL.
asin | The inverse trigonometric sine of the argument. The returned value is in the range -Pi/2 to Pi/2. If the absolute value of the argument is greater than 1, the result is NULL. If the argument is zero, the result is 0.
atan | The inverse trigonometric tangent of the argument. The returned value is in the range -Pi/2 to Pi/2. If the argument is zero, the result is 0.
atan2 | The 2-argument inverse trigonometric tangent obtained from the two arguments. The returned value is in the range -Pi to Pi.
ceil | The returned value is the smallest value greater than the argument, which is equal to an integer. If the argument is an integer, the result is that integer value. If the argument is NaN, then the result is NULL. If the argument is INF, then the result is INF. If the argument is -INF, then the result is -INF.
cos | The trigonometric cosine of the argument, which must be a numerical value in radians.
cosh | The hyperbolic cosine of the argument. If the argument is 0, the result is a 1.0. If the argument is INF or -INF, the result is INF.
cot | The trigonometric cotangent (1/tan) of the argument, which must be a numerical value in radians.
coth | The hyperbolic cotangent (1/tanh) of the argument.
csc | The trigonometric cosecant (1/sin) of the argument, which must be a numerical value in radians.
csch | The hyperbolic cosecant (1/sinh) of the argument.
exp | The exponential function (ex) evaluated at the numerical value of the argument. If the argument is NaN, the result is NULL. If the argument is INF, the result is INF. If the argument is -INF, the result is 0.
floor | The returned value is the greatest value smaller than the argument, which is equal to an integer. If the argument is an integer, the result is that integer value. If the argument is NaN, then the result is NULL. If the argument is INF, then the result is INF. If the argument is -INF, then the result is -INF.
ln | The natural logarithm of the argument. If the argument is less than zero, the result is NULL. If the argument is INF, the result is INF. If the argument is 0 or -0, the result is -INF.
log | The logarithm to base 10 (log10) of the argument. If the argument is less than zero, the result is NULL. If the argument is INF, the result is INF. If the argument is 0 or -0, the result is -INF.
sec | The trigonometric secant (1/cos) of the argument, which must be a numerical value in radians.
sech | The hyperbolic secant (1/cosh) of the argument.
signum | The signum function of the argument; it returns an integer value: zero if the argument is zero, 1 if the argument is greater than zero, -1 if the argument is less than zero. If the argument is 0 or -0, the result is the same as the argument. If the argument is NaN, then the result is NULL.
sin | The trigonometric sine of the argument, which must be a numerical value in radians.
sinh | The hyperbolic sine of the argument. If the argument is infinite, the result is an infinity with the same sign as the argument. If the argument is zero, the result is a 0.
tan | The trigonometric tangent of the argument, which must be a numerical value in radians.
tanh | The hyperbolic tangent of the argument. If the argument is zero, the result is a zero with the same sign as the argument. If the argument is INF, the result is 1.0. If the argument is -INF, the result is -1.0.
toDegrees | The returned value is the result of converting the argument, which is a numerical value in radians, to degrees. If the argument is NaN, then the result is NULL. If the argument is INF, then the result is INF. If the argument is -INF, then the result is -INF.
toRadians | The returned value is the result of converting the argument, which is a numerical value in degrees, to radians. If the argument is NaN, then the result is NULL. If the argument is INF, then the result is INF. If the argument is -INF, then the result is -INF.

## 8.12 NavigationMode Vocabulary Description

The navigation mode determines the general paths that the candidate may take throught the test.The data model for the "NavigationMode" enumerated class is shown in Figure 8.12 and the accompanying vocabulary definition in Table 8.12.

Figure 8.12 - NavigationMode class definitions.

Table 8.12 Description of the "NavigationMode" enumerated vocabulary terms.
Term | Definition
--- | ---
linear | A testPart in linear mode restricts the candidate to attempt each item in turn
nonlinear | A testPart in linear mode allows the candidate to an item in any order.

## 8.13 Orientation Vocabulary Description

The orientation attribute provides a hint to rendering systems that the associated structures have an inherent vertical or horizontal interpretation.The data model for the "Orientation" enumerated class is shown in Figure 8.13 and the accompanying vocabulary definition in Table 8.13.

Figure 8.13 - Orientation class definitions.

Table 8.13 Description of the "Orientation" enumerated vocabulary terms.
Term | Definition
--- | ---
horizontal | A horizontal orientation of the associated structures.
vertical | A vertical orientation of the associated structures.

## 8.14 ParamType Vocabulary Description

The type of parameters that may be associated with the HTML object.The data model for the "ParamType" enumerated class is shown in Figure 8.14 and the accompanying vocabulary definition in Table 8.14.

Figure 8.14 - ParamType class definitions.

Table 8.14 Description of the "ParamType" enumerated vocabulary terms.
Term | Definition
--- | ---
DATA | The parameter is a data value.
REF | The parameter is a reference URI to a file.

## 8.15 RoundingMode Vocabulary Description

Definition of the rounding modes to be used on numeric calculations.The data model for the "RoundingMode" enumerated class is shown in Figure 8.15 and the accompanying vocabulary definition in Table 8.15.

Figure 8.15 - RoundingMode class definitions.

Table 8.15 Description of the "RoundingMode" enumerated vocabulary terms.
Term | Definition
--- | ---
decimalPlaces | Use a number of decimal places.
significantFigures | The number of significant decimal places.

## 8.16 Shape Vocabulary Description

The permitted set of values for the shape of the associated region. A value of a shape is always accompanied by coordinates (see coords and an associated image which provides a context for interpreting them).The data model for the "Shape" enumerated class is shown in Figure 8.16 and the accompanying vocabulary definition in Table 8.16.

Figure 8.16 - Shape class definitions.

Table 8.16 Description of the "Shape" enumerated vocabulary terms.
Term | Definition
--- | ---
circle | The shape is a circle. The associated integer coords are: center-x, center-y, radius. When the radius value is a percentage value, user agents should calculate the final radius value based on the associated object's width and height. The radius should be the smaller value of the two.
default | The default shape refers to the entire area of the associated image.
ellipse | The shape is an ellipse. This value is deprecated but is included for backwards compatibility with QTIv1.x. Systems should use circle or poly shapes instead.
poly | The shape is a polygon i.e. a many sided object. The associated integer coords are: x1, y1, x2, y2, ..., xN, yN (the first x and y coordinate pair and the last should be the same to close the polygon. When these coordinate values are not the same, user agents should infer an additional coordinate pair to close the polygon).
rect | The shape is a rectangle. The associated integer coords are: left-x, top-y, right-x, bottom-y.

## 8.17 ShowHide Vocabulary Description

The set of values for whether or not the associated object should be displayed or hidden.The data model for the "ShowHide" enumerated class is shown in Figure 8.17 and the accompanying vocabulary definition in Table 8.17.

Figure 8.17 - ShowHide class definitions.

Table 8.17 Description of the "ShowHide" enumerated vocabulary terms.
Term | Definition
--- | ---
hide | Denotes that the object is originally displayed and hidden depending on the associated trigger condition.
show | Denotes that the object is originally hidden and displayed depending on the associated trigger condition.

## 8.18 StatsOperatorName Vocabulary Description

The set of permitted names for the statsOperator expression.The data model for the "StatsOperatorName" enumerated class is shown in Figure 8.18 and the accompanying vocabulary definition in Table 8.18.

Figure 8.18 - StatsOperatorName class definitions.

Table 8.18 Description of the "StatsOperatorName" enumerated vocabulary terms.
Term | Definition
--- | ---
mean | The arithmetic mean of the argument, which must be a container of numerical base type, which contains a sample of observations.
popSD | The standard deviation of the argument, which must be a container of numerical base type with containerSize greater than 1.
popVariance | The variance of the argument, which must be a container of numerical base type with containerSize greater than 1
sampleSD | The standard deviation of the argument, which must be a container of numerical base type, with containerSize greater than 1, containing a sample of observations.
sampleVariance | The variance of the argument, which must be a container of numerical base type, with containerSize greater than 1, containing a sample of observations.

## 8.19 SubmissionMode Vocabulary Description

The submission mode determines when the candidate's responses are submitted for response processing.The data model for the "SubmissionMode" enumerated class is shown in Figure 8.19 and the accompanying vocabulary definition in Table 8.19.

Figure 8.19 - SubmissionMode class definitions.

Table 8.19 Description of the "SubmissionMode" enumerated vocabulary terms.
Term | Definition
--- | ---
individual | A testPart in individual mode requires the candidate to submit their responses on an item-by-item basis.
simultaneous | In simultaneous mode the candidate's responses are all submitted together at the end of the testPart.

## 8.20 TableCellScope Vocabulary Description

The set of permitted values for the scope of a Table Cell.The data model for the "TableCellScope" enumerated class is shown in Figure 8.20 and the accompanying vocabulary definition in Table 8.20.

Figure 8.20 - TableCellScope class definitions.

Table 8.20 Description of the "TableCellScope" enumerated vocabulary terms.
Term | Definition
--- | ---
col | The scope is the column.
colgroup | The scope is the column group.
row | The scope is the row.
rowgroup | The scope is the row group.

## 8.21 TestFeedbackAccess Vocabulary Description

The permitted set of values for defining the time at which the test feedback to the candidate.The data model for the "TestFeedbackAccess" enumerated class is shown in Figure 8.21 and the accompanying vocabulary definition in Table 8.21.

Figure 8.21 - TestFeedbackAccess class definitions.

Table 8.21 Description of the "TestFeedbackAccess" enumerated vocabulary terms.
Term | Definition
--- | ---
atEnd | Present the test feedback at the end of the test.
during | Present the test feedback during the test.

## 8.22 TextFormat Vocabulary Description

The set of permitted values to control the format of the text entered by the candidate.The data model for the "TextFormat" enumerated class is shown in Figure 8.22 and the accompanying vocabulary definition in Table 8.22.

Figure 8.22 - TextFormat class definitions.

Table 8.22 Description of the "TextFormat" enumerated vocabulary terms.
Term | Definition
--- | ---
plain | Indicates that the text to be entered by the candidate is plain text. This format is suitable for short unstructured responses. Delivery engines should preserve white-space characters in candidate input except where a response consists only of white-space characters, in which case it should be treated as an empty string (NULL).
preformatted | Indicates that the text to be entered by the candidate is pre-formatted and should be rendered in a way consistent with the definition of pre in [XHTML, 10]. Delivery engines must preserve white-space characters except where a response consists only of white-space characters, in which case it should be treated as an empty string (NULL).
xhtml | Indicates that the text to be entered by the candidate is structured text. The value of the response variable is text marked up in XHTML. The delivery engine should present an interface suitable for capturing structured text, this might be plain typed text interpreted with a set of simple text markup conventions such as those used in wiki page editors or a complete WYSIWYG editor.

## 8.23 ToleranceMode Vocabulary Description

The tolerance mode determines whether the comparison is done exactly, using an absolute range or a relative range.The data model for the "ToleranceMode" enumerated class is shown in Figure 8.23 and the accompanying vocabulary definition in Table 8.23.

Figure 8.23 - ToleranceMode class definitions.

Table 8.23 Description of the "ToleranceMode" enumerated vocabulary terms.
Term | Definition
--- | ---
absolute | The comparison tolerance is absolute i.e. as defined by the tolerance range.
exact | The comparison must be exact i.e. the same.
relative | The comparison tolerance is a relative range.

## 8.24 Valign Vocabulary Description

Provides the permitted set of values for the 'valign' attribute in the HTML markup i.e. how the associated object is vertically aligned on the page.The data model for the "Valign" enumerated class is shown in Figure 8.24 and the accompanying vocabulary definition in Table 8.24.

Figure 8.24 - Valign class definitions.

Table 8.24 Description of the "Valign" enumerated vocabulary terms.
Term | Definition
--- | ---
baseline | Set the vertical alignment to the baseline of the container element.
bottom | Set the vertical alignment to the bottom of the container.
middle | Set the vertical alignment to the middle of the container.
top | Set the vertical alignment to the top of the container.

toc | top

# 9. Miscellaneous Descriptions

## 9.1. List Class Descriptions

The set of list classes used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.2.

### 9.1.1 IdentifierList Class Description

The data model for the "IdentifierList" class is shown in Figure 9.1.1 and the accompanying definition in Table 9.1.1.

Figure 9.1.1 - IdentifierList class definitions.

Table 9.1.1 Description of the "IdentifierList" class.
Descriptor | Definition
--- | ---
Class Name | IdentifierList
Class Type | Container [ List ]
Parents | The set of parent classes are: AssessmentItemRef AssociableHotspot Gap GapImg GapText Number OutcomeMinMax SimpleAssociableChoice TDH TestVariables
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: NCName (PrimitiveType)
Characteristics | There are no characteristics.
Children | There are no children.
Description | The IdentifierList is a list of Identifiers. Each identifier is of primitiveType NCName.

### 9.1.2 IntegerList Class Description

The data model for the "IntegerList" class is shown in Figure 9.1.2 and the accompanying definition in Table 9.1.2.

Figure 9.1.2 - IntegerList class definitions.

Table 9.1.2 Description of the "IntegerList" class.
Descriptor | Definition
--- | ---
Class Name | IntegerList
Class Type | Container [ List ]
Parents | The set of parent classes are: PositionObjectInteraction
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Int (PrimitiveType)
Characteristics | There are no characteristics.
Children | There are no children.
Description | The IntegerList is a list of integers. Each integer value is of primitiveType Integer.

### 9.1.3 StringList Class Description

The data model for the "StringList" class is shown in Figure 9.1.3 and the accompanying definition in Table 9.1.3.

Figure 9.1.3 - StringList class definitions.

Table 9.1.3 Description of the "StringList" class.
Descriptor | Definition
--- | ---
Class Name | StringList
Class Type | Container [ List ]
Parents | The set of parent classes are: BasePromptInteraction BaseSequence BaseSequenceFull BaseSequenceRIdent BaseSequenceXBase BaseSequenceXBaseEmpty ItemBody PrintedVariable
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: String (PrimitiveType)
Characteristics | There are no characteristics.
Children | There are no children.
Description | The StringList is a list of Strings i.e. an unordered list of strings separated by spaces (a string must NOT contain a space). Each string is of primitiveType String.

### 9.1.4 ToleranceList Class Description

The data model for the "ToleranceList" class is shown in Figure 9.1.4 and the accompanying definition in Table 9.1.4.

Figure 9.1.4 - ToleranceList class definitions.

Table 9.1.4 Description of the "ToleranceList" class.
Descriptor | Definition
--- | ---
Class Name | ToleranceList
Class Type | Container [ List ]
Parents | The set of parent classes are: Equal
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: String (PrimitiveType) Double (PrimitiveType)
Characteristics | There are no characteristics.
Children | There are no children.
Description | The ToleranceList is a space separated list of either strings (must not contain a space) or numbers. Each value must either be of primitiveType String or primitiveType double.

## 9.2. Enumerated List Class Descriptions

All of the enumerated list used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.4.

### 9.2.1 View Vocabulary Description

The intended audience for the associated object can be set with the view attribute. If no view is specified the outcome is treated as relevant to all views. Objects may have content that is of no interest to the candidate at all, but are merely used to hold intermediate values or other information useful during the item or test session. Where more than one class of user should be able to view the content the view attribute should contain a comma delimited list. The data model for the "View" enumerated list class is shown in Figure 9.2.1 and the accompanying vocabulary definition in Table 9.2.1.

Figure 9.2.1 - View class definitions.

Table 9.2.1 Description of the "View" enumerated list vocabulary terms.
Term | Definition
--- | ---
author | Viewable by an 'author'.
candidate | Viewable by a 'candidate'.
proctor | Viewable by a 'proctor' (sometimes referred to as an 'invigilator').
scorer | Viewable by a 'scorer'.
testConstructor | Viewable by a 'testConstructor'.
tutor | Viewable by a 'tutor'.

## 9.3. Union Class Descriptions

The set of union classes used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.2.

### 9.3.1 FloatOrVariableRef Class Description

The data model for the "FloatOrVariableRef" class is shown in Figure 9.3.1 and the accompanying definition in Table 9.3.1.

Figure 9.3.1 - FloatOrVariableRef class definitions.

Table 9.3.1 Description of the "FloatOrVariableRef" class.
Descriptor | Definition
--- | ---
Class Name | FloatOrVariableRef
Class Type | Container [ Union ]
Parents | The set of parent classes are: RandomFloat
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Double (PrimitiveType) VariableString
Characteristics | There are no characteristics.
Children | The set of inherited children attributes are: pattern
Description | The type used for attributes of float type that may be replaced with the value of a template or outcome variable of base type float and single cardinality.

### 9.3.2 IntOrIdentifier Class Description

The data model for the "IntOrIdentifier" class is shown in Figure 9.3.2 and the accompanying definition in Table 9.3.2.

Figure 9.3.2 - IntOrIdentifier class definitions.

Table 9.3.2 Description of the "IntOrIdentifier" class.
Descriptor | Definition
--- | ---
Class Name | IntOrIdentifier
Class Type | Container [ Union ]
Parents | The set of parent classes are: Index Repeat
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: NCName (PrimitiveType) Int (PrimitiveType)
Characteristics | There are no characteristics.
Children | There are no children.
Description | An intOrIdentifier value is the union of the integer primitiveType and the identifier derivedType

### 9.3.3 IntegerOrVariableRef Class Description

The data model for the "IntegerOrVariableRef" class is shown in Figure 9.3.3 and the accompanying definition in Table 9.3.3.

Figure 9.3.3 - IntegerOrVariableRef class definitions.

Table 9.3.3 Description of the "IntegerOrVariableRef" class.
Descriptor | Definition
--- | ---
Class Name | IntegerOrVariableRef
Class Type | Container [ Union ]
Parents | The set of parent classes are: AnyN EqualRounded PrintedVariable RandomInteger RoundTo
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: Integer (PrimitiveType) VariableString
Characteristics | There are no characteristics.
Children | The set of inherited children attributes are: pattern
Description | The type used for attributes of integer type that may be replaced with the value of a template or outcome variable of base type integer and single cardinality.

### 9.3.4 StringOrVariableRef Class Description

The data model for the "StringOrVariableRef" class is shown in Figure 9.3.4 and the accompanying definition in Table 9.3.4.

Figure 9.3.4 - StringOrVariableRef class definitions.

Table 9.3.4 Description of the "StringOrVariableRef" class.
Descriptor | Definition
--- | ---
Class Name | StringOrVariableRef
Class Type | Container [ Union ]
Parents | The set of parent classes are: PatternMatch
Derived Classes | There are no derived classes.
Super Classes | The set of classes from which this class is derived: String (PrimitiveType) EncVariableString
Characteristics | There are no characteristics.
Children | The set of inherited children attributes are: pattern
Description | The type used for characteristics of string type that may be replaced with the value of a template or outcome variable of base type string and single cardinality. When template references are bound to strings (using the mandatory binding described above) there is a potential ambiguity. Therefore, if a string appears to be a reference to a template or outcome variable but there is no variable with the given name it should be treated simply as string value.

## 9.4. Imported Class Descriptions

The set of imported classes (the classes that are referenced in this Information Model but defined in another separate Information Model) used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A1.6.

### 9.4.1 APIPAccessibility Class Description

The details for the "APIPAccessibility" class are shown in Table 9.4.1.

Table 9.4.1 Description of the "APIPAccessibility" imported class.
Descriptor | Definition
--- | ---
Import Class Name | APIPAccessibility
Parent Classes | The set of parent classes, and the associated children, that use this imported class are: AssessmentItem - apipAccessibility AssessmentStimulus - apipAccessibility FeedbackBlock - apipAccessibility ModalFeedback - apipAccessibility RubricBlock - apipAccessibility RubricBlockTemplateBlock - apipAccessibility TemplateBlock - apipAccessibility TemplateBlockFeedbackBlock - apipAccessibility TestFeedback - apipAccessibility
Description | This is the set of QTI accessibility extensions that were developed as part of the APIP [APIP, 14] specification. These features allow the description and association of the alternative accessibility content to the QTI components.

### 9.4.2 HTML5 Class Description

The details for the "HTML5" class are shown in Table 9.4.2.

Table 9.4.2 Description of the "HTML5" imported class.
Descriptor | Definition
--- | ---
Import Class Name | HTML5
Parent Classes | The set of parent classes, and the associated children, that use this imported class are: BlockContentModel - article, aside, audio, figure, footer, header, nav, section, video FlowContentModel - bdi, figure, audio, video, article, aside, footer, header, label, nav, section, ruby InlineContentModel - bdi, label, ruby MediaInteraction - audio, video
Description | This identifies the subset of HTML5 that has been defined for use with QTIv2.2. These features were added as part of the QTIv2.2 revision to QTIv2.1. Further details on this QTI HTML5 functionality is supplied in [QTI, 16c] and [HTML5, 14]. The HTML5 tags use within QTI are: 'article', 'aside', 'audio', 'bdi', 'figure', 'footer', 'header', 'label', 'nav', 'ruby' (plus collection of child elements), 'section', 'source', 'track' and 'video'.

### 9.4.3 Include Class Description

The details for the "Include" class are shown in Table 9.4.3.

Table 9.4.3 Description of the "Include" imported class.
Descriptor | Definition
--- | ---
Import Class Name | Include
Parent Classes | The set of parent classes, and the associated children, that use this imported class are: BlockGroup - include BlockStaticGroup - include FeedandTempBlockStatic - include FeedbackFlowStaticGroup - include FeedbackInlineGroup - include FlowGroup - include FlowStaticGroup - include InlineChoiceGroup - include InlineGroup - include InlineStaticGroup - include ObjectFlowGroup - include OutcomeRule - include PromptStaticGroup - include ResponseRuleGroup - include RubricBlockContentModel - include RubricTemplateBlockContentModel - include RubricTemplateInlineStaticGroup - include SectionPart - include
Description | This denotes the XInclude specification. This is used to enable XML fragments to be included within the content layout.

### 9.4.4 MathML2 Class Description

The details for the "MathML2" class are shown in Table 9.4.4.

Table 9.4.4 Description of the "MathML2" imported class.
Descriptor | Definition
--- | ---
Import Class Name | MathML2
Parent Classes | The set of parent classes, and the associated children, that use this imported class are: BlockGroup - math BlockStaticGroup - math FeedandTempBlockStatic - math FeedbackFlowStaticGroup - math FeedbackInlineGroup - math FlowGroup - math FlowStaticGroup - math InlineChoiceGroup - math InlineGroup - math InlineStaticGroup - math ObjectFlowGroup - math PromptStaticGroup - math RubricBlockContentModel - math RubricTemplateBlockContentModel - math RubricTemplateInlineStaticGroup - math
Description | This denotes the MathML 2 specification [MathML2, 03]. This is used to enable mathematical expressions to be defined using a standardised markup language. This refers to MathML version 2.0.

### 9.4.5 MathML3 Class Description

The details for the "MathML3" class are shown in Table 9.4.5.

Table 9.4.5 Description of the "MathML3" imported class.
Descriptor | Definition
--- | ---
Import Class Name | MathML3
Parent Classes | The set of parent classes, and the associated children, that use this imported class are: BlockGroup - math BlockStaticGroup - math FeedandTempBlockStatic - math FeedbackFlowStaticGroup - math FeedbackInlineGroup - math FlowGroup - math FlowStaticGroup - math InlineChoiceGroup - math InlineGroup - math InlineStaticGroup - math ObjectFlowGroup - math PromptStaticGroup - math RubricBlockContentModel - math RubricTemplateBlockContentModel - math RubricTemplateInlineStaticGroup - math
Description | This denotes the MathML 3 specification [MathML3, 14]. This is used to enable mathematical expressions to be defined using a standardised markup language. This refers to MathML version 3.0.

### 9.4.6 SSMLv1p1 Class Description

The details for the "SSMLv1p1" class are shown in Table 9.4.6.

Table 9.4.6 Description of the "SSMLv1p1" imported class.
Descriptor | Definition
--- | ---
Import Class Name | SSMLv1p1
Parent Classes | The set of parent classes, and the associated children, that use this imported class are: SSMLGroup - p, s, say-as, phoneme, sub, voice, emphasis, break, prosody, mark, audio, speak
Description | This denotes the Speech Synthesis Markup Language (SSML) standard [SSML, 10]. This allows all of the mark-up feaures to be for annotating the text content appropriately. This refers to SSMLv1.1. SSML is part of a larger set of markup specifications for voice browsers developed through the open processes of the W3C. It is designed to provide a rich, XML-based markup language for assisting the generation of synthetic speech in Web and other applications. The essential role of the markup language is to give authors of synthesizable content a standard way to control aspects of speech output such as pronunciation, volume, pitch, rate, etc. across different synthesis-capable platforms.

toc | top

# 10. Extending and Profiling the Data Model

## 10.1 Extending the Data Model

This specification permits extensions at a very limited number of places within the data model. Extensions are permited at:

- Section Selection - selecting the subset of section/items for potential presentation;
- Section Ordering - determining the order of presentation of the selected section/items;
- Custom Interaction - the mechanism to extend the range of supported interactions;
- Custom Operator - the mechanism to extend the range of operator expressions
- Controlled New Characteristics - the mechanism to allow new characteristics on the HTML and interaction tags.

Extensions at any other point in the data model may cause unpredictable behavior.

### 10.1.1 Section Selection

Extension of the 'Selection' class is used to enable the implementation of Item/Section selection algorithms and techniques. The form of the extension is dependent on the binding technology. Extension is permitted for the child contents and the characteristics of the class.

### 10.1.2 Section Ordering

Extension of the 'Ordering' class is used to enable the implementation of Item/Section ordering algorithms and techniques for the delivery of the selected Sections/Items. The form of the extension is dependent on the binding technology. Extension is permitted for the child contents and the characteristics of the class.

### 10.1.3 Custom Interactions

The 'CustomInteraction' class is used to provide a mechanism for the inclusion of Item interactions that otherwise cannot be supported using the available set of interactions. The form of the extension is dependent on the binding technology. Extension is permitted for the child contents and the characteristics of the class.

The 'CustomInteraction' extension mechanism should be used along with the Portable Custom Interaction specification [PCI, 14]. The PCI specification defines how the custom interactions should be defined so that there are standard ways in which data can be passed to, and received from, the custom interaction. This turns an interaction into service with a defined API.

### 10.1.4 Custom Operators

The 'CustomOperator' class provides a mechanism for defining new QTI expression functions to support response and outcomes processing. The form of the extension is dependent on the binding technology. Extension is permitted for the child contents and the characteristics of the class.

It has been suggested that customOperator might be used to help link processing rules defined by this specification to instances of web-service based processing engines. For example, a web-service which offered automated marking of free text responses. Implementors experimenting with this approach are encouraged to share information about their solutions to help determine the best way to achieve this type of processing.

### 10.1.5 Controlled Characteristics on the HTML and Interaction Elements

New approaches in the processing of HTML, introduced in HTML5 [HTML5, 14] allow new attributes to be added to all tags provided they start with the pattern 'data-'. This capability is replicated in QTI but extended to also cover the QTI interactions. The controlled extension of new characteristics is permitted on the following classes:

- BasePromptInteraction;
- BaseSequence;
- BaseSequenceFull;
- BaseSequenceRIdent;
- BaseSequenceXBase;
- BaseSequenceXBaseEmpty.

## 10.2 Profiling the Data Model

This specification may be profiled: for example, the IMS Accessible Portable Item Protocol (APIP) v1.0 specification includes a profile of QTI Metadata (as well as several profiles of other IMS specifications). A profile must be a formal subset of the base specification. This ensures that, with the exception of namespace/schema location changes, any instance which is compliant to the profile MUST also be compliant to the base specification. This means that a profile must only increase the constraints on the properties of the data model. For example, an element with a multiplicity of [0..1] can have this changed to [1..1] but NOT [0..*]. Proprietary extensions are ONLY permitted as defined by the base specification.

It is strongly recommended that a profile of this specification is undertaken either by, or with the close support, of IMS Global. However, no matter who is responsible for creating the profile artefacts (documents, XSDs, etc.), it is strongly recommended that the IMS specification tools are used. This will ensure that the artefacts are consistent with the base specifications and that useful support documentation is automatically produced e.g. creation of a document that summarises the differences between the base specification and the profile. Organizations wishing to produce a profile of this specification should contact Lisa Mattson (IMS Global Chief Operations Officer) at: lmattson@imsglobal.org.

toc | top

# Appendix A Modelling Concepts and Terms

## A1 Data Model Descriptions

### A1.1 Data Model Diagrams

Table A1.1 provides the key to the descriptions of data model diagrams.

Table A1.1 The key to the descriptions of data model diagrams.
Feature | Definition and Usage
--- | ---
Data Model Package | Each data model description is enclosed in a UML Package that has the stereotype of « dataModel » under which is the name of the data model diagram being described. Only one logical data model can be described.
DerivedType Class | This is a class that is identified by the stereotype « DerivedType » under which is the name of the data-type. A derived class is one that is derived either from another derived class or a PrimitiveType class.
Enumeration Class | This is a class that is identified by the stereotype « Enumeration » under which is the name of the enumeration data-type. The enumeration class consists of the list of tokens that are the permitted values of the assigned attribute.
Enumerated List Class | This is a class that is identified by the stereotype « EnumeratedList » under which is the name of the enumerated list data-type. The enumeration list class consists of the list of tokens that are the permitted values of the assigned attribute. A list of tokens is permitted using comma separation.
PrimitiveType Class | This is a class that is identified by the stereotype « PrimitiveType » under which is the name of the primitive data-type. A PrimitiveType is one of the many base data-types on which a data model can be built (see Appendix A1.3 for the set of primitive types that are available).
Selection Class | This is a class that is identified by the stereotype « Selection » under which is the name of the data-type. The selection means that only one of the listed attributes make occur in an instance. If this is an abstract class then multiple iterations of the instance may occur and the multiplicity of the attribute defines the constraints on the number of times the attribute can occur in the full instance. If the stereotype and associated name of the class are in italics this denotes the class is abstract.
Sequence Class | This is a class that is identified by the stereotype « Sequence » under which is the name of the data-type. The sequence means that the listed attributes must occur only in the order of the attributes listed on the class. The associated multiplicity defines the number of times the attribute may occur consecutively in the instance. If the stereotype and associated name of the class are in italics this denotes the class is abstract.
Unordered Class | This is a class that is identified by the stereotype « Unordered » under which is the name of the data-type. The unordering means that the listed attributes may occur in any order but the associated multiplicity for the attribute must be followed (when binding to XML this requires the use of Schematron rules to enforce the multiplicity). If the stereotype and associated name of the class are in italics this denotes the class is abstract.
List Class | This is a class that is identified by the stereotype « List » under which is the name of the data-type. A list class is one in which the associated instance will consist of a list of objects that conform to the permitted data-types of the list (the superclasses for the list class). The terms in the list are separated by a space.
Union Class | This is a class that is identified by the stereotype « Union » under which is the name of the data-type. A union class is one in which the associated instance will consist of a objects that conform to the any of the permitted data-types of the union (the superclasses for the union class).
Characteristic Description | Many classes contain a set of characteristics (the set of characteristics are listed under the stereotype « Characteristics »). Each characteristic description consists of the scope, name, data-type and multiplicity (see Appendix A1.3 for a more complete description). Note that when bound to XSD/XML, a characteristic is mapped to an XML attribute.
Attribute Description | Many classes contain a set of attributes (the set of attributes are listed under the stereotype « Attributes »). Each attribute description consists of the scope, name, data-type and multiplicity (see Appendix A1.3 for a more complete description). Note when bound to XSD/XML, an attribute is mapped to an XML element.
Aggregation Arrow | This is an arrow with a white diamond head to indicate that the child class is an aggregate structure to the parent class i.e. the child class may exist without the context of the parent class. This association allows complex structures to be constructed with common subcomponents.
Composition Arrow | This is an arrow with a filled diamond head to indicate that the child class is a composite structure of the parent class i.e. the child class only exists within the context of the parent class. This association allows complex structures to be constructed with common subcomponents.
Generalization Arrow | This is an arrow with a white arrow head to indicate the class/superclass relationship. The arrow points in the direction of generality i.e. from the class to the super class.

toc | top

### A1.2 Class Descriptions

Table A1.2 provides the key to the descriptions of the data class tables.

Table A1.2 The key to the descriptions of the data class tables.
Category | Definition
--- | ---
Class Name | The name given to the class being described.
Class Type | The nature of the class. This is described as a "Container [...]" or "Abstract Container [...]". The value of "..." being (see Appendix A1.1 for the meaning of these values): "DerivedType" "List" "Selection" "Sequence" "Union" "Unordered" If the container is also marked as "Mixed" then the children are permitted to include text as well as attributes.
Parents | This is the list of classes that contain the class being described as either the type of a child characteristic or attribute. In the case of a Root Class the entry is also labelled as "Root Class".
Derived Classes | The set of classes that are derived from this class (there may be none). The entries are linked to the corresponding class descriptions.
Super Classes | The set of super classes from which the class being described is derived (there may be none). The entries are linked to the corresponding class descriptions.
Characteristics | Lists the set of characteristics for this class. The list of characteristics includes those that are inherited. Each characteristic is linked to the corresponding characteristic description table.
Children | Lists the set of attributes for this class (the only other permitted associations are generalizations). The list of children includes those attributes that are inherited. Each child entry is linked to the corresponding attribute description table. The nature of the relationship between the children is defined by the stereotype of the parent class i.e. the class type. If the child is in italics this denotes a reference to an abstract class and that an instance would NOT contain a child of that name but would be replaced by a complex set of children as defined by the associated abstract class.
Description | Contains descriptions relating to the class and its properties and relationships.

toc | top

### A1.3 Attribute and Characteristic Descriptions

Table A1.3 provides the key to the descriptions of the data attributes/characteristics for the data classes.

Table A1.3 The key to the descriptions of the data attribute/characteristic tables.
Category | Definition
--- | ---
Attribute Name or Characteristic Name | The name given to the attribute or characteristic being described. If the name is in italics this denotes an abstract attribute or characteristic.
Data Type | This is the data-type of the attribute or characteristic (if this is in italics it denotes an abstract class). The data-type can take many forms: Class Name - the name of the Class (this is linked to the class definition elsewhere in this document); Primitive Data-types from:- AnyTypeLax - the namespace data-type i.e. defining data from any context (this is used for allowing any form of extension); AnyURI - the AnyURI data-type (absolute or relatve URI); Base - the base data-type for defining a base URI/URL link reference; Boolean - the boolean data-type (with permitted values of "true" and "false"); Date - the date data-type (using the [ISO 8601] format); DateTime - the date/time data-type (using the [ISO 8601] format); Decimal - the decimal data-type (a variable precision number that is either positive or negative); Double - the double data-type (double precision floating point number - 64bit); Duration - the duration data-type (using the [ISO 8601] format) Empty - the associated instance must be empty; Float - the float data-type (single precision floating point number - 32bit); ID - the unique identifier data-type; IDREF - the reference to a previously defined unique identifier data-type (ID); IDREFS - a list, whitespace separated, of references to a previously defined unique identifier data-type (ID); Int - the int data-type (this is derived from the "decimal" data-type); Integer - the integer data-type (using the); Language - the language data-type as defined in [RFC 3066]; Namespace - the namespace data-type i.e. defining data from a context other than that as the default for the data model (this is used for importing other data models); NamespaceLax - the namespace data-type i.e. defining data from a context other than that as the default for the data model (this is used for importing other data models but being lax on the validation); NonNegativeInteger - the non-negative integer data-type (this is derived from the "integer" data-type) i.e. an integer that is zero or higher; NCName - the NCName data-type (derived from the Name data-type); NormalizedString - the normalized string data type (strings with line feeds, carriage returns and tab characters removed); PositiveInteger - the positive integer data-type (this is derived from the "nonNegativeinteger" data-type) i.e. an integer that is one or higher; String - the normalized string data type; Time - the time data-type (using the [ISO 8601] format).
Value Space | The range of valid values for this attribute/characteristic (including any default value). If the value space is unspecified, it is not known or is not important. This value space must be defined in terms of the associated data-type.
Scope | This is the scope of the attribute/characteristic with permitted values of: Local - denoted by "-" and meaning the attribute/characteristic has significance and access within the context of the parent class only; Global - denoted by "+" and meaning that the attribute/characteristic has global scoping (so must have a unique name) and can be accessed from anywhere.
Multiplicity | A property of an attribute/characteristic indicating the number of times it may be used or appear in a given class instance. The values of this property are expressed as a range or shorthand for a range using the notation: "0..1" [optional; restricted] "0..*" [optional; unrestricted] "1" [mandatory; restricted] "1..*" [mandatory; unrestricted]
Description | Contains descriptions relating to the attribute/characteristic and its values space.

toc | top

### A1.4 Enumerated Vocabulary Descriptions

Table A1.4 provides the key to the descriptions of the enumerated vocabulary classes. These are vocabularies that will be contained within the binding form itself. They are contained within a class that has a stereotype of either « Enumeration » or « EnumeratedList ».

Table A1.4 The key to the descriptions of the enumerated vocabulary tables.
Category | Definition
--- | ---
Term | The vocabulary token itself i.e. the vocabulary entry.
Definition | The meaning of the term and how it should be used.

toc | top

### A1.5 External Vocabulary Descriptions

Table A1.5 provides the key to the descriptions of the external vocabulary classes. These are vocabularies that will be contained in some independent format e.g. using the IMS VDEX [VDEX, 04].

Table A1.5 The key to the descriptions of the external vocabulary tables.
Category | Definition
--- | ---
Term | The vocabulary token itself i.e. the vocabulary entry.
Definition | The meaning of the term and how it should be used. This consists of the "Caption" and "Description" of the vocabulary term. The caption is used to provide a human readable label for the term.

toc | top

### A1.6 Import Class Descriptions

Table A1.6 provides the key to the descriptions of the import classes.

Table A1.6 The key to the descriptions of the imported class tables.
Category | Definition
--- | ---
Import Class Name | The name of the class.
Parent Classes | The list of parent classes, and the associated children, that use this imported class. Each class and attribute name has a link to its corresponding tabular description in the information model.
Description | The description of how the class is used within the data model.

toc | top

# About this Document

Title: | IMS Question and Test Interoperability (QTI): Assessment, Section and Item Information Model v2.2.2
Editors: | Colin Smythe, IMS Global (UK) Mark McKell, IMS Global (USA) Wilbert Kraan, JISC (UK)
Co-chairs: | Wilbert Kraan, JISC (UK) Tom Hoffmann, ETS (USA)
Version: | Final 1.0
Version Date: | 27th November, 2017
Status: | IMS Final Release
Summary: | This is the definition of the data model to be used to support the exchange of Assessments (Tests) and Items (Questions). This data model defines the object model for the exchange of a Test, Section, Item, Stimulus, Outcome and Response Processing Template. This version has several new features including: i) the exchange of common content stimulus; ii) several HTML5 elements; iii) ARIA, BIDI and Ruby. The data model is described using the IMS profile of UML to support the IMS model driven specification engineering method.
Revision Information: | This document supercedes IMS QTI Assessment, Section and Item (ASI) Information Model v2.1. Version 2.2.1: (a) The ARIA attributes using the 'ElementIDList' class have been re-assigned the 'IDREFS' primitiveType and the 'ElementIDList' class has been deleted; (b) The QTI-HTML5v2.2 XSD reference has been changed to QTI-HTML5v2.2.1 XSD; (c) The multiplicity of the 'col' attribute in the 'ColGroup' class has been changed to [0..*]; (d) The schematron rules for the extensions of the 'language' and 'base' characterisics have been corrected to refer to 'xml:lang' and 'xml:base' respectively. Version 2.2.2: Corrections to the Schematron rules to enforce numeric comparisons using the 'number()' function.
Purpose: | This document is made available for adoption by the public community at large.
Document Location: | IMS Public Website (Standards Download): www.imsglobal.org/question

toc | top

## List of Contributors

The following individuals contributed to the development of this document:

Michael Aumock | Pacific Metrics (USA)
Jerome Bogaerts | O.A.T. (Luxemburgh)
Marty Christensen | ACT (USA)
Jason Craft | Pearson (USA)
Gary Driscoll | ETS (USA)
Gaye Fedorachak | ACT (USA)
Greg Gaspard | Pearson (USA)
Mark Hakkinen | ETS (USA)
Regina Hoag | ETS (USA)
Tom Hoffmann | ETS (USA)
Rob Howard | NWEA (USA)
Wilbert Kraan | JISC (UK)
Justin Marks | NWEA (USA)
Phil McClelland | Desire2Learn (Canada)
Mark McKell | IMS Global (USA)
Sue Milne | JISC/CETIS (UK)

Makoto Murata | JEPA (Japan)
Becka Nethers | NWEA (USA)
Padraig O'hiceadha | HMH (UK)
Jason Pelletier | Measured Progress (USA)
Craig Perry | ACT (USA)
Kevin Ptak | Data Recognition Corp (USA)
Michelle Richard | Pearson (USA)
Madeleine Rothberg | WGBH NCAM (USA)
Sharon Secretan | Pearson (USA)
Farhat Siddiqui | ETS (USA)
Colin Smythe | IMS Global (UK)
Joseph St. George | Measured Progress (USA)
Jeremiah Tanner | DRC (USA)
Wyatt VanderStucken | ETS (USA)
Yvonne Winklemann | BPS (Germany)

toc | top

## Revision History

Version No. | Release Date | Comments
--- | --- | ---
Spec 2.2 / Final 1.0 | 1st September, 2015 | The initial final release of the QTIv2.2 specification.
Spec 2.2.1 / Final 1.0 | 1st August, 2016 | The changes made in this release are: (a) The ARIA attributes using the 'ElementIDList' class have been re-assigned the 'IDREFS' primitiveType and the 'ElementIDList' class has been deleted; (b) The QTI-HTML5v2.2 XSD reference has been changed to QTI-HTML5v2.2.1 XSD; (c) The multiplicity of the 'col' attribute in the 'ColGroup' class has been changed to [0..*]; (d) The schematron rules for the extensions of the 'language' and 'base' characterisics have been corrected to refer to 'xml:lang' and 'xml:base' respectively.
Spec 2.2.2 / Final 1.0 | 27th November, 2017 | The changes made in this release are corrections to the Schematron rules to enforce numeric comparisons using the 'number()' function.

toc | top

IMS Global Learning Consortium, Inc. ("IMS Global") is publishing the information contained in this document ("Specification") for purposes of scientific, experimental, and scholarly collaboration only.

IMS Global makes no warranty or representation regarding the accuracy or completeness of the Specification.

This material is provided on an "As Is" and "As Available" basis.

The Specification is at all times subject to change and revision without notice.

It is your sole responsibility to evaluate the usefulness, accuracy, and completeness of the Specification as it relates to you.

IMS Global would appreciate receiving your comments and suggestions.

Please contact IMS Global through our website at http://www.imsglobal.org.

Please refer to Document Name: IMS Question and Test Interoperability (QTI): Assessment, Section and Item Information Model v2.2.2

Date: 27th November, 2017

toc | top