IMS Candidate Final Public

IMS Global Logo

IMS Question and Test Interoperability (QTI): Results Reporting Information Model and XSD Binding Version 3.0

IMS Candidate Final Public
Version 1.0

Date Issued: 1st November, 2022
Latest version: http://www.imsglobal.org/activity/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 © 2022 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.

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

Document Name: IMS Question and Test Interoperability (QTI): Results Reporting Information Model and XSD Binding v3.0

Revision: 1st November, 2022

toc | top

Abstract

This document is a part of the 1EdTech Question and Test Interoperability (QTI) v3.0 specification. It introduces QTI Result Reporting for reporting the results of an assessment and 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 QTIv3.0 Assessment, Section and Item specification [QTI-INFO-30], this is not a prerequisite for the use of this result reporting representation. Within this single document are the description of the Information Model, the binding to XML/XSD data exchange format, an Implementation Guide, and the Conformance and Certification details.

toc | top

Table of Contents

Abstract

1. Introduction

1.1 Scope and Context

1.2 Conventions

1.3 Structure of this Document

1.4 Nomenclature

2. Information Model

2.1 Information Model Overview

2.2 Root Attribute Description

2.2.1 "assessmentResult" Root Attribute Description

2.3 Root Class Description

2.3.1 "AssessmentResult" Root Class Description

2.3.1.1 "context" Attribute Description

2.3.1.2 "testResult" Attribute Description

2.3.1.3 "itemResult" Attribute Description

2.4 Data Class Descriptions

2.4.1 "CandidateResponse" Class Description

2.4.1.1 "value" Attribute Description

2.4.2 "Context" Class Description

2.4.2.1 "sourcedId" Characteristic Description

2.4.2.2 "sessionIdentifier" Attribute Description

2.4.3 "ContextTemplateVariable" Class Description

2.4.3.1 "identifier" Characteristic Description

2.4.3.2 "cardinality" Characteristic Description

2.4.3.3 "baseType" Characteristic Description

2.4.3.4 "value" Attribute Description

2.4.4 "CorrectResponse" Class Description

2.4.4.1 "interpretation" Characteristic Description

2.4.4.2 "value" Attribute Description

2.4.5 "ItemResult" Class Description

2.4.5.1 "identifier" Characteristic Description

2.4.5.2 "sequenceIndex" Characteristic Description

2.4.5.3 "datestamp" Characteristic Description

2.4.5.4 "sessionStatus" Characteristic Description

2.4.5.5 "itemVariable" Attribute Description

2.4.5.6 "candidateComment" Attribute Description

2.4.5.7 "support" Attribute Description

2.4.6 "OutcomeInformation" Class Description

2.4.6.1 "extensions" Attribute Description

2.4.7 "OutcomeVariable" Class Description

2.4.7.1 "identifier" Characteristic Description

2.4.7.2 "cardinality" Characteristic Description

2.4.7.3 "baseType" Characteristic Description

2.4.7.4 "view" Characteristic Description

2.4.7.5 "interpretation" Characteristic Description

2.4.7.6 "longInterpretation" Characteristic Description

2.4.7.7 "normalMaximum" Characteristic Description

2.4.7.8 "normalMinimum" Characteristic Description

2.4.7.9 "masteryValue" Characteristic Description

2.4.7.10 "external-scored" Characteristic Description

2.4.7.11 "variable-identifier-ref" Characteristic Description

2.4.7.12 "value" Attribute Description

2.4.7.13 "outcomeInformation" Attribute Description

2.4.8 "ResponseVariable" Class Description

2.4.8.1 "identifier" Characteristic Description

2.4.8.2 "cardinality" Characteristic Description

2.4.8.3 "baseType" Characteristic Description

2.4.8.4 "choiceSequence" Characteristic Description

2.4.8.5 "scoreStatus" Characteristic Description

2.4.8.6 "answeredStatus" Characteristic Description

2.4.8.7 "correctResponse" Attribute Description

2.4.8.8 "candidateResponse" Attribute Description

2.4.9 "TestResult" Class Description

2.4.9.1 "identifier" Characteristic Description

2.4.9.2 "datestamp" Characteristic Description

2.4.9.3 "itemVariable" Attribute Description

2.4.9.4 "support" Attribute Description

2.5 Abstract Class Descriptions

2.5.1 "ItemVariable" Class Description

2.5.1.1 "responseVariable" Attribute Description

2.5.1.2 "templateVariable" Attribute Description

2.5.1.3 "outcomeVariable" Attribute Description

2.5.1.4 "contextVariable" Attribute Description

2.6 Derived Class Descriptions

2.6.1 "DateTime" Class Description

2.6.1.1 "pattern" Attribute Description

2.6.2 "Identifier" Class Description

2.6.3 "SessionIdentifier" Class Description

2.6.3.1 "sourceID" Characteristic Description

2.6.3.2 "identifier" Characteristic Description

2.6.4 "Support" Class Description

2.6.4.1 "name" Characteristic Description

2.6.4.2 "assignment" Characteristic Description

2.6.4.3 "value" Characteristic Description

2.6.4.4 "language" Characteristic Description

2.6.5 "UniqueIdentifierRef" Class Description

2.6.6 "Value" Class Description

2.6.6.1 "fieldIdentifier" Characteristic Description

2.6.6.2 "baseType" Characteristic Description

2.7 Enumerated Vocabulary Descriptions

2.7.1 "AnsweredStatusEnum" Vocabulary Description

2.7.2 "AssignmentEnum" Vocabulary Description

2.7.3 "BaseTypeEnum" Vocabulary Description

2.7.4 "CardinalityEnum" Vocabulary Description

2.7.5 "ExternalScoredEnum" Vocabulary Description

2.7.6 "ScoreStatusEnum" Vocabulary Description

2.7.7 "SessionStatusEnum" Vocabulary Description

2.8 List Class Descriptions

2.8.1 "IdentifierList" Class Description

2.9 Enumerated Vocabulary List Descriptions

2.9.1 "ViewEnum" Vocabulary Description

3. XSD Binding

3.1 XSD Binding Overview

3.2 UML to XML/XSD Mapping

3.2.1 Root Attribute UML/XSD Mapping

3.2.2 Root Class UML/XSD Mapping

3.2.2.1 AssessmentResult Root Class Mapping

3.2.3 Class UML/XSD Mapping

3.2.3.1 CandidateResponse Class Mapping

3.2.3.2 Context Class Mapping

3.2.3.3 ContextTemplateVariable Class Mapping

3.2.3.4 CorrectResponse Class Mapping

3.2.3.5 ItemResult Class Mapping

3.2.3.6 OutcomeInformation Class Mapping

3.2.3.7 OutcomeVariable Class Mapping

3.2.3.8 ResponseVariable Class Mapping

3.2.3.9 TestResult Class Mapping

3.2.4 Derived Class UML/XSD Mapping

3.2.4.1 DateTime Class Mapping

3.2.4.2 Identifier Class Mapping

3.2.4.3 SessionIdentifier Class Mapping

3.2.4.4 Support Class Mapping

3.2.4.5 UniqueIdentifierRef Class Mapping

3.2.4.6 Value Class Mapping

3.2.5 Enumerated Class UML/XSD Mapping

3.2.6 Enumerated List Class UML/XSD Mapping

3.2.7 List Class UML/XSD Mapping

3.2.8 Union Class UML/XSD Mapping

3.2.9 Primitive Type UML/XSD Mapping

3.3 Filenames and Namespaces

3.3.1 Target Namespace Details

3.3.2 Imported Namespace Details

3.3.3 Implicit Namespace Details

3.4 Description of the XSD

3.4.1 Root Element Descriptions

3.4.1.1 "assessmentResult" Root Element Description

3.4.2 Global Element Descriptions

3.4.3 Attribute Group Descriptions

3.4.4 Root Complex Type Descriptions

3.4.4.1 AssessmentResultDType Root Complex Type Description

* "context" Local Element Description

* "testResult" Local Element Description

* "itemResult" Local Element Description

3.4.5 Core Complex Type Descriptions

3.4.5.1 CandidateResponseDType Core Complex Type Description

* "value" Local Element Description

3.4.5.2 ContextDType Core Complex Type Description

* "sourcedId" Local Attribute Description

* "sessionIdentifier" Local Element Description

3.4.5.3 ContextTemplateVariableDType Core Complex Type Description

* "identifier" Local Attribute Description

* "cardinality" Local Attribute Description

* "baseType" Local Attribute Description

* "value" Local Element Description

3.4.5.4 CorrectResponseDType Core Complex Type Description

* "interpretation" Local Attribute Description

* "value" Local Element Description

3.4.5.5 ItemResultDType Core Complex Type Description

* "identifier" Local Attribute Description

* "sequenceIndex" Local Attribute Description

* "datestamp" Local Attribute Description

* "sessionStatus" Local Attribute Description

* "responseVariable" Local Element Description

* "templateVariable" Local Element Description

* "outcomeVariable" Local Element Description

* "contextVariable" Local Element Description

* "candidateComment" Local Element Description

* "support" Local Element Description

3.4.5.6 OutcomeInformationDType Core Complex Type Description

3.4.5.7 OutcomeVariableDType Core Complex Type Description

* "identifier" Local Attribute Description

* "cardinality" Local Attribute Description

* "baseType" Local Attribute Description

* "view" Local Attribute Description

* "interpretation" Local Attribute Description

* "longInterpretation" Local Attribute Description

* "normalMaximum" Local Attribute Description

* "normalMinimum" Local Attribute Description

* "masteryValue" Local Attribute Description

* "external-scored" Local Attribute Description

* "variable-identifier-ref" Local Attribute Description

* "value" Local Element Description

* "outcomeInformation" Local Element Description

3.4.5.8 ResponseVariableDType Core Complex Type Description

* "identifier" Local Attribute Description

* "cardinality" Local Attribute Description

* "baseType" Local Attribute Description

* "choiceSequence" Local Attribute Description

* "scoreStatus" Local Attribute Description

* "answeredStatus" Local Attribute Description

* "correctResponse" Local Element Description

* "candidateResponse" Local Element Description

3.4.5.9 TestResultDType Core Complex Type Description

* "identifier" Local Attribute Description

* "datestamp" Local Attribute Description

* "responseVariable" Local Element Description

* "templateVariable" Local Element Description

* "outcomeVariable" Local Element Description

* "contextVariable" Local Element Description

* "support" Local Element Description

3.4.6 Derived Complex Type Descriptions

3.4.6.1 SessionIdentifierDType Derived Complex Type Description

* "sourceID" Local Attribute Description

* "identifier" Local Attribute Description

3.4.6.2 SupportDType Derived Complex Type Description

* "name" Local Attribute Description

* "assignment" Local Attribute Description

* "value" Local Attribute Description

* "language" Local Attribute Description

3.4.6.3 ValueDType Derived Complex Type Description

* "fieldIdentifier" Local Attribute Description

* "baseType" Local Attribute Description

3.4.7 Simple Type Descriptions

3.4.7.1 DateTimeDType Simple Type Description

3.4.7.2 IdentifierDType Simple Type Description

3.4.7.3 IdentifierListDType Simple Type Description

3.4.7.4 UniqueIdentifierRefDType Simple Type Description

3.4.7.5 ViewEnumDType Simple Type Description

3.5 The Schematron Rules

4. Extending and Profiling the Data Model

4.1 Extending the Data Model

4.2 Profiling the Data Model

5. Implementation Guide

5.1 Core Use-cases

5.1.1 Results Reported from a Test Delivery System

5.1.2 Results Reported To/From Scoring Systems

5.1.3 Results Reported to Reporting and Analysis Systems

5.1.4 Archiving of Assessment Results Data

5.2 Data Flows

5.2.1 Item Level Response Processing

5.2.2 Test Level Outcomes Processing

5.2.3 Assessment Level Context

5.2.4 Composite Data Flow

5.3 Best Practices

5.3.1 API Usage to Retrieve Results Data

5.3.2 Aligning Results to Item and Test Level Metadata

5.3.3 Aligning Results to Candidate Information (Including Accommodations)

5.3.4 Updating/Versioning Results

5.3.5 Interpreting Results and Determining Grades

5.3.6 Item Session Lifecycle (Skipping, Invalid and Missing Items)

5.3.7 Providing PNP Information in the Report

5.3.8 Annotated Examples

5.3.8.1 Basic Example

5.3.8.2 Extensive Example

5.3.8.3 Using the 'outcomeInformation' Extension Property in the Outcome Variable Class

5.4 Relation to Other Standards

5.4.1 LTI Advantage

5.4.2 Caliper

5.4.3 OneRoster and Assessment Results Management

5.4.4 Competencies and Academic Standards Exchange (CASE)

5.4.5 LTI Resource Search

5.4.6 Computer Adaptive Testing (CAT)

5.4.7 Access for All Personal Needs and Preferences (AfA PNP)

6. Conformance and Certification

6.1 The Conformance Process

6.2 System Import Conformance

6.3 System Export Conformance

6.4 System Certifications

References

Appendix A Modeling 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

A1.7 Link Data Descriptions

A1.8 Common Data Model Persistent Identifier Descriptions

Appendix B XSD Binding Terms

B1 XSD Binding Description Terms

B1.1 UML/XSD Attribute Mapping Table Definition

B1.2 UML/XSD Class Mapping Table Definition

B1.3 UML/XSD Enumerated and Enumerated List Class Mapping Table Definition

B1.4 UML/XSD List and Union Mapping Tables Definition

B1.5 UML/XSD Primitive Types Mapping Table Definition

B1.6 XSD Description for an Element

B1.7 XSD Description for a Complex Type

B1.8 XSD Description for a Simple Type

B1.9 XSD Description for an Attribute Group

B1.10 XSD Description for an Attribute

B1.11 VDEX Description for an External Vocabulary

Appendix C XSD Listing

C1 QTI Results Reporting XSD Listing

About this Document

List of Contributors

Revision History

toc | top

List of Figures

Figure 2.3.1 AssessmentResult class definitions

Figure 2.4.1 CandidateResponse class definitions

Figure 2.4.2 Context class definitions

Figure 2.4.3 ContextTemplateVariable class definitions

Figure 2.4.4 CorrectResponse class definitions

Figure 2.4.5 ItemResult class definitions

Figure 2.4.6 OutcomeInformation class definitions

Figure 2.4.7 OutcomeVariable class definitions

Figure 2.4.8 ResponseVariable class definitions

Figure 2.4.9 TestResult class definitions

Figure 2.5.1 ItemVariable class definitions

Figure 2.6.1 DateTime class definitions

Figure 2.6.2 Identifier class definitions

Figure 2.6.3 SessionIdentifier class definitions

Figure 2.6.4 Support class definitions

Figure 2.6.5 UniqueIdentifierRef class definitions

Figure 2.6.6 Value class definitions

Figure 2.7.1 AnsweredStatusEnum class definitions

Figure 2.7.2 AssignmentEnum class definitions

Figure 2.7.3 BaseTypeEnum class definitions

Figure 2.7.4 CardinalityEnum class definitions

Figure 2.7.5 ExternalScoredEnum class definitions

Figure 2.7.6 ScoreStatusEnum class definitions

Figure 2.7.7 SessionStatusEnum class definitions

Figure 2.8.1 IdentifierList class definitions

Figure 2.9.1 ViewEnum class definitions

Figure 3.4.1.1 XSD Description for the "assessmentResult" Root Element

Figure 3.4.2.1 XSD Description for the "extensions" Global Element

Figure 3.4.4.1 XSD Description for the "AssessmentResultDType" Root ComplexType

Figure XSD Description for the "context" Local Element Description

Figure XSD Description for the "testResult" Local Element Description

Figure XSD Description for the "itemResult" Local Element Description

Figure 3.4.5.1 XSD Description for the "CandidateResponseDType" Core Complex Type

Figure XSD Description for the "value" Local Element

Figure 3.4.5.2 XSD Description for the "ContextDType" Core Complex Type

Figure XSD Description for the "sourcedId" Local Attribute

Figure XSD Description for the "sessionIdentifier" Local Element

Figure 3.4.5.3 XSD Description for the "ContextTemplateVariableDType" Core Complex Type

Figure XSD Description for the "identifier" Local Attribute

Figure XSD Description for the "cardinality" Local Attribute

Figure XSD Description for the "baseType" Local Attribute

Figure XSD Description for the "value" Local Element

Figure 3.4.5.4 XSD Description for the "CorrectResponseDType" Core Complex Type

Figure XSD Description for the "interpretation" Local Attribute

Figure XSD Description for the "value" Local Element

Figure 3.4.5.5 XSD Description for the "ItemResultDType" Core Complex Type

Figure XSD Description for the "identifier" Local Attribute

Figure XSD Description for the "sequenceIndex" Local Attribute

Figure XSD Description for the "datestamp" Local Attribute

Figure XSD Description for the "sessionStatus" Local Attribute

Figure XSD Description for the "responseVariable" Local Element

Figure XSD Description for the "templateVariable" Local Element

Figure XSD Description for the "outcomeVariable" Local Element

Figure XSD Description for the "contextVariable" Local Element

Figure XSD Description for the "candidateComment" Local Element

Figure XSD Description for the "support" Local Element

Figure 3.4.5.6 XSD Description for the "OutcomeInformationDType" Core Complex Type

Figure 3.4.5.7 XSD Description for the "OutcomeVariableDType" Core Complex Type

Figure XSD Description for the "identifier" Local Attribute

Figure XSD Description for the "cardinality" Local Attribute

Figure XSD Description for the "baseType" Local Attribute

Figure XSD Description for the "view" Local Attribute

Figure XSD Description for the "interpretation" Local Attribute

Figure XSD Description for the "longInterpretation" Local Attribute

Figure XSD Description for the "normalMaximum" Local Attribute

Figure XSD Description for the "normalMinimum" Local Attribute

Figure XSD Description for the "masteryValue" Local Attribute

Figure XSD Description for the "external-scored" Local Attribute

Figure XSD Description for the "variable-identifier-ref" Local Attribute

Figure XSD Description for the "value" Local Element

Figure XSD Description for the "outcomeInformation" Local Element

Figure 3.4.5.8 XSD Description for the "ResponseVariableDType" Core Complex Type

Figure XSD Description for the "identifier" Local Attribute

Figure XSD Description for the "cardinality" Local Attribute

Figure XSD Description for the "baseType" Local Attribute

Figure XSD Description for the "choiceSequence" Local Attribute

Figure XSD Description for the "scoreStatus" Local Attribute

Figure XSD Description for the "answeredStatus" Local Attribute

Figure XSD Description for the "correctResponse" Local Element

Figure XSD Description for the "candidateResponse" Local Element

Figure 3.4.5.9 XSD Description for the "TestResultDType" Core Complex Type

Figure XSD Description for the "identifier" Local Attribute

Figure XSD Description for the "datestamp" Local Attribute

Figure XSD Description for the "responseVariable" Local Element

Figure XSD Description for the "templateVariable" Local Element

Figure XSD Description for the "outcomeVariable" Local Element

Figure XSD Description for the "contextVariable" Local Element

Figure XSD Description for the "support" Local Element

Figure 3.4.6.1 XSD Description for the "SessionIdentifierDType" Derived Complex Type

Figure XSD Description for the "sourceID" Local Attribute

Figure XSD Description for the "identifier" Local Attribute

Figure 3.4.6.2 XSD Description for the "SupportDType" Derived Complex Type

Figure XSD Description for the "name" Local Attribute

Figure XSD Description for the "assignment" Local Attribute

Figure XSD Description for the "value" Local Attribute

Figure XSD Description for the "language" Local Attribute

Figure 3.4.6.3 XSD Description for the "ValueDType" Derived Complex Type

Figure XSD Description for the "fieldIdentifier" Local Attribute

Figure XSD Description for the "baseType" Local Attribute

Figure 3.4.7.1 XSD Description for the "DateTimeDType" Simple Type

Figure 3.4.7.2 XSD Description for the "IdentifierDType" Simple Type

Figure 3.4.7.3 XSD Description for the "IdentifierListDType" Simple Type

Figure 3.4.7.4 XSD Description for the "UniqueIdentifierRefDType" Simple Type

Figure 3.4.7.5 XSD Description for the "ViewEnumDType" Simple Type

toc | top

List of Tables

Table 2.2.1 "assessmentResult" root attribute description

Table 2.3.1 AssessmentResult class definitions

Table 2.3.1.1 Description of the "context" attribute for the "AssessmentResult" class

Table 2.3.1.2 Description of the "testResult" attribute for the "AssessmentResult" class

Table 2.3.1.3 Description of the "itemResult" attribute for the "AssessmentResult" class

Table 2.4.1 CandidateResponse class definitions

Table 2.4.1.1 Description of the "value" attribute for the "CandidateResponse" class

Table 2.4.2 Context class definitions

Table 2.4.2.1 Description of the "sourcedId" characteristic for the "Context" class

Table 2.4.2.2 Description of the "sessionIdentifier" attribute for the "Context" class

Table 2.4.3 ContextTemplateVariable class definitions

Table 2.4.3.1 Description of the "identifier" characteristic for the "ContextTemplateVariable" class

Table 2.4.3.2 Description of the "cardinality" characteristic for the "ContextTemplateVariable" class

Table 2.4.3.3 Description of the "baseType" characteristic for the "ContextTemplateVariable" class

Table 2.4.3.4 Description of the "value" attribute for the "ContextTemplateVariable" class

Table 2.4.4 CorrectResponse class definitions

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

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

Table 2.4.5 ItemResult class definitions

Table 2.4.5.1 Description of the "identifier" characteristic for the "ItemResult" class

Table 2.4.5.2 Description of the "sequenceIndex" characteristic for the "ItemResult" class

Table 2.4.5.3 Description of the "datestamp" characteristic for the "ItemResult" class

Table 2.4.5.4 Description of the "sessionStatus" characteristic for the "ItemResult" class

Table 2.4.5.5 Description of the "itemVariable" attribute for the "ItemResult" class

Table 2.4.5.6 Description of the "candidateComment" attribute for the "ItemResult" class

Table 2.4.5.7 Description of the "support" attribute for the "ItemResult" class

Table 2.4.6 OutcomeInformation class definitions

Table 2.4.6.1 Description of the "extensions" attribute for the "OutcomeInformation" class

Table 2.4.7 OutcomeVariable class definitions

Table 2.4.7.1 Description of the "identifier" characteristic for the "OutcomeVariable" class

Table 2.4.7.2 Description of the "cardinality" characteristic for the "OutcomeVariable" class

Table 2.4.7.3 Description of the "baseType" characteristic for the "OutcomeVariable" class

Table 2.4.7.4 Description of the "view" characteristic for the "OutcomeVariable" class

Table 2.4.7.5 Description of the "interpretation" characteristic for the "OutcomeVariable" class

Table 2.4.7.6 Description of the "longInterpretation" characteristic for the "OutcomeVariable" class

Table 2.4.7.7 Description of the "normalMaximum" characteristic for the "OutcomeVariable" class

Table 2.4.7.8 Description of the "normalMinimum" characteristic for the "OutcomeVariable" class

Table 2.4.7.9 Description of the "masteryValue" characteristic for the "OutcomeVariable" class

Table 2.4.7.10 Description of the "external-scored" characteristic for the "OutcomeVariable" class

Table 2.4.7.11 Description of the "variable-identifier-ref" characteristic for the "OutcomeVariable" class

Table 2.4.7.12 Description of the "value" attribute for the "OutcomeVariable" class

Table 2.4.7.13 Description of the "outcomeInformation" attribute for the "OutcomeVariable" class

Table 2.4.8 ResponseVariable class definitions

Table 2.4.8.1 Description of the "identifier" characteristic for the "ResponseVariable" class

Table 2.4.8.2 Description of the "cardinality" characteristic for the "ResponseVariable" class

Table 2.4.8.3 Description of the "baseType" characteristic for the "ResponseVariable" class

Table 2.4.8.4 Description of the "choiceSequence" characteristic for the "ResponseVariable" class

Table 2.4.8.5 Description of the "scoreStatus" characteristic for the "ResponseVariable" class

Table 2.4.8.6 Description of the "answeredStatus" characteristic for the "ResponseVariable" class

Table 2.4.8.7 Description of the "correctResponse" attribute for the "ResponseVariable" class

Table 2.4.8.8 Description of the "candidateResponse" attribute for the "ResponseVariable" class

Table 2.4.9 TestResult class definitions

Table 2.4.9.1 Description of the "identifier" characteristic for the "TestResult" class

Table 2.4.9.2 Description of the "datestamp" characteristic for the "TestResult" class

Table 2.4.9.3 Description of the "itemVariable" attribute for the "TestResult" class

Table 2.4.9.4 Description of the "support" attribute for the "TestResult" class

Table 2.5.1 ItemVariable class definitions

Table 2.5.1.1 Description of the "responseVariable" attribute for the "ItemVariable" class

Table 2.5.1.2 Description of the "templateVariable" attribute for the "ItemVariable" class

Table 2.5.1.3 Description of the "outcomeVariable" attribute for the "ItemVariable" class

Table 2.5.1.4 Description of the "contextVariable" attribute for the "ItemVariable" class

Table 2.6.1 DateTime class definitions

Table 2.6.1.1 Description of the "pattern" attribute for the "DateTime" class

Table 2.6.2 Identifier class definitions

Table 2.6.3 SessionIdentifier class definitions

Table 2.6.3.1 Description of the "sourceID" characteristic for the "SessionIdentifier" class

Table 2.6.3.2 Description of the "identifier" characteristic for the "SessionIdentifier" class

Table 2.6.4 Support class definitions

Table 2.6.4.1 Description of the "name" characteristic for the "Support" class

Table 2.6.4.2 Description of the "assignment" characteristic for the "Support" class

Table 2.6.4.3 Description of the "value" characteristic for the "Support" class

Table 2.6.4.4 Description of the "language" characteristic for the "Support" class

Table 2.6.5 UniqueIdentifierRef class definitions

Table 2.6.6 Value class definitions

Table 2.6.6.1 Description of the "fieldIdentifier" characteristic for the "Value" class

Table 2.6.6.2 Description of the "baseType" characteristic for the "Value" class

Table 2.7.1 AnsweredStatusEnum class definitions

Table 2.7.2 AssignmentEnum class definitions

Table 2.7.3 BaseTypeEnum class definitions

Table 2.7.4 CardinalityEnum class definitions

Table 2.7.5 ExternalScoredEnum class definitions

Table 2.7.6 ScoreStatusEnum class definitions

Table 2.7.7 SessionStatusEnum class definitions

Table 2.8.1 IdentifierList class description

Table 2.9.1 ViewEnum class description

Table 3.2.1 UML/XSD Mapping for the Root Attributes

Table 3.2.2.1 UML/XSD Mapping for the AssessmentResult Root Class

Table 3.2.3.1 UML/XSD Mapping for the CandidateResponse Core Class

Table 3.2.3.2 UML/XSD Mapping for the Context Core Class

Table 3.2.3.3 UML/XSD Mapping for the ContextTemplateVariable Core Class

Table 3.2.3.4 UML/XSD Mapping for the CorrectResponse Core Class

Table 3.2.3.5 UML/XSD Mapping for the ItemResult Core Class

Table 3.2.3.6 UML/XSD Mapping for the OutcomeInformation Core Class

Table 3.2.3.7 UML/XSD Mapping for the OutcomeVariable Core Class

Table 3.2.3.8 UML/XSD Mapping for the ResponseVariable Core Class

Table 3.2.3.9 UML/XSD Mapping for the TestResult Core Class

Table 3.2.4.1 UML/XSD Mapping for the DateTime Derived Class

Table 3.2.4.2 UML/XSD Mapping for the Identifier Derived Class

Table 3.2.4.3 UML/XSD Mapping for the SessionIdentifier Derived Class

Table 3.2.4.4 UML/XSD Mapping for the Support Derived Class

Table 3.2.4.5 UML/XSD Mapping for the UniqueIdentifierRef Derived Class

Table 3.2.4.6 UML/XSD Mapping for the Value Derived Class

Table 3.2.5 UML/XSD Mapping for the Enumerated Class Definitions

Table 3.2.6 UML/XSD Mapping for the Enumerated List Class Definitions

Table 3.2.7 UML/XSD Mapping for the List Class Definitions

Table 3.2.9 UML/XSD Mapping for the Primitive Type Definitions

Table 3.4.1.1 XSD Description for the "assessmentResult" Root Element

Table 3.4.2.1 XSD Description for the "extensions" Global Element

Table 3.4.4.1 XSD Description for the "AssessmentResultDType" Root ComplexType

Table XSD Description for the "context" Local Element Description

Table XSD Description for the "testResult" Local Element Description

Table XSD Description for the "itemResult" Local Element Description

Table 3.4.5.1 XSD Description for the "CandidateResponseDType" Core Complex Type

Table XSD Description for the "value" Local Element

Table 3.4.5.2 XSD Description for the "ContextDType" Core Complex Type

Table XSD Description for the "sourcedId" Local Attribute

Table XSD Description for the "sessionIdentifier" Local Element

Table 3.4.5.3 XSD Description for the "ContextTemplateVariableDType" Core Complex Type

Table XSD Description for the "identifier" Local Attribute

Table XSD Description for the "cardinality" Local Attribute

Table XSD Description for the "baseType" Local Attribute

Table XSD Description for the "value" Local Element

Table 3.4.5.4 XSD Description for the "CorrectResponseDType" Core Complex Type

Table XSD Description for the "interpretation" Local Attribute

Table XSD Description for the "value" Local Element

Table 3.4.5.5 XSD Description for the "ItemResultDType" Core Complex Type

Table XSD Description for the "identifier" Local Attribute

Table XSD Description for the "sequenceIndex" Local Attribute

Table XSD Description for the "datestamp" Local Attribute

Table XSD Description for the "sessionStatus" Local Attribute

Table XSD Description for the "responseVariable" Local Element

Table XSD Description for the "templateVariable" Local Element

Table XSD Description for the "outcomeVariable" Local Element

Table XSD Description for the "contextVariable" Local Element

Table XSD Description for the "candidateComment" Local Element

Table XSD Description for the "support" Local Element

Table 3.4.5.6 XSD Description for the "OutcomeInformationDType" Core Complex Type

Table 3.4.5.7 XSD Description for the "OutcomeVariableDType" Core Complex Type

Table XSD Description for the "identifier" Local Attribute

Table XSD Description for the "cardinality" Local Attribute

Table XSD Description for the "baseType" Local Attribute

Table XSD Description for the "view" Local Attribute

Table XSD Description for the "interpretation" Local Attribute

Table XSD Description for the "longInterpretation" Local Attribute

Table XSD Description for the "normalMaximum" Local Attribute

Table XSD Description for the "normalMinimum" Local Attribute

Table XSD Description for the "masteryValue" Local Attribute

Table XSD Description for the "external-scored" Local Attribute

Table XSD Description for the "variable-identifier-ref" Local Attribute

Table XSD Description for the "value" Local Element

Table XSD Description for the "outcomeInformation" Local Element

Table 3.4.5.8 XSD Description for the "ResponseVariableDType" Core Complex Type

Table XSD Description for the "identifier" Local Attribute

Table XSD Description for the "cardinality" Local Attribute

Table XSD Description for the "baseType" Local Attribute

Table XSD Description for the "choiceSequence" Local Attribute

Table XSD Description for the "scoreStatus" Local Attribute

Table XSD Description for the "answeredStatus" Local Attribute

Table XSD Description for the "correctResponse" Local Element

Table XSD Description for the "candidateResponse" Local Element

Table 3.4.5.9 XSD Description for the "TestResultDType" Core Complex Type

Table XSD Description for the "identifier" Local Attribute

Table XSD Description for the "datestamp" Local Attribute

Table XSD Description for the "responseVariable" Local Element

Table XSD Description for the "templateVariable" Local Element

Table XSD Description for the "outcomeVariable" Local Element

Table XSD Description for the "contextVariable" Local Element

Table XSD Description for the "support" Local Element

Table 3.4.6.1 XSD Description for the "SessionIdentifierDType" Derived Complex Type

Table XSD Description for the "sourceID" Local Attribute

Table XSD Description for the "identifier" Local Attribute

Table 3.4.6.2 XSD Description for the "SupportDType" Derived Complex Type

Table XSD Description for the "name" Local Attribute

Table XSD Description for the "assignment" Local Attribute

Table XSD Description for the "value" Local Attribute

Table XSD Description for the "language" Local Attribute

Table 3.4.6.3 XSD Description for the "ValueDType" Derived Complex Type

Table XSD Description for the "fieldIdentifier" Local Attribute

Table XSD Description for the "baseType" Local Attribute

Table 3.4.7.1 XSD Description for the "DateTimeDType" Simple Type

Table 3.4.7.2 XSD Description for the "IdentifierDType" Simple Type

Table 3.4.7.3 XSD Description for the "IdentifierListDType" Simple Type

Table 3.4.7.4 XSD Description for the "UniqueIdentifierRefDType" Simple Type

Table 3.4.7.5 XSD Description for the "ViewEnumDType" Simple Type

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

Table A1.7 The key to the descriptions of the link data tables

Table A1.8 The key to the descriptions of the common data model persistent identifier tables

Table B1.1 The key to the descriptions of UML to XSD attribute mapping tables

Table B1.2 The key to the descriptions of UML to XSD class mapping tables

Table B1.3 The key to the descriptions of UML to XSD enumerated and enumerated list class mapping tables

Table B1.4 The key to the descriptions of UML to XSD list class mapping table

Table B1.5 The key to the descriptions of UML to XSD primitive mapping table

Table B1.6 The key to the descriptions of XSD element tables

Table B1.7 The key to the descriptions of XSD complex type tables

Table B1.8 The key to the descriptions of XSD simple type tables

Table B1.9 The key to the descriptions of XSD attribute group tables

Table B1.10 The key to the descriptions of XSD attribute tables

Table B1.11 The key to the descriptions of VDEX vocabulary binding tables

toc | top

1. Introduction

1.1. Scope and Context

The 1EdTech QTI Result Reporting v3.0 is used in conjunction with the following documents:

This QTI Result Reporting v3.0 specification supersedes the QTI v2.x versions. The QTI Information Model is bound to an XML Schema Definition (XSD). This document and the accompanying XSD is generated using the 1EdTech Binding Auto-generation Tool-kit (E-BAT) [E-BAT, 06].

1.2. Conventions

All sections marked as non-normative, all authoring guidelines, diagrams (with the exception of the UML diagrams), examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119]. This means that from the perspective of conformance:

The Conformance and Certification Guide for this specification may introduce greater normative constraints than those defined here for specific service or implementation categories.

The SHOULD/SHOULD NOT/RECOMMENDED statements MUST NOT be used in any document, or section of a document, that is responsible for defining the information model and/or the associated bindings and/or conformance and certification.

1.3. Structure of this Document

The structure of the rest of this document is:

2. Information Model The Information Model description for the QTI Results Reporting. This description uses a profile of UML to represent the structure of the data model (see Appendix A1 for further details of the format of the information model description);
3. XSD Binding This is the description of the binding of the data model to XML and the corresponding XSD that is used to validate QTI Results Reporting instances. This description includes an explanation of the relationship between the UML representation and the XSD that is produced through transformation of that representation (see Appendix B1 for further details on the format of the description of the XSD);
4. 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;
5. Implementation Guide The best practices and implementations guidance when using this specification. This includes a set of annotated examples to explain how specific uses can be realized;
6. Conformance and Certification The formal definition of the set of available certifications (import, export, import/export). This includes a description of the set of requirements that must be fulfilled to achieve the corresponding certification;
References The set of documents cited within this document;
Appendix A Modeling Concepts and Terms An overview of the model driven approach, the concepts and the terms used by 1EdTech 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);
Appendix B XSD Binding Terms An overview of the concepts and the terms used by 1EdTech to create the XSD-based bindings representations and the accompanying documentation. The XSD binding is auto-generated from the UML representation to ensure full consistency between the information model and binding;
Appendix C XSD Listing The listing of the QTI Results Reporting XSD that should be used to validate instances of the data exchange.

1.4. Nomenclature

AGS Assignment and Grade Services
API Application Programming Interface
ASI Assessment, Section and Item
CASE Competency and Academic Standards Exchange
CAT Computer Adaptive Testing
CCT Classical Test Theory
DT Derived Type
E-BAT 1EdTech Binding Auto-generation Toolkit
GUID Globally Unique Identifier
IRT Item Response Theory
ISO International Standards Organization
LOR Learning Object Repository
LTI Learning Tools Interoperability
LTI-RS LTI Resource Search
NRPS Names and Role Provisioning Services
PII Personally Identifiable Information
PT Primitive Type
QTI Question and Test Interoperability
REST Representational State Transfer
RFC Request For Comment
UML Unified Modeling Language
URI Uniform Resource Identifier
UUID Universal Unique Identifier
VDEX Vocabulary Definition Exchange
W3C World Wide Web Consortium
XML Exchange Markup Language
XOR Exclusive OR
XSD XML Schema Definition

toc | top

2. Information Model

2.1. Information Model Overview

The Information Model is described using a UML representation approach. The description consists of:

2.2. Root Attribute Description

This Section is NORMATIVE.

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:

2.2.1 "assessmentResult" Root Attribute Description

The definition of the "assessmentResult" root attribute is shown in Table 2.2.1.

Table 2.2.1 Description of the "assessmentResult" root attribute.
Descriptor Definition
Attribute Name assessmentResult
Data Type AssessmentResult
Description This is the root object for exchanging assessment result data. An Assessment Result 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.

2.3. Root Class Description

This Section is NORMATIVE.

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.

2.3.1 AssessmentResult Root Class Description

The data model for the "AssessmentResult" root class is shown in Figure 2.3.1 and the accompanying definition in Table 2.3.1.

UML diagram of the AssessmentResult class.

Figure 2.3.1 - AssessmentResult class definitions.

Table 2.3.1 Description of the "AssessmentResult" class.
Descriptor Definition
Class Name AssessmentResult
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 There are no characteristics.
Children The set of children attributes are:
Description This is the root class to contain the assessment result data. An Assessment Result 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.

2.3.1.1 "context" Attribute Description

The description of the "context" attribute for the "AssessmentResult" root class is given in Table 2.3.1.1.

Table 2.3.1.1 Description of the "context" attribute for the "AssessmentResult" root class.
Descriptor Definition
Attribute Name context
Data Type Context
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [1]
Description Contains the contextual information for the associated itemTest and itemResults. Contextual information must be supplied.

2.3.1.2 "testResult" Attribute Description

The description of the "testResult" attribute for the "AssessmentResult" root class is given in Table 2.3.1.2.

Table 2.3.1.2 Description of the "testResult" attribute for the "AssessmentResult" root class.
Descriptor Definition
Attribute Name testResult
Data Type TestResult
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0..1]
Description A summary report for a test is represented by an assessment result containing a testResult but no itemResults.

2.3.1.3 "itemResult" Attribute Description

The description of the "itemResult" attribute for the "AssessmentResult" root class is given in Table 2.3.1.3.

Table 2.3.1.3 Description of the "itemResult" attribute for the "AssessmentResult" root class.
Descriptor Definition
Attribute Name itemResult
Data Type ItemResult
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description When a test result is given the following item results must relate only to items that were selected for presentation as part of the corresponding test session. Furthermore, all items selected for presentation should be reported with a corresponding itemResult.

2.4. Data Class Descriptions

This Section is NORMATIVE.

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.

2.4.1 CandidateResponse Class Description

The data model for the "CandidateResponse" class is shown in Figure 2.4.1 and the accompanying definition in Table 2.4.1.

UML diagram of the CandidateResponse class.

Figure 2.4.1 - CandidateResponse class definitions.

Table 2.4.1 Description of the "CandidateResponse" class.
Descriptor Definition
Class Name CandidateResponse
Class Type Container [ Sequence ]
Parents The set of parent classes are:
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:
Description The response given by the candidate.

2.4.1.1 "value" Attribute Description

The description of the "value" attribute for the "CandidateResponse" class is given in Table 2.4.1.1.

Table 2.4.1.1 Description of the "value" attribute for the "CandidateResponse" class.
Descriptor Definition
Attribute Name value
Data Type Value
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The value(s) of the response variable. A NULL value, resulting from no response, is indicated by the absence of any value. The order of the values is significant only if the response was declared with ordered cardinality.

2.4.2 Context Class Description

The data model for the "Context" class is shown in Figure 2.4.2 and the accompanying definition in Table 2.4.2.

UML diagram of the Context class.

Figure 2.4.2 - Context class definitions.

Table 2.4.2 Description of the "Context" class.
Descriptor Definition
Class Name Context
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics The set of characteristics are:
Children The set of children attributes are:
Description This is the context for the 'assessmentResult'. It provides the corresponding set of identifiers.

2.4.2.1 "sourcedId" Characteristic Description

The description of the "sourcedId" characteristic for the "Context" class is given in Table 2.4.2.1.

Table 2.4.2.1 Description of the "sourcedId" characteristic for the "Context" class.
Descriptor Definition
Characteristic Name sourcedId
Data Type Identifier
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0..1]
Description A unique identifier for the test candidate.

2.4.2.2 "sessionIdentifier" Attribute Description

The description of the "sessionIdentifier" attribute for the "Context" class is given in Table 2.4.2.2.

Table 2.4.2.2 Description of the "sessionIdentifier" attribute for the "Context" class.
Descriptor Definition
Attribute Name sessionIdentifier
Data Type SessionIdentifier
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The system that creates the result (for example, the test delivery system) should assign a session identifier that it can use to identify the session. Subsequent systems that process the result might assign their own identifier to the session which should be added to the context if the result is modified and exported for transport again.

2.4.3 ContextTemplateVariable Class Description

The data model for the "ContextTemplateVariable" class is shown in Figure 2.4.3 and the accompanying definition in Table 2.4.3.

UML diagram of the ContextTemplateVariable class.

Figure 2.4.3 - ContextTemplateVariable class definitions.

Table 2.4.3 Description of the "ContextTemplateVariable" class.
Descriptor Definition
Class Name ContextTemplateVariable
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics The set of characteristics are:
Children The set of children attributes are:
Description The Item result information related to a Template or a Context Variable.

2.4.3.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "ContextTemplateVariable" class is given in Table 2.4.3.1.

Table 2.4.3.1 Description of the "identifier" characteristic for the "ContextTemplateVariable" class.
Descriptor Definition
Characteristic Name identifier
Data Type Identifier
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1]
Description The identifier of the Template or Context Variable.

2.4.3.2 "cardinality" Characteristic Description

The description of the "cardinality" characteristic for the "ContextTemplateVariable" class is given in Table 2.4.3.2.

Table 2.4.3.2 Description of the "cardinality" characteristic for the "ContextTemplateVariable" class.
Descriptor Definition
Characteristic Name cardinality
Data Type CardinalityEnum
Value Space Enumerated value set of: { multiple | ordered | record | single }
Scope Local ("-")
Multiplicity [1]
Description The cardinality of the Template/Context Variable, taken from the corresponding declaration or definition.

2.4.3.3 "baseType" Characteristic Description

The description of the "baseType" characteristic for the "ContextTemplateVariable" class is given in Table 2.4.3.3.

Table 2.4.3.3 Description of the "baseType" characteristic for the "ContextTemplateVariable" class.
Descriptor Definition
Characteristic Name baseType
Data Type BaseTypeEnum
Value Space Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope Local ("-")
Multiplicity [0..1]
Description The base type of the Template/Context Variable, taken from the corresponding declaration of definition. This value is omitted only for variables with record cardinality.

2.4.3.4 "value" Attribute Description

The description of the "value" attribute for the "ContextTemplateVariable" class is given in Table 2.4.3.4.

Table 2.4.3.4 Description of the "value" attribute for the "ContextTemplateVariable" class.
Descriptor Definition
Attribute Name value
Data Type Value
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The value(s) of the template/context variable. The order of the values is significant only if the template/context variable was declared with ordered cardinality.

2.4.4 CorrectResponse Class Description

The data model for the "CorrectResponse" class is shown in Figure 2.4.4 and the accompanying definition in Table 2.4.4.

UML diagram of the CorrectResponse class.

Figure 2.4.4 - CorrectResponse class definitions.

Table 2.4.4 Description of the "CorrectResponse" class.
Descriptor Definition
Class Name CorrectResponse
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics The set of characteristics are:
Children The set of children attributes are:
Description The correct response may be output as part of the report if desired. Systems are not limited to reporting correct responses declared in responseDeclarations. For example, a correct response may be set by a templateRule or may simply have been suppressed from the declaration passed to the delivery engine e.g. for security.

2.4.4.1 "interpretation" Characteristic Description

The description of the "interpretation" characteristic for the "CorrectResponse" class is given in Table 2.4.4.1.

Table 2.4.4.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 Local ("-")
Multiplicity [0..1]
Description A human readable interpretation of the correct value.

2.4.4.2 "value" Attribute Description

The description of the "value" attribute for the "CorrectResponse" class is given in Table 2.4.4.2.

Table 2.4.4.2 Description of the "value" attribute for the "CorrectResponse" class.
Descriptor Definition
Attribute Name value
Data Type Value
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1.. unbounded]
Description The order of the values is significant only when the response is of ordered cardinality.

2.4.5 ItemResult Class Description

The data model for the "ItemResult" class is shown in Figure 2.4.5 and the accompanying definition in Table 2.4.5.

UML diagram of the ItemResult class.

Figure 2.4.5 - ItemResult class definitions.

Table 2.4.5 Description of the "ItemResult" class.
Descriptor Definition
Class Name ItemResult
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics The set of characteristics are:
Children The set of children attributes are:
Description The result of an item session is reported with an itemResult. A report may contain multiple results for the same instance of an item representing multiple attempts, progression through an adaptive item or even more detailed tracking. In these cases, each item result must have a different datestamp.

2.4.5.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "ItemResult" class is given in Table 2.4.5.1.

Table 2.4.5.1 Description of the "identifier" characteristic for the "ItemResult" class.
Descriptor Definition
Characteristic Name identifier
Data Type Identifier
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1]
Description The identifier of the item for which this is a result. For item results that are reported as part of a test result this is the identifier used to refer to the item in the test (see assessmentItemRef). For item results that are reported on their own, this can be any suitable identifier for the item. Where possible, the value should match the identifier attribute on the associated assessmentItem.

2.4.5.2 "sequenceIndex" Characteristic Description

The description of the "sequenceIndex" characteristic for the "ItemResult" class is given in Table 2.4.5.2.

Table 2.4.5.2 Description of the "sequenceIndex" characteristic for the "ItemResult" class.
Descriptor Definition
Characteristic Name sequenceIndex
Data Type Integer (Primitive-type)
Value Space See Appendix A1.3.
Scope Local ("-")
Multiplicity [0..1]
Description For item results that are reported as part of a test, this attribute must be used to indicate the position of the item within the specific instance of the test. The first item of the first part of the test is defined to have sequence index 1.

2.4.5.3 "datestamp" Characteristic Description

The description of the "datestamp" characteristic for the "ItemResult" class is given in Table 2.4.5.3.

Table 2.4.5.3 Description of the "datestamp" characteristic for the "ItemResult" class.
Descriptor Definition
Characteristic Name datestamp
Data Type DateTime
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1]
Description The date stamp of when this result was recorded.

2.4.5.4 "sessionStatus" Characteristic Description

The description of the "sessionStatus" characteristic for the "ItemResult" class is given in Table 2.4.5.4.

Table 2.4.5.4 Description of the "sessionStatus" characteristic for the "ItemResult" class.
Descriptor Definition
Characteristic Name sessionStatus
Data Type SessionStatusEnum
Value Space Enumerated value set of: { final | initial | pendingExternalScoring | pendingResponseProcessing | pendingSubmission }
Scope Local ("-")
Multiplicity [1]
Description The session status is used to interpret the values of the item variables. See the sessionStatus vocabulary.

2.4.5.5 "itemVariable" Attribute Description

The description of the "itemVariable" attribute for the "ItemResult" class is given in Table 2.4.5.5.

Table 2.4.5.5 Description of the "itemVariable" attribute for the "ItemResult" class.
Descriptor Definition
Attribute Name itemVariable
Data Type ItemVariable
Value Space Abstract Container [ Selection ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description During the item session the delivery engine keeps track of the current values assigned to all itemVariables. The values include the values of the built-in variables numAttempts, duration and completionStatus. Each value is represented in the report by an instance of itemVariable.

2.4.5.6 "candidateComment" Attribute Description

The description of the "candidateComment" attribute for the "ItemResult" class is given in Table 2.4.5.6.

Table 2.4.5.6 Description of the "candidateComment" attribute for the "ItemResult" class.
Descriptor Definition
Attribute Name candidateComment
Data Type String (Primitive-type)
Value Space See Appendix A1.3.
Scope Local ("-")
Multiplicity [0..1]
Description An optional comment supplied by the candidate (see the allowComment in the ASI documentation [QTI-INFO-30]).

2.4.5.7 "support" Attribute Description

The description of the "support" attribute for the "ItemResult" class is given in Table 2.4.5.7.

Table 2.4.5.7 Description of the "support" attribute for the "ItemResult" class.
Descriptor Definition
Attribute Name support
Data Type Support
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The set of associated support features used in the delivery of the Test. These features are aligned to the QTI profile of the 1EdTech Access for All Personal Needs and Preferences (AfA PNP).The set of associated support features used in the delivery of the Item.

2.4.6 OutcomeInformation Class Description

The data model for the "OutcomeInformation" class is shown in Figure 2.4.6 and the accompanying definition in Table 2.4.6.

UML diagram of the OutcomeInformation class.

Figure 2.4.6 - OutcomeInformation class definitions.

Table 2.4.6 Description of the "OutcomeInformation" class.
Descriptor Definition
Class Name OutcomeInformation
Class Type Container [ Sequence ]
Parents The set of parent classes are:
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:
Description The container for the extensions to the Outcome Variables.

2.4.6.1 "extensions" Attribute Description

The description of the "extensions" attribute for the "OutcomeInformation" class is given in Table 2.4.6.1.

Table 2.4.6.1 Description of the "extensions" attribute for the "OutcomeInformation" class.
Descriptor Definition
Attribute Name extensions
Data Type Namespace (Primitive-type)
Value Space See Appendix A1.3.
Scope Global ("+")
Multiplicity [0.. unbounded]
Description The child tags must be new tags and not reused tags available in QTI Results Reporting. The extension form is binding dependent. For XML this requires use of a new namespace.

2.4.7 OutcomeVariable Class Description

The data model for the "OutcomeVariable" class is shown in Figure 2.4.7 and the accompanying definition in Table 2.4.7.

UML diagram of the OutcomeVariable class.

Figure 2.4.7 - OutcomeVariable class definitions.

Table 2.4.7 Description of the "OutcomeVariable" class.
Descriptor Definition
Class Name OutcomeVariable
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics The set of characteristics are:
Children The set of children attributes are:
Description The Item result information related to an 'Outcome Variable'.

2.4.7.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "OutcomeVariable" class is given in Table 2.4.7.1.

Table 2.4.7.1 Description of the "identifier" characteristic for the "OutcomeVariable" class.
Descriptor Definition
Characteristic Name identifier
Data Type Identifier
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1]
Description The identifier of the Outcome Variable.

2.4.7.2 "cardinality" Characteristic Description

The description of the "cardinality" characteristic for the "OutcomeVariable" class is given in Table 2.4.7.2.

Table 2.4.7.2 Description of the "cardinality" characteristic for the "OutcomeVariable" class.
Descriptor Definition
Characteristic Name cardinality
Data Type CardinalityEnum
Value Space Enumerated value set of: { multiple | ordered | record | single }
Scope Local ("-")
Multiplicity [1]
Description The cardinality of the Outcome Variable, taken from the corresponding declaration or definition.

2.4.7.3 "baseType" Characteristic Description

The description of the "baseType" characteristic for the "OutcomeVariable" class is given in Table 2.4.7.3.

Table 2.4.7.3 Description of the "baseType" characteristic for the "OutcomeVariable" class.
Descriptor Definition
Characteristic Name baseType
Data Type BaseTypeEnum
Value Space Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope Local ("-")
Multiplicity [0..1]
Description The base type of the Outcome Variable, taken from the corresponding declaration of definition. This value is omitted only for variables with record cardinality.

2.4.7.4 "view" Characteristic Description

The description of the "view" characteristic for the "OutcomeVariable" class is given in Table 2.4.7.4.

Table 2.4.7.4 Description of the "view" characteristic for the "OutcomeVariable" class.
Descriptor Definition
Characteristic Name view
Data Type ViewEnum
Value Space A list from an enumerated value set of: { author | candidate | proctor | scorer | testConstructor | tutor }
Scope Local ("-")
Multiplicity [0..1]
Description The views (if any) declared for the outcome must be copied to the report to enable systems that render the report to hide information not relevant in a specific situation. If no values are given, the outcome's value should be considered relevant in all views.

2.4.7.5 "interpretation" Characteristic Description

The description of the "interpretation" characteristic for the "OutcomeVariable" class is given in Table 2.4.7.5.

Table 2.4.7.5 Description of the "interpretation" characteristic for the "OutcomeVariable" class.
Descriptor Definition
Characteristic Name interpretation
Data Type String (Primitive-type)
Value Space See Appendix A1.3.
Scope Local ("-")
Multiplicity [0..1]
Description A human readable interpretation of the default value.

2.4.7.6 "longInterpretation" Characteristic Description

The description of the "longInterpretation" characteristic for the "OutcomeVariable" class is given in Table 2.4.7.6.

Table 2.4.7.6 Description of the "longInterpretation" characteristic for the "OutcomeVariable" class.
Descriptor Definition
Characteristic Name longInterpretation
Data Type AnyURI (Primitive-type)
Value Space See Appendix A1.3.
Scope Local ("-")
Multiplicity [0..1]
Description An optional link to an extended interpretation of the outcome variable's value.

2.4.7.7 "normalMaximum" Characteristic Description

The description of the "normalMaximum" characteristic for the "OutcomeVariable" class is given in Table 2.4.7.7.

Table 2.4.7.7 Description of the "normalMaximum" characteristic for the "OutcomeVariable" class.
Descriptor Definition
Characteristic Name normalMaximum
Data Type Double (Primitive-type)
Value Space See Appendix A1.3.
Scope Local ("-")
Multiplicity [0..1]
Description The normalMaximum attribute 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.

2.4.7.8 "normalMinimum" Characteristic Description

The description of the "normalMinimum" characteristic for the "OutcomeVariable" class is given in Table 2.4.7.8.

Table 2.4.7.8 Description of the "normalMinimum" characteristic for the "OutcomeVariable" class.
Descriptor Definition
Characteristic Name normalMinimum
Data Type Double (Primitive-type)
Value Space See Appendix A1.3.
Scope Local ("-")
Multiplicity [0..1]
Description The normalMinimum attribute optionally defines the minimum value of numeric outcome variables, it may be negative.

2.4.7.9 "masteryValue" Characteristic Description

The description of the "masteryValue" characteristic for the "OutcomeVariable" class is given in Table 2.4.7.9.

Table 2.4.7.9 Description of the "masteryValue" characteristic for the "OutcomeVariable" class.
Descriptor Definition
Characteristic Name masteryValue
Data Type Double (Primitive-type)
Value Space See Appendix A1.3.
Scope Local ("-")
Multiplicity [0..1]
Description The masteryValue attribute optionally defines a value for numeric outcome variables above which the aspect being measured is considered to have been mastered by the candidate.

2.4.7.10 "external-scored" Characteristic Description

The description of the "external-scored" characteristic for the "OutcomeVariable" class is given in Table 2.4.7.10.

Table 2.4.7.10 Description of the "external-scored" characteristic for the "OutcomeVariable" class.
Descriptor Definition
Characteristic Name external-scored
Data Type ExternalScoredEnum
Value Space Enumerated value set of: { externalMachine | human }
Scope Local ("-")
Multiplicity [0..1]
Description This identifies whether or not the value for this outcome is produced by human or by machine scoring.

2.4.7.11 "variable-identifier-ref" Characteristic Description

The description of the "variable-identifier-ref" characteristic for the "OutcomeVariable" class is given in Table 2.4.7.11.

Table 2.4.7.11 Description of the "variable-identifier-ref" characteristic for the "OutcomeVariable" class.
Descriptor Definition
Characteristic Name variable-identifier-ref
Data Type UniqueIdentifierRef
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0..1]
Description This is the identifier for an external variable that will be used to provide the external scoring value.

2.4.7.12 "value" Attribute Description

The description of the "value" attribute for the "OutcomeVariable" class is given in Table 2.4.7.12.

Table 2.4.7.12 Description of the "value" attribute for the "OutcomeVariable" class.
Descriptor Definition
Attribute Name value
Data Type Value
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The value(s) of the outcome variable. The order of the values is significant only if the outcome was declared with ordered cardinality.

2.4.7.13 "outcomeInformation" Attribute Description

The description of the "outcomeInformation" attribute for the "OutcomeVariable" class is given in Table 2.4.7.13.

Table 2.4.7.13 Description of the "outcomeInformation" attribute for the "OutcomeVariable" class.
Descriptor Definition
Attribute Name outcomeInformation
Data Type OutcomeInformation
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0..1]
Description This is an extension point to enable any set of child tags to be entered and to extend the OutcomeVariable class. One use-case is to capture and display scorer feedback, comments, or other metadata associated with a specific outcome variable.

2.4.8 ResponseVariable Class Description

The data model for the "ResponseVariable" class is shown in Figure 2.4.8 and the accompanying definition in Table 2.4.8.

UML diagram of the ResponseVariable class.

Figure 2.4.8 - ResponseVariable class definitions.

Table 2.4.8 Description of the "ResponseVariable" class.
Descriptor Definition
Class Name ResponseVariable
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics The set of characteristics are:
Children The set of children attributes are:
Description The Item result information related to a 'Response Variable'.

2.4.8.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "ResponseVariable" class is given in Table 2.4.8.1.

Table 2.4.8.1 Description of the "identifier" characteristic for the "ResponseVariable" class.
Descriptor Definition
Characteristic Name identifier
Data Type Identifier
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1]
Description The identifier of the Response Variable.

2.4.8.2 "cardinality" Characteristic Description

The description of the "cardinality" characteristic for the "ResponseVariable" class is given in Table 2.4.8.2.

Table 2.4.8.2 Description of the "cardinality" characteristic for the "ResponseVariable" class.
Descriptor Definition
Characteristic Name cardinality
Data Type CardinalityEnum
Value Space Enumerated value set of: { multiple | ordered | record | single }
Scope Local ("-")
Multiplicity [1]
Description The cardinality of the Response Variable, taken from the corresponding declaration or definition.

2.4.8.3 "baseType" Characteristic Description

The description of the "baseType" characteristic for the "ResponseVariable" class is given in Table 2.4.8.3.

Table 2.4.8.3 Description of the "baseType" characteristic for the "ResponseVariable" class.
Descriptor Definition
Characteristic Name baseType
Data Type BaseTypeEnum
Value Space Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope Local ("-")
Multiplicity [0..1]
Description The base type of the Response Variable, taken from the corresponding declaration of definition. This value is omitted only for variables with record cardinality.

2.4.8.4 "choiceSequence" Characteristic Description

The description of the "choiceSequence" characteristic for the "ResponseVariable" class is given in Table 2.4.8.4.

Table 2.4.8.4 Description of the "choiceSequence" characteristic for the "ResponseVariable" class.
Descriptor Definition
Characteristic Name choiceSequence
Data Type IdentifierList
Value Space The list consist of values of data-type(s): NCName (Primitive-type)
Scope Local ("-")
Multiplicity [0..1]
Description When a response variable is bound to an interaction that supports the shuffling of choices, the sequence of choices experienced by the candidate will vary between test instances. When shuffling is in effect, the sequence of choices should be reported as a sequence of choice identifiers using this attribute.

2.4.8.5 "scoreStatus" Characteristic Description

The description of the "scoreStatus" characteristic for the "ResponseVariable" class is given in Table 2.4.8.5.

Table 2.4.8.5 Description of the "scoreStatus" characteristic for the "ResponseVariable" class.
Descriptor Definition
Characteristic Name scoreStatus
Data Type ScoreStatusEnum
Value Space Enumerated value set of: { notscored | scored }
Scope Local ("-")
Multiplicity [0..1]
Description The scoreStatus attribute expresses whether or not the itemResult's scoring is complete. For example, an itemResult may not be completely scored at the time of reporting the itemResult i.e. when an item requires human scoring and a human score has not yet been provided. In this case, the scoreStatus attribute would have a value of "notscored". Upon completion of scoring (regardless of the scoring method) the scoreStatus value should be set to "scored".

2.4.8.6 "answeredStatus" Characteristic Description

The description of the "answeredStatus" characteristic for the "ResponseVariable" class is given in Table 2.4.8.6.

Table 2.4.8.6 Description of the "answeredStatus" characteristic for the "ResponseVariable" class.
Descriptor Definition
Characteristic Name answeredStatus
Data Type AnsweredStatusEnum
Value Space Enumerated value set of: { notpresented | presented | attempted | answered }
Scope Local ("-")
Multiplicity [0..1]
Description The 'answeredStatus' attribute expresses the candidate's level of interaction with an item. If the item was selected but never presented to the candidate then the answeredStatus is "notpresented" (missing). If a candidate has not met any of the item's minimum valid response criteria, then the answeredStatus is "presented" (skipped). If a candidate has met some, but not all, of an item's minimum valid response criteria, then the answeredStatus is "attempted" (responded and invalid). If a candidate has met all of an item's minimum valid response criteria, then the answeredStatus is "answered" (responded and valid).

2.4.8.7 "correctResponse" Attribute Description

The description of the "correctResponse" attribute for the "ResponseVariable" class is given in Table 2.4.8.7.

Table 2.4.8.7 Description of the "correctResponse" attribute for the "ResponseVariable" class.
Descriptor Definition
Attribute Name correctResponse
Data Type CorrectResponse
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0..1]
Description The correct response may be output as part of the report if desired. Systems are not limited to reporting correct responses declared in responseDeclarations. For example, a correct response may be set by a templateRule or may simply have been suppressed from the declaration passed to the delivery engine e.g. for security.

2.4.8.8 "candidateResponse" Attribute Description

The description of the "candidateResponse" attribute for the "ResponseVariable" class is given in Table 2.4.8.8.

Table 2.4.8.8 Description of the "candidateResponse" attribute for the "ResponseVariable" class.
Descriptor Definition
Attribute Name candidateResponse
Data Type CandidateResponse
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [1]
Description The response given by the candidate.

2.4.9 TestResult Class Description

The data model for the "TestResult" class is shown in Figure 2.4.9 and the accompanying definition in Table 2.4.9.

UML diagram of the TestResult class.

Figure 2.4.9 - TestResult class definitions.

Table 2.4.9 Description of the "TestResult" class.
Descriptor Definition
Class Name TestResult
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics The set of characteristics are:
Children The set of children attributes are:
Description The container for the Test result. When a test result is given the following item results must relate only to items that were selected for presentation as part of the corresponding test session. Furthermore, all items selected for presentation should be reported with a corresponding itemResult.

2.4.9.1 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "TestResult" class is given in Table 2.4.9.1.

Table 2.4.9.1 Description of the "identifier" characteristic for the "TestResult" class.
Descriptor Definition
Characteristic Name identifier
Data Type Identifier
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1]
Description The identifier of the test for which this is a result.

2.4.9.2 "datestamp" Characteristic Description

The description of the "datestamp" characteristic for the "TestResult" class is given in Table 2.4.9.2.

Table 2.4.9.2 Description of the "datestamp" characteristic for the "TestResult" class.
Descriptor Definition
Characteristic Name datestamp
Data Type DateTime
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1]
Description The date stamp of when this result was recorded.

2.4.9.3 "itemVariable" Attribute Description

The description of the "itemVariable" attribute for the "TestResult" class is given in Table 2.4.9.3.

Table 2.4.9.3 Description of the "itemVariable" attribute for the "TestResult" class.
Descriptor Definition
Attribute Name itemVariable
Data Type ItemVariable
Value Space Abstract Container [ Selection ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The values of the test outcomes and any durations that were tracked during the test. Note that durations are reported as built-in test-level response variables with name duration. The duration of individual test parts or sections being distinguished by prefixing them with the associated identifier as described in Assessment Test, Section and Item Information Model [QTI-INFO-30]. This is an abstract attribute and so a child named 'itemVariable' will not appear in an instance.

2.4.9.4 "support" Attribute Description

The description of the "support" attribute for the "TestResult" class is given in Table 2.4.9.4.

Table 2.4.9.4 Description of the "support" attribute for the "TestResult" class.
Descriptor Definition
Attribute Name support
Data Type Support
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The set of associated support features used in the delivery of the Test. These features are aligned to the QTI profile of the 1EdTech Access for All Personal Needs and Preferences (AfA PNP).

2.5. Abstract Class Descriptions

This Section is NORMATIVE.

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.

2.5.1 ItemVariable Class Description

The data model for the "ItemVariable" class is shown in Figure 2.5.1 and the accompanying definition in Table 2.5.1

UML diagram of the ItemVariable class.

Figure 2.5.1 - ItemVariable class definitions.

Table 2.5.1 Description of the "ItemVariable" class.
Descriptor Definition
Class Name ItemVariable
Class Type Abstract Container [ Selection ]
Parents The set of parent classes are:
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:
Description The values of the test outcomes and any durations that were tracked during the test. Note that durations are reported as built-in test-level response variables with name duration. The duration of individual test parts or sections being distinguished by prefixing them with the associated identifier as described in Assessment Test, Section and Item Information Model. This is an abstract class that creates a selection of either an 'oucomeVariable', 'responseVariable' or 'templateVariable'.

2.5.1.1 "responseVariable" Attribute Description

The description of the "responseVariable" attribute for the "ItemVariable" class is given in Table 2.5.1.1.

Table 2.5.1.1 Description of the "responseVariable" attribute for the "ItemVariable" class.
Descriptor Definition
Attribute Name responseVariable
Data Type ResponseVariable
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [1]
Description Indicates that a Response Variable is being reported. This is the value of one of the responses associated with an Item in the corresponding ASI instance.

2.5.1.2 "templateVariable" Attribute Description

The description of the "templateVariable" attribute for the "ItemVariable" class is given in Table 2.5.1.2.

Table 2.5.1.2 Description of the "templateVariable" attribute for the "ItemVariable" class.
Descriptor Definition
Attribute Name templateVariable
Data Type ContextTemplateVariable
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [1]
Description Indicates that a Template Variable is being reported. This is the value of one of the template variables associated with an Item in the corresponding ASI instance.

2.5.1.3 "outcomeVariable" Attribute Description

The description of the "outcomeVariable" attribute for the "ItemVariable" class is given in Table 2.5.1.3.

Table 2.5.1.3 Description of the "outcomeVariable" attribute for the "ItemVariable" class.
Descriptor Definition
Attribute Name outcomeVariable
Data Type OutcomeVariable
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [1]
Description Indicates that an Outcome Variable is being reported. This is the value of one of the outcomes associated with either an Item or Test and defined in the corresponding ASI instance.

2.5.1.4 "contextVariable" Attribute Description

The description of the "contextVariable" attribute for the "ItemVariable" class is given in Table 2.5.1.4.

Table 2.5.1.4 Description of the "contextVariable" attribute for the "ItemVariable" class.
Descriptor Definition
Attribute Name contextVariable
Data Type ContextTemplateVariable
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [1]
Description Indicates that an Context Variable is being reported. This is the value of one of the context variables associated with an Item in the corresponding ASI instance

2.6. Derived Class Descriptions

This Section is NORMATIVE.

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.

2.6.1 DateTime Class Description

The data model for the "DateTime" class is shown in Figure 2.6.1 and the accompanying definition in Table 2.6.1.

UML diagram of the DateTime class.

Figure 2.6.1 - DateTime class definitions.

Table 2.6.1 Description of the "DateTime" class.
Descriptor Definition
Class Name DateTime
Class Type Container [ DerivedType ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes The set of classes from which this class is derived:
Characteristics There are no characteristics.
Children The set of children attributes are:
Description A fully-specified calendar date and time from the reference system defined in [ISO 8601]. Valid years range from 0000-9999.

2.6.1.1 "pattern" Attribute Description

The description of the "pattern" attribute for the "DateTime" class is given in Table 2.6.1.

Table 2.6.1 Description of the "pattern" attribute for the "DateTime" class.
Descriptor Definition
Attribute Name pattern
Data Type String (Primitive-type)
Value Space See Appendix A1.3.
Default = "[0-9]{4}.*".
Scope Local ("-")
Multiplicity [1]
Description Ensures the year value is in the range 0000-9999.

2.6.2 Identifier Class Description

The data model for the "Identifier" class is shown in Figure 2.6.2 and the accompanying definition in Table 2.6.2.

UML diagram of the Identifier class.

Figure 2.6.2 - Identifier class definitions.

Table 2.6.2 Description of the "Identifier" class.
Descriptor Definition
Class Name Identifier
Class Type Container [ DerivedType ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes The set of classes from which this class is derived:
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.

2.6.3 SessionIdentifier Class Description

The data model for the "SessionIdentifier" class is shown in Figure 2.6.3 and the accompanying definition in Table 2.6.3.

UML diagram of the SessionIdentifier class.

Figure 2.6.3 - SessionIdentifier class definitions.

Table 2.6.3 Description of the "SessionIdentifier" class.
Descriptor Definition
Class Name SessionIdentifier
Class Type Container [ DerivedType ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes The set of classes from which this class is derived:
Characteristics The set of characteristics are:
Children There are no children.
Description The system that creates the result (for example, the test delivery system) should assign a session identifier that it can use to identify the session.

2.6.3.1 "sourceID" Characteristic Description

The description of the "sourceID" characteristic for the "SessionIdentifier" class is given in Table 2.6.3.1.

Table 2.6.3.1 Description of the "sourceID" characteristic for the "SessionIdentifier" class.
Descriptor Definition
Characteristic Name sourceID
Data Type AnyURI (Primitive-type)
Value Space See Appendix A1.3.
Scope Local ("-")
Multiplicity [1]
Description A unique identifier of the system which added this identifier to the result.

2.6.3.2 "identifier" Characteristic Description

The description of the "identifier" characteristic for the "SessionIdentifier" class is given in Table 2.6.3.2.

Table 2.6.3.2 Description of the "identifier" characteristic for the "SessionIdentifier" class.
Descriptor Definition
Characteristic Name identifier
Data Type Identifier
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1]
Description The system that creates the report should add a session identifier. Subsequent systems that process the results might use their own identifier for the session and should add this too if the result is exported again for further transport.

2.6.4 Support Class Description

The data model for the "Support" class is shown in Figure 2.6.4 and the accompanying definition in Table 2.6.4.

UML diagram of the Support class.

Figure 2.6.4 - Support class definitions.

Table 2.6.4 Description of the "Support" class.
Descriptor Definition
Class Name Support
Class Type Container [ DerivedType ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes The set of classes from which this class is derived:
Characteristics The set of characteristics are:
Children There are no children.
Description This is the container for the definition of an associated support feature. These features are aligned to the QTI profile of the 1EdTech Access for All Personal Needs and Preferences (AfA PNP).

2.6.4.1 "name" Characteristic Description

The description of the "name" characteristic for the "Support" class is given in Table 2.6.4.1.

Table 2.6.4.1 Description of the "name" characteristic for the "Support" class.
Descriptor Definition
Characteristic Name name
Data Type NCName (Primitive-type)
Value Space See Appendix A1.3.
Scope Local ("-")
Multiplicity [1]
Description The label for the support being described. [[ ED NOTE: Should this be defined as an extensible enumerated vocabulary using the QTI Profile of the AfA PNP as the base? ]]

2.6.4.2 "assignment" Characteristic Description

The description of the "assignment" characteristic for the "Support" class is given in Table 2.6.4.2.

Table 2.6.4.2 Description of the "assignment" characteristic for the "Support" class.
Descriptor Definition
Characteristic Name assignment
Data Type AssignmentEnum
Value Space Enumerated value set of: { assigned | universal | prohibited | inherit }
Scope Local ("-")
Multiplicity [1]
Description This attribute is used to denote the scoping for the associated support. The value space is an enumerated vocabulary.

2.6.4.3 "value" Characteristic Description

The description of the "value" characteristic for the "Support" class is given in Table 2.6.4.3.

Table 2.6.4.3 Description of the "value" characteristic for the "Support" class.
Descriptor Definition
Characteristic Name value
Data Type NormalizedString (Primitive-type)
Value Space See Appendix A1.3.
Scope Local ("-")
Multiplicity [0..1]
Description The value for the support being set. A value MUST NOT be present when 'assignment=prohibited'.

2.6.4.4 "language" Characteristic Description

The description of the "language" characteristic for the "Support" class is given in Table 2.6.4.4.

Table 2.6.4.4 Description of the "language" characteristic for the "Support" class.
Descriptor Definition
Characteristic Name language
Data Type Language (Primitive-type)
Value Space See Appendix A1.3.
Scope Local ("-")
Multiplicity [0..1]
Description Optional information about the language of the content.

2.6.5 UniqueIdentifierRef Class Description

The data model for the "UniqueIdentifierRef" class is shown in Figure 2.6.5 and the accompanying definition in Table 2.6.5.

UML diagram of the UniqueIdentifierRef class.

Figure 2.6.5 - UniqueIdentifierRef class definitions.

Table 2.6.5 Description of the "UniqueIdentifierRef" class.
Descriptor Definition
Class Name UniqueIdentifierRef
Class Type Container [ DerivedType ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes The set of classes from which this class is derived:
Characteristics There are no characteristics.
Children There are no children.
Description A reference to an object that was declared using the 'UniqueIdentifier' data-type (in the context of the core QTI specification). 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.

2.6.6 Value Class Description

The data model for the "Value" class is shown in Figure 2.6.6 and the accompanying definition in Table 2.6.6.

UML diagram of the Value class.

Figure 2.6.6 - Value class definitions.

Table 2.6.6 Description of the "Value" class.
Descriptor Definition
Class Name Value
Class Type Container [ DerivedType ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes The set of classes from which this class is derived:
Characteristics The set of characteristics are:
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.

2.6.6.1 "fieldIdentifier" Characteristic Description

The description of the "fieldIdentifier" characteristic for the "Value" class is given in Table 2.6.6.1.

Table 2.6.6.1 Description of the "fieldIdentifier" characteristic for the "Value" class.
Descriptor Definition
Characteristic Name fieldIdentifier
Data Type Identifier
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0..1]
Description This attribute is only used for specifying the field identifier for a value that forms part of a record.

2.6.6.2 "baseType" Characteristic Description

The description of the "baseType" characteristic for the "Value" class is given in Table 2.6.6.2.

Table 2.6.6.2 Description of the "baseType" characteristic for the "Value" class.
Descriptor Definition
Characteristic Name baseType
Data Type BaseTypeEnum
Value Space Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope Local ("-")
Multiplicity [0..1]
Description This attribute is only used for specifying the base-type of a value that forms part of a record.

2.7. Enumerated Vocabulary Descriptions

This Section is NORMATIVE.

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.

2.7.1 AnsweredStatusEnum Vocabulary Description

This is the definition for the set of permitted values for the 'answeredStatus' attribute for the 'ItemResult' class. The data model for the "AnsweredStatusEnum" enumerated class is shown in Figure 2.7.1 and the accompanying vocabulary definition in Table 2.7.1.

UML diagram of the AnsweredStatusEnum class.

Figure 2.7.1 - AnsweredStatusEnum class definitions.

Table 2.7.1 Description of the "AnsweredStatusEnum" enumerated vocabulary terms.
Term Definition
answered If a candidate has met all of an item's minimum valid response criteria, then the answeredStatus value MUST be set as "answered" (responded and valid).
attempted If a candidate has met some, but not all, of an item's minimum valid response criteria, then the answeredStatus value MUST be set as "attempted" (responded and invalid).
notpresented If the item was selected but never presented to the candidate then the answeredStatus value MUST be set as "notpresented" (missing).
presented If a candidate has not met any of the item's minimum valid response criteria, then the answeredStatus MUST be set as "presented" (skipped).

2.7.2 AssignmentEnum Vocabulary Description

The permitted set of values for the scoping of a support feature. The data model for the "AssignmentEnum" enumerated class is shown in Figure 2.7.2 and the accompanying vocabulary definition in Table 2.7.2.

UML diagram of the AssignmentEnum class.

Figure 2.7.2 - AssignmentEnum class definitions.

Table 2.7.2 Description of the "AssignmentEnum" enumerated vocabulary terms.
Term Definition
assigned The support feature has been set. See the associated 'value' attribute.
inherit The support feature is being used and the value assigned MUST be taken from the parent structure.
prohibited Use of this support feature is prohibited.
universal The support feature is being used and the globally assigned/default value MUST be used.

2.7.3 BaseTypeEnum 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 modeling. The data model for the "BaseTypeEnum" enumerated class is shown in Figure 2.7.3 and the accompanying vocabulary definition in Table 2.7.3.

UML diagram of the BaseTypeEnum class.

Figure 2.7.3 - BaseTypeEnum class definitions.

Table 2.7.3 Description of the "BaseTypeEnum" enumerated vocabulary terms.
Term Definition
boolean The set of boolean values is the same as the set of values defined by the boolean primitiveType.
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].

2.7.4 CardinalityEnum Vocabulary Description

An expression or itemVariable can either be single-valued or multi-valued. 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. 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. When used as the value of a response variable this distinction is typified by the difference between selecting choices in a multi-response multi-choice task and ranking choices in an order objects task. In the language of [ISO 11404] a container with multiple cardinality is a "bag-type", a container with ordered cardinality is a "sequence-type" and a container with record cardinality is a "record-type". 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. The data model for the "CardinalityEnum" enumerated class is shown in Figure 2.7.4 and the accompanying vocabulary definition in Table 2.7.4.

UML diagram of the CardinalityEnum class.

Figure 2.7.4 - CardinalityEnum class definitions.

Table 2.7.4 Description of the "CardinalityEnum" 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 An ordered valued expression (or variable) is also a container but ordered. A container contains a list of values, this list may be empty in which case it is treated as NULL. All the values in an ordered container are drawn from the same value set, however, containers may contain multiple occurrences of the same value.
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 An expression or itemVariable that is single-valued.

2.7.5 ExternalScoredEnum Vocabulary Description

Identifies the set of modes for the external scoring of the Item. The data model for the "ExternalScoredEnum" enumerated class is shown in Figure 2.7.5 and the accompanying vocabulary definition in Table 2.7.5.

UML diagram of the ExternalScoredEnum class.

Figure 2.7.5 - ExternalScoredEnum class definitions.

Table 2.7.5 Description of the "ExternalScoredEnum" enumerated vocabulary terms.
Term Definition
externalMachine An external scoring system will be used to score the Item.
human A human must score the Item.

2.7.6 ScoreStatusEnum Vocabulary Description

This is the set of permitted values for the 'scoreStatus' attribute for the ItemResult class. The data model for the "ScoreStatusEnum" enumerated class is shown in Figure 2.7.6 and the accompanying vocabulary definition in Table 2.7.6.

UML diagram of the ScoreStatusEnum class.

Figure 2.7.6 - ScoreStatusEnum class definitions.

Table 2.7.6 Description of the "ScoreStatusEnum" enumerated vocabulary terms.
Term Definition
notscored Denotes that scoring for the 'itemResult' is incomplete.
scored Denotes that scoring for the 'itemResult' is complete.

2.7.7 SessionStatusEnum Vocabulary Description

The session status is used to keep track of the status of the item variables in an item session. The data model for the "SessionStatusEnum" enumerated class is shown in Figure 2.7.7 and the accompanying vocabulary definition in Table 2.7.7.

UML diagram of the SessionStatusEnum class.

Figure 2.7.7 - SessionStatusEnum class definitions.

Table 2.7.7 Description of the "SessionStatusEnum" enumerated vocabulary terms.
Term Definition
final The value to use when the item variables represent the values at the end of an attempt after response processing has taken place. In other words, after the outcome values have been updated to reflect the values of the response variables.
initial The value to use for sessions in the initial state, as described above. This value can only be used to describe sessions for which the response variable numAttempts is 0. The values of the variables are set according to the rules defined in the appropriate declarations (see responseDeclaration, outcomeDeclaration and templateDeclaration).
pendingExternalScoring The value to use when the response processing rules are processed, but the score is NOT final because the 'external-scored' property for the outcome variable was set to 'true'.
pendingResponseProcessing The value to use when the item variables represent the values of the response variables after submission but before response processing has taken place. Again, the outcomes are those assigned at the end of the previous attempt as they are awaiting response processing.
pendingSubmission The value to use when the item variables represent a snapshot of the current values during an attempt (in other words, while interacting or suspended). The values of the response variables represent work in progress that has not yet been submitted for response processing by the candidate. The values of the outcome variables represent the values assigned during response processing at the end of the previous attempt or, in the case of the first attempt, the default values given in the variable declarations.

2.8. 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.

2.8.1 IdentifierList Class Description

The data model for the "IdentifierList" class is shown in Figure 2.8.1 and the accompanying definition in Table 2.8.1.

UML diagram of the IdentifierList class.

Figure 2.8.1 - IdentifierList class definitions.

Table 2.8.1 Description of the "IdentifierList" class.
Descriptor Definition
Class Name IdentifierList
Class Type Container [ List ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes The set of classes from which this class is derived:
Characteristics There are no characteristics.
Children There are no children.
Description This denotes a list of identifiers. The identifiers are separated by a space. An identifier is simply a logical reference to another object in the item, section or assessment. 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.

2.9. Enumerated Vocabulary List Descriptions

This Section is NORMATIVE.

All of the enumerated lists used within this Information Model are defined in this Section. The syntax and semantics for this representation is described in Appendix A1.4.

2.9.1 ViewEnum 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 "ViewEnum" enumerated list class is shown in Figure 2.9.1 and the accompanying vocabulary definition in Table 2.9.1.

UML diagram of the ViewEnum enumeration list class.

Figure 2.9.1 - ViewEnum class definitions.

Table 2.9.1 Description of the "ViewEnum" 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'.

toc | top

3. XSD Binding

3.1. XSD Binding Overview

The XSD binding is described using a set of tables derived from the UML representation and a set of XML code snippets. The binding description consists of:

An explanation of the structure and terms used XSD binding tables is given in Appendix B.

3.2. UML to XML/XSD Mapping

This Section is NOT NORMATIVE.

3.2.1 Root Attribute UML/XSD Mapping

The UML/XSD Mapping for the UML Root Attributes to the XSD Root Elements is given in Table 3.2.1. The syntax and semantics for this representation is described in Appendix B1.1.

Table 3.2.1 UML/XSD Mapping for the Root Attributes.
Attribute Name UML Class XSD Name XSD Type XSD Data Type
assessmentResult AssessmentResult assessmentResult Element AssessmentResultDType

3.2.2 Root Class UML/XSD Mapping

The syntax and semantics for the Root Class UML/XSD mapping representations is described in Appendix B1.2.

3.2.2.1 AssessmentResult Root Class Mapping

The UML/XSD Mapping for the "AssessmentResult" Root Class is given in Table 3.2.2.1.

Table 3.2.2.1 UML/XSD Mapping for the "AssessmentResult" Root Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AssessmentResult Root Container [ Sequence ] - N/A - AssessmentResultDType ComplexType
  • context
Attribute Context [1] context Element (Local)
  • testResult
Attribute TestResult [0..1] testResult Element (Local)
  • itemResult
Attribute ItemResult [0.. *] itemResult Element (Local)

3.2.3 Class UML/XSD Mapping

The syntax and semantics for the Data Class UML/XSD mapping representations is described in Appendix B1.2.

3.2.3.1 CandidateResponse Class Mapping

The UML/XSD Mapping for the "CandidateResponse" Class is given in Table 3.2.3.1.

Table 3.2.3.1 UML/XSD Mapping for the "CandidateResponse" Core Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
CandidateResponse Core Container [ Sequence ] - N/A - CandidateResponseDType ComplexType
  • value
Attribute DT: Value (PT: NormalizedString) [0.. *] value Element (Local)

3.2.3.2 Context Class Mapping

The UML/XSD Mapping for the "Context" Class is given in Table 3.2.3.2.

Table 3.2.3.2 UML/XSD Mapping for the "Context" Core Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Context Core Container [ Sequence ] - N/A - ContextDType ComplexType
  • sourcedId
Characteristic DT: Identifier (PT: NCName) [0..1] sourcedId Attribute (Local)
  • sessionIdentifier
Attribute DT: SessionIdentifier (PT: Empty) [0.. *] sessionIdentifier Element (Local)

3.2.3.3 ContextTemplateVariable Class Mapping

The UML/XSD Mapping for the "ContextTemplateVariable" Class is given in Table 3.2.3.3.

Table 3.2.3.3 UML/XSD Mapping for the "ContextTemplateVariable" Core Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
ContextTemplateVariable Core Container [ Sequence ] - N/A - ContextTemplateVariableDType ComplexType
  • identifier
Characteristic DT: Identifier (PT: NCName) [1] identifier Attribute (Local)
  • cardinality
Characteristic [ Enumeration (CardinalityEnum) ] [1] cardinality Attribute (Local)
  • baseType
Characteristic [ Enumeration (BaseTypeEnum) ] [0..1] baseType Attribute (Local)
  • value
Attribute DT: Value (PT: NormalizedString) [0.. *] value Element (Local)

3.2.3.4 CorrectResponse Class Mapping

The UML/XSD Mapping for the "CorrectResponse" Class is given in Table 3.2.3.4.

Table 3.2.3.4 UML/XSD Mapping for the "CorrectResponse" Core Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
CorrectResponse Core Container [ Sequence ] - N/A - CorrectResponseDType ComplexType
  • interpretation
Characteristic PT: String [0..1] interpretation Attribute (Local)
  • value
Attribute DT: Value (PT: NormalizedString) [1.. *] value Element (Local)

3.2.3.5 ItemResult Class Mapping

The UML/XSD Mapping for the "ItemResult" Class is given in Table 3.2.3.5.

Table 3.2.3.5 UML/XSD Mapping for the "ItemResult" Core Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
ItemResult Core Container [ Sequence ] - N/A - ItemResultDType ComplexType
  • identifier
Characteristic DT: Identifier (PT: NCName) [1] identifier Attribute (Local)
  • sequenceIndex
Characteristic PT: Integer [0..1] sequenceIndex Attribute (Local)
  • datestamp
Characteristic DT: DateTime (PT: DateTime) [1] datestamp Attribute (Local)
  • sessionStatus
Characteristic [ Enumeration (SessionStatusEnum) ] [1] sessionStatus Attribute (Local)
  • responseVariable
Attribute ResponseVariable XOR [0.. *]
[1]
responseVariable Element (Local)
  • templateVariable
Attribute ContextTemplateVariable XOR [0.. *]
[1]
templateVariable Element (Local)
  • outcomeVariable
Attribute OutcomeVariable XOR [0.. *]
[1]
outcomeVariable Element (Local)
  • contextVariable
Attribute ContextTemplateVariable XOR [0.. *]
[1]
contextVariable Element (Local)
  • candidateComment
Attribute PT: String [0..1] candidateComment Element (Local)
  • support
Attribute DT: Support (PT: Empty) [0.. *] support Element (Local)

3.2.3.6 OutcomeInformation Class Mapping

The UML/XSD Mapping for the "OutcomeInformation" Class is given in Table 3.2.3.6.

Table 3.2.3.6 UML/XSD Mapping for the "OutcomeInformation" Core Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
OutcomeInformation Core Container [ Sequence ] - N/A - OutcomeInformationDType ComplexType
  • extensions
Attribute PT: Namespace [0.. *] extensions Element (Global)

3.2.3.7 OutcomeVariable Class Mapping

The UML/XSD Mapping for the "OutcomeVariable" Class is given in Table 3.2.3.7.

Table 3.2.3.7 UML/XSD Mapping for the "OutcomeVariable" Core Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
OutcomeVariable Core Container [ Sequence ] - N/A - OutcomeVariableDType ComplexType
  • identifier
Characteristic DT: Identifier (PT: NCName) [1] identifier Attribute (Local)
  • cardinality
Characteristic [ Enumeration (CardinalityEnum) ] [1] cardinality Attribute (Local)
  • baseType
Characteristic [ Enumeration (BaseTypeEnum) ] [0..1] baseType Attribute (Local)
  • view
Characteristic [ Enumeration List (ViewEnum) ] [0..1] view Attribute (Local)
  • interpretation
Characteristic PT: String [0..1] interpretation Attribute (Local)
  • longInterpretation
Characteristic PT: AnyURI [0..1] longInterpretation Attribute (Local)
  • normalMaximum
Characteristic PT: Double [0..1] normalMaximum Attribute (Local)
  • normalMinimum
Characteristic PT: Double [0..1] normalMinimum Attribute (Local)
  • masteryValue
Characteristic PT: Double [0..1] masteryValue Attribute (Local)
  • external-scored
Characteristic [ Enumeration (ExternalScoredEnum) ] [0..1] external-scored Attribute (Local)
  • variable-identifier-ref
Characteristic DT: UniqueIdentifierRef (PT: NCName) [0..1] variable-identifier-ref Attribute (Local)
  • value
Attribute DT: Value (PT: NormalizedString) [0.. *] value Element (Local)
  • outcomeInformation
Attribute OutcomeInformation [0..1] outcomeInformation Element (Local)

3.2.3.8 ResponseVariable Class Mapping

The UML/XSD Mapping for the "ResponseVariable" Class is given in Table 3.2.3.8.

Table 3.2.3.8 UML/XSD Mapping for the "ResponseVariable" Core Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
ResponseVariable Core Container [ Sequence ] - N/A - ResponseVariableDType ComplexType
  • identifier
Characteristic DT: Identifier (PT: NCName) [1] identifier Attribute (Local)
  • cardinality
Characteristic [ Enumeration (CardinalityEnum) ] [1] cardinality Attribute (Local)
  • baseType
Characteristic [ Enumeration (BaseTypeEnum) ] [0..1] baseType Attribute (Local)
  • choiceSequence
Characteristic [ List (IdentifierList) ] [0..1] choiceSequence Attribute (Local)
  • scoreStatus
Characteristic [ Enumeration (ScoreStatusEnum) ] [0..1] scoreStatus Attribute (Local)
  • answeredStatus
Characteristic [ Enumeration (AnsweredStatusEnum) ] [0..1] answeredStatus Attribute (Local)
  • correctResponse
Attribute CorrectResponse [0..1] correctResponse Element (Local)
  • candidateResponse
Attribute CandidateResponse [1] candidateResponse Element (Local)

3.2.3.9 TestResult Class Mapping

The UML/XSD Mapping for the "TestResult" Class is given in Table 3.2.3.9.

Table 3.2.3.9 UML/XSD Mapping for the "TestResult" Core Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
TestResult Core Container [ Sequence ] - N/A - TestResultDType ComplexType
  • identifier
Characteristic DT: Identifier (PT: NCName) [1] identifier Attribute (Local)
  • datestamp
Characteristic DT: DateTime (PT: DateTime) [1] datestamp Attribute (Local)
  • responseVariable
Attribute ResponseVariable XOR [0.. *]
[1]
responseVariable Element (Local)
  • templateVariable
Attribute ContextTemplateVariable XOR [0.. *]
[1]
templateVariable Element (Local)
  • outcomeVariable
Attribute OutcomeVariable XOR [0.. *]
[1]
outcomeVariable Element (Local)
  • contextVariable
Attribute ContextTemplateVariable XOR [0.. *]
[1]
contextVariable Element (Local)
  • support
Attribute DT: Support (PT: Empty) [0.. *] support Element (Local)

3.2.4 Derived UML/XSD Mapping

The syntax and semantics for the Derived Class UML/XSD mapping representations is described in Appendix B1.2.

3.2.4.1 DateTime Derived Class Mapping

The UML/XSD Mapping for the "DateTime" Derived Class is given in Table 3.2.4.1.

Table 3.2.4.1 UML/XSD Mapping for the "DateTime" Derived Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
DateTime Derived PT: DateTime - N/A - DateTimeDType SimpleType
  • pattern
Attribute PT: String [1] [ No XML instance visibility ] Restriction (Pattern) on the Primitive Type.

The syntax and semantics for the Derived Class UML/XSD mapping representations is described in Appendix B1.2.

3.2.4.2 Identifier Derived Class Mapping

The UML/XSD Mapping for the "Identifier" Derived Class is given in Table 3.2.4.2.

Table 3.2.4.2 UML/XSD Mapping for the "Identifier" Derived Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Identifier Derived PT: NCName - N/A - IdentifierDType SimpleType

The syntax and semantics for the Derived Class UML/XSD mapping representations is described in Appendix B1.2.

3.2.4.3 SessionIdentifier Derived Class Mapping

The UML/XSD Mapping for the "SessionIdentifier" Derived Class is given in Table 3.2.4.3.

Table 3.2.4.3 UML/XSD Mapping for the "SessionIdentifier" Derived Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
SessionIdentifier Derived PT: Empty - N/A - SessionIdentifierDType ComplexType
  • sourceID
Characteristic PT: AnyURI [1] sourceID Attribute (Local)
  • identifier
Characteristic DT: Identifier (PT: NCName) [1] identifier Attribute (Local)

The syntax and semantics for the Derived Class UML/XSD mapping representations is described in Appendix B1.2.

3.2.4.4 Support Derived Class Mapping

The UML/XSD Mapping for the "Support" Derived Class is given in Table 3.2.4.4.

Table 3.2.4.4 UML/XSD Mapping for the "Support" Derived Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Support Derived PT: Empty - N/A - SupportDType ComplexType
  • name
Characteristic PT: NCName [1] name Attribute (Local)
  • assignment
Characteristic [ Enumeration (AssignmentEnum) ] [1] assignment Attribute (Local)
  • value
Characteristic PT: NormalizedString [0..1] value Attribute (Local)
  • language
Characteristic PT: Language [0..1] xml:lang Attribute (Local)

The syntax and semantics for the Derived Class UML/XSD mapping representations is described in Appendix B1.2.

3.2.4.5 UniqueIdentifierRef Derived Class Mapping

The UML/XSD Mapping for the "UniqueIdentifierRef" Derived Class is given in Table 3.2.4.5.

Table 3.2.4.5 UML/XSD Mapping for the "UniqueIdentifierRef" Derived Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
UniqueIdentifierRef Derived PT: NCName - N/A - UniqueIdentifierRefDType SimpleType

The syntax and semantics for the Derived Class UML/XSD mapping representations is described in Appendix B1.2.

3.2.4.6 Value Derived Class Mapping

The UML/XSD Mapping for the "Value" Derived Class is given in Table 3.2.4.6.

Table 3.2.4.6 UML/XSD Mapping for the "Value" Derived Class.
Information Model Details XSD Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Value Derived PT: NormalizedString - N/A - ValueDType ComplexType
  • fieldIdentifier
Characteristic DT: Identifier (PT: NCName) [0..1] fieldIdentifier Attribute (Local)
  • baseType
Characteristic [ Enumeration (BaseTypeEnum) ] [0..1] baseType Attribute (Local)

3.2.5 Enumerated Class UML/XSD Mapping

The definition of the set of enumerated data-types used in this specification is given in Table 3.2.5. The syntax and semantics for the Enumerated Class UML/XSD mapping representations is described in Appendix B1.3.

Table 3.2.5 The UML/XSD Map Enumerated Class Definitions.
Enumeration Class Name Description
AnsweredStatusEnum Enumerated value set of: { notpresented | presented | attempted | answered }.
AssignmentEnum Enumerated value set of: { assigned | universal | prohibited | inherit }.
BaseTypeEnum Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }.
CardinalityEnum Enumerated value set of: { multiple | ordered | record | single }.
ExternalScoredEnum Enumerated value set of: { externalMachine | human }.
ScoreStatusEnum Enumerated value set of: { notscored | scored }.
SessionStatusEnum Enumerated value set of: { final | initial | pendingExternalScoring | pendingResponseProcessing | pendingSubmission }.

3.2.6 Enumerated List Class UML/XSD Mapping

The definition of the set of enumerated data-types used in this specification is given in Table 3.2.6. The syntax and semantics for the Enumerated List Class UML/XSD mapping representations is described in Appendix B1.3.

Table 3.2.6 The UML/XSD Map Enumerated List Class Definitions.
Enumeration List Class Name Description
ViewEnum Enumerated List value set of: { author | candidate | proctor | scorer | testConstructor | tutor }.

3.2.7 List Class UML/XSD Mapping

The definition of the set of list data-types used in this specification is given in Table 3.2.7. The syntax and semantics for the List Class UML/XSD mapping representations is described in Appendix B1.4.

Table 3.2.7 The UML/XSD Map List Class Definitions.
List Class Name Description
IdentifierList This is a list of values each of data-type: NCName

3.2.8 Union Class UML/XSD Mapping

There are no union class definitions.

3.2.9 Primitive Type UML/XSD Mapping

The definition of the set of primitive data-types used in this specification is given in Table 3.2.9. The syntax and semantics for the Primitive Type UML/XSD mapping representations is described in Appendix B1.5.

Table 3.2.9 The UML/XSD Map Primitive Type Definitions.
Primitive Type Name Description
AnyURI This is mapped to the XML "xs:anyURI" data-type.
DateTime This is mapped to the XML "xs:dateTime" data-type.
Double This is mapped to the XML "xs:double" data-type.
Empty This is used to denote an element that will not contain a value i.e. it is empty. Within the XSD a Special Data-type is declared called "EmptyPrimitiveType.Type". This ensures that the associated element has NO children (but it will have XML attributes). The XSD code is:
<xs:complexType name="EmptyPrimitiveTypeDType">
    <xs:complexContent>
        <xs:restriction base="xs:anyType" />
    </xs:complexContent>
</xs:complexType>
                    
Integer This is mapped to the XML "xs:integer" data-type.
Language This is mapped to the "xml:language" structure. This is used to indicate the associated language.
NCName This is mapped to the XML "xs:NCName" data-type.
Namespace This provides a strict namespace-based extension facility. When the extension is applied to elements the XSD code is:
<xs:group name="grpStrict.any">
    <xs:annotation>
        <xs:documentation>
            Any namespaced element from any namespace, other than the target namespace, may be included within an "any" element.
            The namespace for the imported element must be defined in the instance, and the schema must be imported.
            The extension has a definition of "strict" i.e. they must have their own namespace.
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
        <xs:any namespace = "##other" processContents = "strict" minOccurs = "0" maxOccurs = "unbounded" />
    </xs:sequence>
</xs:group>
                    
The XSD code for the extension of attributes is:
<xs:anyAttribute namespace = "##other" processContents = "strict" />
                    
NormalizedString This is mapped to the XML "xs:normalizedString" data-type.
String This is mapped to the XML "xs:string" data-type.

3.3. Filenames and Namespaces

This Section is NORMATIVE.

3.3.1 Target Namespace Details

Target Namespace: http://www.imsglobal.org/xsd/imsqti_result_v3p0
Schema Location: https://purl.imsglobal.org/spec/qti/v3p0/schema/xsd/imsqti_resultv3p0_v1p0.xsd

3.3.2 Imported Namespace Details

There are no imported classes.

3.3.3 Implicit Namespace Details

Feature: XSD Language
Namespace: http://www.w3.org/2001/XMLSchema
Schema Location: XML Processor Resolved.
Prefix: xs

Feature: XML Features
Namespace: http://www.w3.org/XML/1998/namespace
Schema Location: https://purl.imsglobal.org/spec/w3/2001/schema/xsd/xml.xsd
Prefix: xml

3.4. Description of the XSD

This Section is NORMATIVE.

3.4.1 Root Element Descriptions

The syntax and semantics for the Root Element XSD representations is described in Appendix B1.6.

3.4.1.1 "assessmentResult" Root Element Description

The XSD description for the "assessmentResult" Root Element is given in Table 3.4.1.1.

Table 3.4.1.1 XSD description for the "assessmentResult" Root Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the assessmentResult root element.
Type AssessmentResultDType
Properties
Content simple
MinOccurs 1
MaxOccurs 1
Model context{1..1}, testResult{0..1}, itemResult{0..*}
Attributes None.
Source
<xs:element name="assessmentResult" type="AssessmentResultDType" />

3.4.2 Global Element Descriptions

There are no global elements.

3.4.3 Attribute Group Descriptions

There are no attribute groups.

3.4.4 Root Complex Type Descriptions

The syntax and semantics for the Root ComplexType XSD representations is described in Appendix B1.7.

3.4.4.1 AssessmentResultDType Root Complex Type Description

The XSD description for the "AssessmentResultDType" Root ComplexType is given in Table 3.4.4.1.

Table 3.4.4.1 XSD description for the "AssessmentResultDType" Root Complex Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Annotations This is the root class to contain the assessment result data. An Assessment Result 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.
Diagram XSD diagram of the AssessmentResult root complexType.
Properties
Abstract false
Mixed false
Used by
Root Elements assessmentResult
Model context{1..1}, testResult{0..1}, itemResult{0..*}
Attributes None.
Source
<xs:complexType name="AssessmentResultDType" abstract="false" mixed="false">
    <xs:sequence>
        <xs:element name="context" type="ContextDType" minOccurs="1" maxOccurs="1" />
        <xs:element name="testResult" type="TestResultDType" minOccurs="0" maxOccurs="1" />
        <xs:element name="itemResult" type="ItemResultDType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
</xs:complexType>
                        
"context" Local Element Description

The XSD description for the "context" Local Element is given in the Table below.

Table - XSD description for the "context/AssessmentResultDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the context local element in the AssessmentResult root class.
Type ContextDType
Properties
Content complex
MinOccurs 1
MaxOccurs 1
Mixed false
Model sessionIdentifier{0..*}
Attributes
QName Type Inherited Scope Use Default
sourcedId IdentifierDType No Local Optional -
Source
<xs:element name="context" type="ContextDType" minOccurs="1" maxOccurs="1" />
"testResult" Local Element Description

The XSD description for the "testResult" Local Element is given in the Table below.

Table - XSD description for the "testResult/AssessmentResultDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the testResult local element in the AssessmentResult root class.
Type TestResultDType
Properties
Content complex
MinOccurs 0
MaxOccurs 1
Mixed false
Model ( responseVariable{1..1} | templateVariable{1..1} | outcomeVariable{1..1} | contextVariable{1..1} ){0..*}, support{0..*}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
datestamp DateTimeDType No Local Required -
Source
<xs:element name="testResult" type="TestResultDType" minOccurs="0" maxOccurs="1" />
"itemResult" Local Element Description

The XSD description for the "itemResult" Local Element is given in the Table below.

Table - XSD description for the "itemResult/AssessmentResultDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the itemResult local element in the AssessmentResult root class.
Type ItemResultDType
Properties
Content complex
MinOccurs 0
MaxOccurs unbounded
Mixed false
Model ( responseVariable{1..1} | templateVariable{1..1} | outcomeVariable{1..1} | contextVariable{1..1} ){0..*}, candidateComment{0..1}, support{0..*}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
sequenceIndex xs:integer No Local Optional -
datestamp DateTimeDType No Local Required -
sessionStatus [ Enumeration ] No Local Required -
Source
<xs:element name="itemResult" type="ItemResultDType" minOccurs="0" maxOccurs="unbounded" />

3.4.5 Core Complex Type Descriptions

The syntax and semantics for the Core ComplexType XSD representations is described in Appendix B1.7.

3.4.5.1 "CandidateResponseDType" Core Complex Type Description

The XSD description for the "CandidateResponseDType" Core ComplexType is given in Table 3.4.5.1.

Table 3.4.5.1 XSD description for the "CandidateResponseDType" Core Complex Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Annotations The response given by the candidate.
Diagram XSD diagram of the CandidateResponse core complexType.
Properties
Abstract false
Mixed false
Used by
Elements candidateResponse/ResponseVariableDType
Model value{0..*}
Attributes None.
Source
<xs:complexType name="CandidateResponseDType" abstract="false" mixed="false">
    <xs:sequence>
        <xs:element name="value" type="ValueDType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
</xs:complexType>
                        
"value" Local Element Description

The XSD description for the "value" Local Element is given in the Table below.

Table - XSD description for the "value/CandidateResponseDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the value local element in the CandidateResponse core class.
Type ValueDType
Properties
Content simple
MinOccurs 0
MaxOccurs unbounded
Model N/A
Attributes
QName Type Inherited Scope Use Default
fieldIdentifier IdentifierDType No Local Optional -
baseType [ Enumeration ] No Local Optional -
Source
<xs:element name="value" type="ValueDType" minOccurs="0" maxOccurs="unbounded" />

3.4.5.2 "ContextDType" Core Complex Type Description

The XSD description for the "ContextDType" Core ComplexType is given in Table 3.4.5.2.

Table 3.4.5.2 XSD description for the "ContextDType" Core Complex Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Annotations This is the context for the 'assessmentResult'. It provides the corresponding set of identifiers.
Diagram XSD diagram of the Context core complexType.
Properties
Abstract false
Mixed false
Used by
Elements context/AssessmentResultDType
Model sessionIdentifier{0..*}
Attributes
QName Type Inherited Scope Use Default
sourcedId IdentifierDType No Local Optional -
Source
<xs:complexType name="ContextDType" abstract="false" mixed="false">
    <xs:sequence>
        <xs:element name="sessionIdentifier" type="SessionIdentifierDType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="sourcedId" use="optional" type="IdentifierDType" />
</xs:complexType>
                        
"sourcedId" Local Attribute Description

The XSD description for the "sourcedId" Local Attribute is given in the Table below.

Table - XSD description for the "sourcedId/ContextDType" Local Attribute.
Namespace No namespace.
Type IdentifierDType
Properties
Use optional
Source
<xs:attribute name="sourcedId" use="optional" type="IdentifierDType" />
                        
"sessionIdentifier" Local Element Description

The XSD description for the "sessionIdentifier" Local Element is given in the Table below.

Table - XSD description for the "sessionIdentifier/ContextDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the sessionIdentifier local element in the Context core class.
Type SessionIdentifierDType
Type Hierarchy EmptyPrimitiveTypeDType
^---SessionIdentifierDType
Properties
Content simple
MinOccurs 0
MaxOccurs unbounded
Model Empty
Attributes
QName Type Inherited Scope Use Default
sourceID xs:anyURI No Local Required -
identifier IdentifierDType No Local Required -
Source
<xs:element name="sessionIdentifier" type="SessionIdentifierDType" minOccurs="0" maxOccurs="unbounded" />

3.4.5.3 "ContextTemplateVariableDType" Core Complex Type Description

The XSD description for the "ContextTemplateVariableDType" Core ComplexType is given in Table 3.4.5.3.

Table 3.4.5.3 XSD description for the "ContextTemplateVariableDType" Core Complex Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Annotations The Item result information related to a Template or a Context Variable.
Diagram XSD diagram of the ContextTemplateVariable core complexType.
Properties
Abstract false
Mixed false
Used by
Elements contextVariable/ItemResultDType, contextVariable/TestResultDType, templateVariable/ItemResultDType, templateVariable/TestResultDType
Model value{0..*}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
cardinality [ Enumeration ] No Local Required -
baseType [ Enumeration ] No Local Optional -
Source
<xs:complexType name="ContextTemplateVariableDType" abstract="false" mixed="false">
    <xs:sequence>
        <xs:element name="value" type="ValueDType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="identifier" use="required" type="IdentifierDType" />
    <xs:attribute name="cardinality" use="required">
        <xs:simpleType>
            <xs:annotation>
                <xs:documentation source="documentation">
                    An expression or itemVariable can either be single-valued or multi-valued. A multi-valued 
                    expression (or variable) is called a container. A container contains a list of values, th-
                    is 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 mult-
                    iple occurrences of the same value. In other words, [A,B,B,C] is an acceptable value for a
                    container. A container with cardinality multiple and value [A,B,C] is equivalent to a sim-
                    ilar one with value [C,B,A] whereas these two values would be considered distinct for con-
                    tainers with cardinality ordered. When used as the value of a response variable this dist-
                    inction is typified by the difference between selecting choices in a multi-response multi-
                    -choice task and ranking choices in an order objects task. In the language of [ISO 11404] 
                    a container with multiple cardinality is a "bag-type", a container with ordered cardinali-
                    ty is a "sequence-type" and a container with record cardinality is a "record-type". The r-
                    ecord 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 str-
                    ingInteraction abstract class.                                                            
                </xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:enumeration value="multiple" />
                <xs:enumeration value="ordered" />
                <xs:enumeration value="record" />
                <xs:enumeration value="single" />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="baseType" use="optional">
        <xs:simpleType>
            <xs:annotation>
                <xs:documentation source="documentation">
                    A base-type is simply a description of a set of atomic values (atomic to this specificati-
                    on). Note that several of the baseTypes used to define the runtime data model have identi-
                    cal 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 modeling.                           
                </xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:enumeration value="boolean" />
                <xs:enumeration value="directedPair" />
                <xs:enumeration value="duration" />
                <xs:enumeration value="file" />
                <xs:enumeration value="float" />
                <xs:enumeration value="identifier" />
                <xs:enumeration value="integer" />
                <xs:enumeration value="pair" />
                <xs:enumeration value="point" />
                <xs:enumeration value="string" />
                <xs:enumeration value="uri" />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
</xs:complexType>
                        
"identifier" Local Attribute Description

The XSD description for the "identifier" Local Attribute is given in the Table below.

Table - XSD description for the "identifier/ContextTemplateVariableDType" Local Attribute.
Namespace No namespace.
Type IdentifierDType
Properties
Use required
Source
<xs:attribute name="identifier" use="required" type="IdentifierDType" />
                        
"cardinality" Local Attribute Description

The XSD description for the "cardinality" Local Attribute is given in the Table below.

Table - XSD description for the "cardinality/ContextTemplateVariableDType" Local Attribute.
Namespace No namespace.
Type Enumeration [Restriction of "xs:string"]
Properties
Use required
Facets
Enumeration multiple
Enumeration ordered
Enumeration record
Enumeration single
Source
<xs:attribute name="cardinality" use="required">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="multiple" />
            <xs:enumeration value="ordered" />
            <xs:enumeration value="record" />
            <xs:enumeration value="single" />
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
                        
"baseType" Local Attribute Description

The XSD description for the "baseType" Local Attribute is given in the Table below.

Table - XSD description for the "baseType/ContextTemplateVariableDType" Local Attribute.
Namespace No namespace.
Type Enumeration [Restriction of "xs:string"]
Properties
Use optional
Facets
Enumeration boolean
Enumeration directedPair
Enumeration duration
Enumeration file
Enumeration float
Enumeration identifier
Enumeration integer
Enumeration pair
Enumeration point
Enumeration string
Enumeration uri
Source
<xs:attribute name="baseType" use="optional">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="boolean" />
            <xs:enumeration value="directedPair" />
            <xs:enumeration value="duration" />
            <xs:enumeration value="file" />
            <xs:enumeration value="float" />
            <xs:enumeration value="identifier" />
            <xs:enumeration value="integer" />
            <xs:enumeration value="pair" />
            <xs:enumeration value="point" />
            <xs:enumeration value="string" />
            <xs:enumeration value="uri" />
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
                        
"value" Local Element Description

The XSD description for the "value" Local Element is given in the Table below.

Table - XSD description for the "value/ContextTemplateVariableDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the value local element in the ContextTemplateVariable core class.
Type ValueDType
Properties
Content simple
MinOccurs 0
MaxOccurs unbounded
Model N/A
Attributes
QName Type Inherited Scope Use Default
fieldIdentifier IdentifierDType No Local Optional -
baseType [ Enumeration ] No Local Optional -
Source
<xs:element name="value" type="ValueDType" minOccurs="0" maxOccurs="unbounded" />

3.4.5.4 "CorrectResponseDType" Core Complex Type Description

The XSD description for the "CorrectResponseDType" Core ComplexType is given in Table 3.4.5.4.

Table 3.4.5.4 XSD description for the "CorrectResponseDType" Core Complex Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Annotations The correct response may be output as part of the report if desired. Systems are not limited to reporting correct responses declared in responseDeclarations. For example, a correct response may be set by a templateRule or may simply have been suppressed from the declaration passed to the delivery engine e.g. for security.
Diagram XSD diagram of the CorrectResponse core complexType.
Properties
Abstract false
Mixed false
Used by
Elements correctResponse/ResponseVariableDType
Model value{1..*}
Attributes
QName Type Inherited Scope Use Default
interpretation xs:string No Local Optional -
Source
<xs:complexType name="CorrectResponseDType" abstract="false" mixed="false">
    <xs:sequence>
        <xs:element name="value" type="ValueDType" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="interpretation" use="optional" type="xs:string" />
</xs:complexType>
                        
"interpretation" Local Attribute Description

The XSD description for the "interpretation" Local Attribute is given in the Table below.

Table - XSD description for the "interpretation/CorrectResponseDType" Local Attribute.
Namespace No namespace.
Type xs:string
Properties
Use optional
Source
<xs:attribute name="interpretation" use="optional" type="xs:string" />
                        
"value" Local Element Description

The XSD description for the "value" Local Element is given in the Table below.

Table - XSD description for the "value/CorrectResponseDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the value local element in the CorrectResponse core class.
Type ValueDType
Properties
Content simple
MinOccurs 1
MaxOccurs unbounded
Model N/A
Attributes
QName Type Inherited Scope Use Default
fieldIdentifier IdentifierDType No Local Optional -
baseType [ Enumeration ] No Local Optional -
Source
<xs:element name="value" type="ValueDType" minOccurs="1" maxOccurs="unbounded" />

3.4.5.5 "ItemResultDType" Core Complex Type Description

The XSD description for the "ItemResultDType" Core ComplexType is given in Table 3.4.5.5.

Table 3.4.5.5 XSD description for the "ItemResultDType" Core Complex Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Annotations The result of an item session is reported with an itemResult. A report may contain multiple results for the same instance of an item representing multiple attempts, progression through an adaptive item or even more detailed tracking. In these cases, each item result must have a different datestamp.
Diagram XSD diagram of the ItemResult core complexType.
Properties
Abstract false
Mixed false
Used by
Elements itemResult/AssessmentResultDType
Model ( responseVariable{1..1} | templateVariable{1..1} | outcomeVariable{1..1} | contextVariable{1..1} ){0..*}, candidateComment{0..1}, support{0..*}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
sequenceIndex xs:integer No Local Optional -
datestamp DateTimeDType No Local Required -
sessionStatus [ Enumeration ] No Local Required -
Source
<xs:complexType name="ItemResultDType" abstract="false" mixed="false">
    <xs:sequence>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="responseVariable" type="ResponseVariableDType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="templateVariable" type="ContextTemplateVariableDType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="outcomeVariable" type="OutcomeVariableDType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="contextVariable" type="ContextTemplateVariableDType" minOccurs="1" maxOccurs="1"/>
        </xs:choice>
        <xs:element name="candidateComment" type="xs:string" minOccurs="0" maxOccurs="1" />
        <xs:element name="support" type="SupportDType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="identifier" use="required" type="IdentifierDType" />
    <xs:attribute name="sequenceIndex" use="optional" type="xs:integer" />
    <xs:attribute name="datestamp" use="required" type="DateTimeDType" />
    <xs:attribute name="sessionStatus" use="required">
        <xs:simpleType>
            <xs:annotation>
                <xs:documentation source="documentation">
                    The session status is used to keep track of the status of the item variables in an item s-
                    ession.                                                                                   
                </xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:enumeration value="final" />
                <xs:enumeration value="initial" />
                <xs:enumeration value="pendingExternalScoring" />
                <xs:enumeration value="pendingResponseProcessing" />
                <xs:enumeration value="pendingSubmission" />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
</xs:complexType>
                        
"identifier" Local Attribute Description

The XSD description for the "identifier" Local Attribute is given in the Table below.

Table - XSD description for the "identifier/ItemResultDType" Local Attribute.
Namespace No namespace.
Type IdentifierDType
Properties
Use required
Source
<xs:attribute name="identifier" use="required" type="IdentifierDType" />
                        
"sequenceIndex" Local Attribute Description

The XSD description for the "sequenceIndex" Local Attribute is given in the Table below.

Table - XSD description for the "sequenceIndex/ItemResultDType" Local Attribute.
Namespace No namespace.
Type xs:integer
Properties
Use optional
Source
<xs:attribute name="sequenceIndex" use="optional" type="xs:integer" />
                        
"datestamp" Local Attribute Description

The XSD description for the "datestamp" Local Attribute is given in the Table below.

Table - XSD description for the "datestamp/ItemResultDType" Local Attribute.
Namespace No namespace.
Type DateTimeDType
Properties
Use required
Facets
Pattern [0-9]{4}.*
Source
<xs:attribute name="datestamp" use="required" type="DateTimeDType" />
                        
"sessionStatus" Local Attribute Description

The XSD description for the "sessionStatus" Local Attribute is given in the Table below.

Table - XSD description for the "sessionStatus/ItemResultDType" Local Attribute.
Namespace No namespace.
Type Enumeration [Restriction of "xs:string"]
Properties
Use required
Facets
Enumeration final
Enumeration initial
Enumeration pendingExternalScoring
Enumeration pendingResponseProcessing
Enumeration pendingSubmission
Source
<xs:attribute name="sessionStatus" use="required">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="final" />
            <xs:enumeration value="initial" />
            <xs:enumeration value="pendingExternalScoring" />
            <xs:enumeration value="pendingResponseProcessing" />
            <xs:enumeration value="pendingSubmission" />
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
                        
"responseVariable" Local Element Description

The XSD description for the "responseVariable" Local Element is given in the Table below.

Table - XSD description for the "responseVariable/ItemResultDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the responseVariable local element in the ItemVariable core class.
Type ResponseVariableDType
Properties
Content complex
MinOccurs 1
MaxOccurs 1
Mixed false
Model correctResponse{0..1}, candidateResponse{1..1}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
cardinality [ Enumeration ] No Local Required -
baseType [ Enumeration ] No Local Optional -
choiceSequence List of IdentifierListDType No Local Optional -
scoreStatus [ Enumeration ] No Local Optional -
answeredStatus [ Enumeration ] No Local Optional -
Source
<xs:element name="responseVariable" type="ResponseVariableDType" minOccurs="1" maxOccurs="1" />
"templateVariable" Local Element Description

The XSD description for the "templateVariable" Local Element is given in the Table below.

Table - XSD description for the "templateVariable/ItemResultDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the templateVariable local element in the ItemVariable core class.
Type ContextTemplateVariableDType
Properties
Content complex
MinOccurs 1
MaxOccurs 1
Mixed false
Model value{0..*}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
cardinality [ Enumeration ] No Local Required -
baseType [ Enumeration ] No Local Optional -
Source
<xs:element name="templateVariable" type="ContextTemplateVariableDType" minOccurs="1" maxOccurs="1" />
"outcomeVariable" Local Element Description

The XSD description for the "outcomeVariable" Local Element is given in the Table below.

Table - XSD description for the "outcomeVariable/ItemResultDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the outcomeVariable local element in the ItemVariable core class.
Type OutcomeVariableDType
Properties
Content complex
MinOccurs 1
MaxOccurs 1
Mixed false
Model value{0..*}, outcomeInformation{0..1}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
cardinality [ Enumeration ] No Local Required -
baseType [ Enumeration ] No Local Optional -
view Enumerated List of ViewEnumDType No Local Optional -
interpretation xs:string No Local Optional -
longInterpretation xs:anyURI No Local Optional -
normalMaximum xs:double No Local Optional -
normalMinimum xs:double No Local Optional -
masteryValue xs:double No Local Optional -
external-scored [ Enumeration ] No Local Optional -
variable-identifier-ref UniqueIdentifierRefDType No Local Optional -
Source
<xs:element name="outcomeVariable" type="OutcomeVariableDType" minOccurs="1" maxOccurs="1" />
"contextVariable" Local Element Description

The XSD description for the "contextVariable" Local Element is given in the Table below.

Table - XSD description for the "contextVariable/ItemResultDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the contextVariable local element in the ItemVariable core class.
Type ContextTemplateVariableDType
Properties
Content complex
MinOccurs 1
MaxOccurs 1
Mixed false
Model value{0..*}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
cardinality [ Enumeration ] No Local Required -
baseType [ Enumeration ] No Local Optional -
Source
<xs:element name="contextVariable" type="ContextTemplateVariableDType" minOccurs="1" maxOccurs="1" />
"candidateComment" Local Element Description

The XSD description for the "candidateComment" Local Element is given in the Table below.

Table - XSD description for the "candidateComment/ItemResultDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the candidateComment local element in the ItemResult core class.
Type xs:string
Properties
Content simple
MinOccurs 0
MaxOccurs 1
Model N/A
Attributes None.
Source
<xs:element name="candidateComment" type="xs:string" minOccurs="0" maxOccurs="1" />
"support" Local Element Description

The XSD description for the "support" Local Element is given in the Table below.

Table - XSD description for the "support/ItemResultDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the support local element in the ItemResult core class.
Type SupportDType
Type Hierarchy EmptyPrimitiveTypeDType
^---SupportDType
Properties
Content simple
MinOccurs 0
MaxOccurs unbounded
Model Empty
Attributes
QName Type Inherited Scope Use Default
name xs:NCName No Local Required -
assignment [ Enumeration ] No Local Required -
value xs:normalizedString No Local Optional -
language [ Import ] No Local Optional -
Source
<xs:element name="support" type="SupportDType" minOccurs="0" maxOccurs="unbounded" />

3.4.5.6 "OutcomeInformationDType" Core Complex Type Description

The XSD description for the "OutcomeInformationDType" Core ComplexType is given in Table 3.4.5.6.

Table 3.4.5.6 XSD description for the "OutcomeInformationDType" Core Complex Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Annotations The container for the extensions to the Outcome Variables.
Diagram XSD diagram of the OutcomeInformation core complexType.
Properties
Abstract false
Mixed false
Used by
Elements outcomeInformation/OutcomeVariableDType
Model Namespace-based Extension
Attributes None.
Source
<xs:complexType name="OutcomeInformationDType" abstract="false" mixed="false">
    <xs:sequence>
        <xs:group ref="grpStrict.any" />
    </xs:sequence>
</xs:complexType>
                        

3.4.5.7 "OutcomeVariableDType" Core Complex Type Description

The XSD description for the "OutcomeVariableDType" Core ComplexType is given in Table 3.4.5.7.

Table 3.4.5.7 XSD description for the "OutcomeVariableDType" Core Complex Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Annotations The Item result information related to an 'Outcome Variable'.
Diagram XSD diagram of the OutcomeVariable core complexType.
Properties
Abstract false
Mixed false
Used by
Elements outcomeVariable/ItemResultDType, outcomeVariable/TestResultDType
Model value{0..*}, outcomeInformation{0..1}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
cardinality [ Enumeration ] No Local Required -
baseType [ Enumeration ] No Local Optional -
view Enumerated List of ViewEnumDType No Local Optional -
interpretation xs:string No Local Optional -
longInterpretation xs:anyURI No Local Optional -
normalMaximum xs:double No Local Optional -
normalMinimum xs:double No Local Optional -
masteryValue xs:double No Local Optional -
external-scored [ Enumeration ] No Local Optional -
variable-identifier-ref UniqueIdentifierRefDType No Local Optional -
Source
<xs:complexType name="OutcomeVariableDType" abstract="false" mixed="false">
    <xs:sequence>
        <xs:element name="value" type="ValueDType" minOccurs="0" maxOccurs="unbounded" />
        <xs:element name="outcomeInformation" type="OutcomeInformationDType" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="identifier" use="required" type="IdentifierDType" />
    <xs:attribute name="cardinality" use="required">
        <xs:simpleType>
            <xs:annotation>
                <xs:documentation source="documentation">
                    An expression or itemVariable can either be single-valued or multi-valued. A multi-valued 
                    expression (or variable) is called a container. A container contains a list of values, th-
                    is 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 mult-
                    iple occurrences of the same value. In other words, [A,B,B,C] is an acceptable value for a
                    container. A container with cardinality multiple and value [A,B,C] is equivalent to a sim-
                    ilar one with value [C,B,A] whereas these two values would be considered distinct for con-
                    tainers with cardinality ordered. When used as the value of a response variable this dist-
                    inction is typified by the difference between selecting choices in a multi-response multi-
                    -choice task and ranking choices in an order objects task. In the language of [ISO 11404] 
                    a container with multiple cardinality is a "bag-type", a container with ordered cardinali-
                    ty is a "sequence-type" and a container with record cardinality is a "record-type". The r-
                    ecord 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 str-
                    ingInteraction abstract class.                                                            
                </xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:enumeration value="multiple" />
                <xs:enumeration value="ordered" />
                <xs:enumeration value="record" />
                <xs:enumeration value="single" />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="baseType" use="optional">
        <xs:simpleType>
            <xs:annotation>
                <xs:documentation source="documentation">
                    A base-type is simply a description of a set of atomic values (atomic to this specificati-
                    on). Note that several of the baseTypes used to define the runtime data model have identi-
                    cal 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 modeling.                           
                </xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:enumeration value="boolean" />
                <xs:enumeration value="directedPair" />
                <xs:enumeration value="duration" />
                <xs:enumeration value="file" />
                <xs:enumeration value="float" />
                <xs:enumeration value="identifier" />
                <xs:enumeration value="integer" />
                <xs:enumeration value="pair" />
                <xs:enumeration value="point" />
                <xs:enumeration value="string" />
                <xs:enumeration value="uri" />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="view" use="optional">
        <xs:simpleType>
            <xs:list itemType="ViewEnumDType" />
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="interpretation" use="optional" type="xs:string" />
    <xs:attribute name="longInterpretation" use="optional" type="xs:anyURI" />
    <xs:attribute name="normalMaximum" use="optional" type="xs:double" />
    <xs:attribute name="normalMinimum" use="optional" type="xs:double" />
    <xs:attribute name="masteryValue" use="optional" type="xs:double" />
    <xs:attribute name="external-scored" use="optional">
        <xs:simpleType>
            <xs:annotation>
                <xs:documentation source="documentation">
                    Identifies the set of modes for the external scoring of the Item.                         
                </xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:enumeration value="externalMachine" />
                <xs:enumeration value="human" />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="variable-identifier-ref" use="optional" type="UniqueIdentifierRefDType" />
</xs:complexType>
                        
"identifier" Local Attribute Description

The XSD description for the "identifier" Local Attribute is given in the Table below.

Table - XSD description for the "identifier/OutcomeVariableDType" Local Attribute.
Namespace No namespace.
Type IdentifierDType
Properties
Use required
Source
<xs:attribute name="identifier" use="required" type="IdentifierDType" />
                        
"cardinality" Local Attribute Description

The XSD description for the "cardinality" Local Attribute is given in the Table below.

Table - XSD description for the "cardinality/OutcomeVariableDType" Local Attribute.
Namespace No namespace.
Type Enumeration [Restriction of "xs:string"]
Properties
Use required
Facets
Enumeration multiple
Enumeration ordered
Enumeration record
Enumeration single
Source
<xs:attribute name="cardinality" use="required">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="multiple" />
            <xs:enumeration value="ordered" />
            <xs:enumeration value="record" />
            <xs:enumeration value="single" />
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
                        
"baseType" Local Attribute Description

The XSD description for the "baseType" Local Attribute is given in the Table below.

Table - XSD description for the "baseType/OutcomeVariableDType" Local Attribute.
Namespace No namespace.
Type Enumeration [Restriction of "xs:string"]
Properties
Use optional
Facets
Enumeration boolean
Enumeration directedPair
Enumeration duration
Enumeration file
Enumeration float
Enumeration identifier
Enumeration integer
Enumeration pair
Enumeration point
Enumeration string
Enumeration uri
Source
<xs:attribute name="baseType" use="optional">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="boolean" />
            <xs:enumeration value="directedPair" />
            <xs:enumeration value="duration" />
            <xs:enumeration value="file" />
            <xs:enumeration value="float" />
            <xs:enumeration value="identifier" />
            <xs:enumeration value="integer" />
            <xs:enumeration value="pair" />
            <xs:enumeration value="point" />
            <xs:enumeration value="string" />
            <xs:enumeration value="uri" />
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
                        
"view" Local Attribute Description

The XSD description for the "view" Local Attribute is given in the Table below.

Table - XSD description for the "view/OutcomeVariableDType" Local Attribute.
Namespace No namespace.
Type Enumeration List of ViewEnumDType
Properties
Use optional
Facets
Enumeration author
Enumeration candidate
Enumeration proctor
Enumeration scorer
Enumeration testConstructor
Enumeration tutor
Source
<xs:attribute name="view" use="optional">
    <xs:simpleType>
        <xs:list itemType="ViewEnumDType">
    </xs:simpleType>
</xs:attribute>
                        
"interpretation" Local Attribute Description

The XSD description for the "interpretation" Local Attribute is given in the Table below.

Table - XSD description for the "interpretation/OutcomeVariableDType" Local Attribute.
Namespace No namespace.
Type xs:string
Properties
Use optional
Source
<xs:attribute name="interpretation" use="optional" type="xs:string" />
                        
"longInterpretation" Local Attribute Description

The XSD description for the "longInterpretation" Local Attribute is given in the Table below.

Table - XSD description for the "longInterpretation/OutcomeVariableDType" Local Attribute.
Namespace No namespace.
Type xs:anyURI
Properties
Use optional
Source
<xs:attribute name="longInterpretation" use="optional" type="xs:anyURI" />
                        
"normalMaximum" Local Attribute Description

The XSD description for the "normalMaximum" Local Attribute is given in the Table below.

Table - XSD description for the "normalMaximum/OutcomeVariableDType" Local Attribute.
Namespace No namespace.
Type xs:double
Properties
Use optional
Source
<xs:attribute name="normalMaximum" use="optional" type="xs:double" />
                        
"normalMinimum" Local Attribute Description

The XSD description for the "normalMinimum" Local Attribute is given in the Table below.

Table - XSD description for the "normalMinimum/OutcomeVariableDType" Local Attribute.
Namespace No namespace.
Type xs:double
Properties
Use optional
Source
<xs:attribute name="normalMinimum" use="optional" type="xs:double" />
                        
"masteryValue" Local Attribute Description

The XSD description for the "masteryValue" Local Attribute is given in the Table below.

Table - XSD description for the "masteryValue/OutcomeVariableDType" Local Attribute.
Namespace No namespace.
Type xs:double
Properties
Use optional
Source
<xs:attribute name="masteryValue" use="optional" type="xs:double" />
                        
"external-scored" Local Attribute Description

The XSD description for the "external-scored" Local Attribute is given in the Table below.

Table - XSD description for the "external-scored/OutcomeVariableDType" Local Attribute.
Namespace No namespace.
Type Enumeration [Restriction of "xs:string"]
Properties
Use optional
Facets
Enumeration externalMachine
Enumeration human
Source
<xs:attribute name="external-scored" use="optional">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="externalMachine" />
            <xs:enumeration value="human" />
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
                        
"variable-identifier-ref" Local Attribute Description

The XSD description for the "variable-identifier-ref" Local Attribute is given in the Table below.

Table - XSD description for the "variable-identifier-ref/OutcomeVariableDType" Local Attribute.
Namespace No namespace.
Type UniqueIdentifierRefDType
Properties
Use optional
Source
<xs:attribute name="variable-identifier-ref" use="optional" type="UniqueIdentifierRefDType" />
                        
"value" Local Element Description

The XSD description for the "value" Local Element is given in the Table below.

Table - XSD description for the "value/OutcomeVariableDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the value local element in the OutcomeVariable core class.
Type ValueDType
Properties
Content simple
MinOccurs 0
MaxOccurs unbounded
Model N/A
Attributes
QName Type Inherited Scope Use Default
fieldIdentifier IdentifierDType No Local Optional -
baseType [ Enumeration ] No Local Optional -
Source
<xs:element name="value" type="ValueDType" minOccurs="0" maxOccurs="unbounded" />
"outcomeInformation" Local Element Description

The XSD description for the "outcomeInformation" Local Element is given in the Table below.

Table - XSD description for the "outcomeInformation/OutcomeVariableDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the outcomeInformation local element in the OutcomeVariable core class.
Type OutcomeInformationDType
Properties
Content complex
MinOccurs 0
MaxOccurs 1
Mixed false
Model Namespace-based Extension
Attributes None.
Source
<xs:element name="outcomeInformation" type="OutcomeInformationDType" minOccurs="0" maxOccurs="1" />

3.4.5.8 "ResponseVariableDType" Core Complex Type Description

The XSD description for the "ResponseVariableDType" Core ComplexType is given in Table 3.4.5.8.

Table 3.4.5.8 XSD description for the "ResponseVariableDType" Core Complex Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Annotations The Item result information related to a 'Response Variable'.
Diagram XSD diagram of the ResponseVariable core complexType.
Properties
Abstract false
Mixed false
Used by
Elements responseVariable/ItemResultDType, responseVariable/TestResultDType
Model correctResponse{0..1}, candidateResponse{1..1}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
cardinality [ Enumeration ] No Local Required -
baseType [ Enumeration ] No Local Optional -
choiceSequence List of IdentifierListDType No Local Optional -
scoreStatus [ Enumeration ] No Local Optional -
answeredStatus [ Enumeration ] No Local Optional -
Source
<xs:complexType name="ResponseVariableDType" abstract="false" mixed="false">
    <xs:sequence>
        <xs:element name="correctResponse" type="CorrectResponseDType" minOccurs="0" maxOccurs="1" />
        <xs:element name="candidateResponse" type="CandidateResponseDType" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="identifier" use="required" type="IdentifierDType" />
    <xs:attribute name="cardinality" use="required">
        <xs:simpleType>
            <xs:annotation>
                <xs:documentation source="documentation">
                    An expression or itemVariable can either be single-valued or multi-valued. A multi-valued 
                    expression (or variable) is called a container. A container contains a list of values, th-
                    is 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 mult-
                    iple occurrences of the same value. In other words, [A,B,B,C] is an acceptable value for a
                    container. A container with cardinality multiple and value [A,B,C] is equivalent to a sim-
                    ilar one with value [C,B,A] whereas these two values would be considered distinct for con-
                    tainers with cardinality ordered. When used as the value of a response variable this dist-
                    inction is typified by the difference between selecting choices in a multi-response multi-
                    -choice task and ranking choices in an order objects task. In the language of [ISO 11404] 
                    a container with multiple cardinality is a "bag-type", a container with ordered cardinali-
                    ty is a "sequence-type" and a container with record cardinality is a "record-type". The r-
                    ecord 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 str-
                    ingInteraction abstract class.                                                            
                </xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:enumeration value="multiple" />
                <xs:enumeration value="ordered" />
                <xs:enumeration value="record" />
                <xs:enumeration value="single" />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="baseType" use="optional">
        <xs:simpleType>
            <xs:annotation>
                <xs:documentation source="documentation">
                    A base-type is simply a description of a set of atomic values (atomic to this specificati-
                    on). Note that several of the baseTypes used to define the runtime data model have identi-
                    cal 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 modeling.                           
                </xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:enumeration value="boolean" />
                <xs:enumeration value="directedPair" />
                <xs:enumeration value="duration" />
                <xs:enumeration value="file" />
                <xs:enumeration value="float" />
                <xs:enumeration value="identifier" />
                <xs:enumeration value="integer" />
                <xs:enumeration value="pair" />
                <xs:enumeration value="point" />
                <xs:enumeration value="string" />
                <xs:enumeration value="uri" />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="choiceSequence" use="optional">
        <xs:simpleType>
            <xs:list itemType="IdentifierListDType" />
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="scoreStatus" use="optional">
        <xs:simpleType>
            <xs:annotation>
                <xs:documentation source="documentation">
                    This is the set of permitted values for the 'scoreStatus' attribute for the ItemResult cl-
                    ass.                                                                                      
                </xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:enumeration value="notscored" />
                <xs:enumeration value="scored" />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="answeredStatus" use="optional">
        <xs:simpleType>
            <xs:annotation>
                <xs:documentation source="documentation">
                    This is the definition for the set of permitted values for the 'answeredStatus' attribute 
                    for the 'ItemResult' class.                                                               
                </xs:documentation>
            </xs:annotation>
            <xs:restriction base="xs:string">
                <xs:enumeration value="notpresented" />
                <xs:enumeration value="presented" />
                <xs:enumeration value="attempted" />
                <xs:enumeration value="answered" />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
</xs:complexType>
                        
"identifier" Local Attribute Description

The XSD description for the "identifier" Local Attribute is given in the Table below.

Table - XSD description for the "identifier/ResponseVariableDType" Local Attribute.
Namespace No namespace.
Type IdentifierDType
Properties
Use required
Source
<xs:attribute name="identifier" use="required" type="IdentifierDType" />
                        
"cardinality" Local Attribute Description

The XSD description for the "cardinality" Local Attribute is given in the Table below.

Table - XSD description for the "cardinality/ResponseVariableDType" Local Attribute.
Namespace No namespace.
Type Enumeration [Restriction of "xs:string"]
Properties
Use required
Facets
Enumeration multiple
Enumeration ordered
Enumeration record
Enumeration single
Source
<xs:attribute name="cardinality" use="required">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="multiple" />
            <xs:enumeration value="ordered" />
            <xs:enumeration value="record" />
            <xs:enumeration value="single" />
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
                        
"baseType" Local Attribute Description

The XSD description for the "baseType" Local Attribute is given in the Table below.

Table - XSD description for the "baseType/ResponseVariableDType" Local Attribute.
Namespace No namespace.
Type Enumeration [Restriction of "xs:string"]
Properties
Use optional
Facets
Enumeration boolean
Enumeration directedPair
Enumeration duration
Enumeration file
Enumeration float
Enumeration identifier
Enumeration integer
Enumeration pair
Enumeration point
Enumeration string
Enumeration uri
Source
<xs:attribute name="baseType" use="optional">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="boolean" />
            <xs:enumeration value="directedPair" />
            <xs:enumeration value="duration" />
            <xs:enumeration value="file" />
            <xs:enumeration value="float" />
            <xs:enumeration value="identifier" />
            <xs:enumeration value="integer" />
            <xs:enumeration value="pair" />
            <xs:enumeration value="point" />
            <xs:enumeration value="string" />
            <xs:enumeration value="uri" />
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
                        
"choiceSequence" Local Attribute Description

The XSD description for the "choiceSequence" Local Attribute is given in the Table below.

Table - XSD description for the "choiceSequence/ResponseVariableDType" Local Attribute.
Namespace No namespace.
Type List of IdentifierListDType
Properties
Use optional
Source
<xs:attribute name="choiceSequence" use="optional">
    <xs:simpleType>
        <xs:list itemType="IdentifierListDType">
    </xs:simpleType>
</xs:attribute>
                        
"scoreStatus" Local Attribute Description

The XSD description for the "scoreStatus" Local Attribute is given in the Table below.

Table - XSD description for the "scoreStatus/ResponseVariableDType" Local Attribute.
Namespace No namespace.
Type Enumeration [Restriction of "xs:string"]
Properties
Use optional
Facets
Enumeration notscored
Enumeration scored
Source
<xs:attribute name="scoreStatus" use="optional">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="notscored" />
            <xs:enumeration value="scored" />
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
                        
"answeredStatus" Local Attribute Description

The XSD description for the "answeredStatus" Local Attribute is given in the Table below.

Table - XSD description for the "answeredStatus/ResponseVariableDType" Local Attribute.
Namespace No namespace.
Type Enumeration [Restriction of "xs:string"]
Properties
Use optional
Facets
Enumeration notpresented
Enumeration presented
Enumeration attempted
Enumeration answered
Source
<xs:attribute name="answeredStatus" use="optional">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="notpresented" />
            <xs:enumeration value="presented" />
            <xs:enumeration value="attempted" />
            <xs:enumeration value="answered" />
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
                        
"correctResponse" Local Element Description

The XSD description for the "correctResponse" Local Element is given in the Table below.

Table - XSD description for the "correctResponse/ResponseVariableDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the correctResponse local element in the ResponseVariable core class.
Type CorrectResponseDType
Properties
Content complex
MinOccurs 0
MaxOccurs 1
Mixed false
Model value{1..*}
Attributes
QName Type Inherited Scope Use Default
interpretation xs:string No Local Optional -
Source
<xs:element name="correctResponse" type="CorrectResponseDType" minOccurs="0" maxOccurs="1" />
"candidateResponse" Local Element Description

The XSD description for the "candidateResponse" Local Element is given in the Table below.

Table - XSD description for the "candidateResponse/ResponseVariableDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the candidateResponse local element in the ResponseVariable core class.
Type CandidateResponseDType
Properties
Content complex
MinOccurs 1
MaxOccurs 1
Mixed false
Model value{0..*}
Attributes None.
Source
<xs:element name="candidateResponse" type="CandidateResponseDType" minOccurs="1" maxOccurs="1" />

3.4.5.9 "TestResultDType" Core Complex Type Description

The XSD description for the "TestResultDType" Core ComplexType is given in Table 3.4.5.9.

Table 3.4.5.9 XSD description for the "TestResultDType" Core Complex Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Annotations The container for the Test result. When a test result is given the following item results must relate only to items that were selected for presentation as part of the corresponding test session. Furthermore, all items selected for presentation should be reported with a corresponding itemResult.
Diagram XSD diagram of the TestResult core complexType.
Properties
Abstract false
Mixed false
Used by
Elements testResult/AssessmentResultDType
Model ( responseVariable{1..1} | templateVariable{1..1} | outcomeVariable{1..1} | contextVariable{1..1} ){0..*}, support{0..*}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
datestamp DateTimeDType No Local Required -
Source
<xs:complexType name="TestResultDType" abstract="false" mixed="false">
    <xs:sequence>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="responseVariable" type="ResponseVariableDType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="templateVariable" type="ContextTemplateVariableDType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="outcomeVariable" type="OutcomeVariableDType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="contextVariable" type="ContextTemplateVariableDType" minOccurs="1" maxOccurs="1"/>
        </xs:choice>
        <xs:element name="support" type="SupportDType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="identifier" use="required" type="IdentifierDType" />
    <xs:attribute name="datestamp" use="required" type="DateTimeDType" />
</xs:complexType>
                        
"identifier" Local Attribute Description

The XSD description for the "identifier" Local Attribute is given in the Table below.

Table - XSD description for the "identifier/TestResultDType" Local Attribute.
Namespace No namespace.
Type IdentifierDType
Properties
Use required
Source
<xs:attribute name="identifier" use="required" type="IdentifierDType" />
                        
"datestamp" Local Attribute Description

The XSD description for the "datestamp" Local Attribute is given in the Table below.

Table - XSD description for the "datestamp/TestResultDType" Local Attribute.
Namespace No namespace.
Type DateTimeDType
Properties
Use required
Facets
Pattern [0-9]{4}.*
Source
<xs:attribute name="datestamp" use="required" type="DateTimeDType" />
                        
"responseVariable" Local Element Description

The XSD description for the "responseVariable" Local Element is given in the Table below.

Table - XSD description for the "responseVariable/TestResultDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the responseVariable local element in the ItemVariable core class.
Type ResponseVariableDType
Properties
Content complex
MinOccurs 1
MaxOccurs 1
Mixed false
Model correctResponse{0..1}, candidateResponse{1..1}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
cardinality [ Enumeration ] No Local Required -
baseType [ Enumeration ] No Local Optional -
choiceSequence List of IdentifierListDType No Local Optional -
scoreStatus [ Enumeration ] No Local Optional -
answeredStatus [ Enumeration ] No Local Optional -
Source
<xs:element name="responseVariable" type="ResponseVariableDType" minOccurs="1" maxOccurs="1" />
"templateVariable" Local Element Description

The XSD description for the "templateVariable" Local Element is given in the Table below.

Table - XSD description for the "templateVariable/TestResultDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the templateVariable local element in the ItemVariable core class.
Type ContextTemplateVariableDType
Properties
Content complex
MinOccurs 1
MaxOccurs 1
Mixed false
Model value{0..*}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
cardinality [ Enumeration ] No Local Required -
baseType [ Enumeration ] No Local Optional -
Source
<xs:element name="templateVariable" type="ContextTemplateVariableDType" minOccurs="1" maxOccurs="1" />
"outcomeVariable" Local Element Description

The XSD description for the "outcomeVariable" Local Element is given in the Table below.

Table - XSD description for the "outcomeVariable/TestResultDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the outcomeVariable local element in the ItemVariable core class.
Type OutcomeVariableDType
Properties
Content complex
MinOccurs 1
MaxOccurs 1
Mixed false
Model value{0..*}, outcomeInformation{0..1}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
cardinality [ Enumeration ] No Local Required -
baseType [ Enumeration ] No Local Optional -
view Enumerated List of ViewEnumDType No Local Optional -
interpretation xs:string No Local Optional -
longInterpretation xs:anyURI No Local Optional -
normalMaximum xs:double No Local Optional -
normalMinimum xs:double No Local Optional -
masteryValue xs:double No Local Optional -
external-scored [ Enumeration ] No Local Optional -
variable-identifier-ref UniqueIdentifierRefDType No Local Optional -
Source
<xs:element name="outcomeVariable" type="OutcomeVariableDType" minOccurs="1" maxOccurs="1" />
"contextVariable" Local Element Description

The XSD description for the "contextVariable" Local Element is given in the Table below.

Table - XSD description for the "contextVariable/TestResultDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the contextVariable local element in the ItemVariable core class.
Type ContextTemplateVariableDType
Properties
Content complex
MinOccurs 1
MaxOccurs 1
Mixed false
Model value{0..*}
Attributes
QName Type Inherited Scope Use Default
identifier IdentifierDType No Local Required -
cardinality [ Enumeration ] No Local Required -
baseType [ Enumeration ] No Local Optional -
Source
<xs:element name="contextVariable" type="ContextTemplateVariableDType" minOccurs="1" maxOccurs="1" />
"support" Local Element Description

The XSD description for the "support" Local Element is given in the Table below.

Table - XSD description for the "support/TestResultDType" Local Element.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the support local element in the TestResult core class.
Type SupportDType
Type Hierarchy EmptyPrimitiveTypeDType
^---SupportDType
Properties
Content simple
MinOccurs 0
MaxOccurs unbounded
Model Empty
Attributes
QName Type Inherited Scope Use Default
name xs:NCName No Local Required -
assignment [ Enumeration ] No Local Required -
value xs:normalizedString No Local Optional -
language [ Import ] No Local Optional -
Source
<xs:element name="support" type="SupportDType" minOccurs="0" maxOccurs="unbounded" />

3.4.6 Derived Complex Type Descriptions

The syntax and semantics for the Derived ComplexType XSD representations is described in Appendix B1.7.

3.4.6.1 "SessionIdentifierDType" Derived Complex Type Description

The XSD description for the "SessionIdentifierDType" Derived Complex Type is given in Table 3.4.6.1.

Table 3.4.6.1 XSD description for the "SessionIdentifierDType" Derived Complex Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Annotations The system that creates the result (for example, the test delivery system) should assign a session identifier that it can use to identify the session.
Diagram XSD diagram of the SessionIdentifier derived complexType.
Type Hierarchy EmptyPrimitiveTypeDType
^---SessionIdentifierDType
Properties
Abstract false
Mixed false
Used by
Elements sessionIdentifier/ContextDType
Model Empty
Attributes
QName Type Inherited Scope Use Default
sourceID xs:anyURI No Local Required -
identifier IdentifierDType No Local Required -
Source
<xs:complexType name="SessionIdentifierDType" abstract="false" mixed="false">
    <xs:simpleType>
        <xs:extension base="EmptyPrimitiveTypeDType">
            <xs:attribute name="sourceID" use="required" type="xs:anyURI" />
            <xs:attribute name="identifier" use="required" type="IdentifierDType" />
        </xs:extension>
    </xs:simpleType>
</xs:complexType>
                        
"sourceID" Local Attribute Description

The XSD description for the "sourceID" Local Attribute is given in the Table below.

Table - XSD description for the "sourceID/SessionIdentifierDType" Local Attribute.
Namespace No namespace.
Type xs:anyURI
Properties
Use required
Source
<xs:attribute name="sourceID" use="required" type="xs:anyURI" />
                        
"identifier" Local Attribute Description

The XSD description for the "identifier" Local Attribute is given in the Table below.

Table - XSD description for the "identifier/SessionIdentifierDType" Local Attribute.
Namespace No namespace.
Type IdentifierDType
Properties
Use required
Source
<xs:attribute name="identifier" use="required" type="IdentifierDType" />
                        

3.4.6.2 "SupportDType" Derived Complex Type Description

The XSD description for the "SupportDType" Derived Complex Type is given in Table 3.4.6.2.

Table 3.4.6.2 XSD description for the "SupportDType" Derived Complex Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Annotations This is the container for the definition of an associated support feature. These features are aligned to the QTI profile of the 1EdTech Access for All Personal Needs and Preferences (AfA PNP).
Diagram XSD diagram of the Support derived complexType.
Type Hierarchy EmptyPrimitiveTypeDType
^---SupportDType
Properties
Abstract false
Mixed false
Used by
Elements support/ItemResultDType, support/TestResultDType
Model Empty
Attributes
QName Type Inherited Scope Use Default
name xs:NCName No Local Required -
assignment [ Enumeration ] No Local Required -
value xs:normalizedString No Local Optional -
language [ Import ] No Local Optional -
Source
<xs:complexType name="SupportDType" abstract="false" mixed="false">
    <xs:simpleType>
        <xs:extension base="EmptyPrimitiveTypeDType">
            <xs:attribute name="name" use="required" type="xs:NCName" />
            <xs:attribute name="assignment" use="required">
                <xs:simpleType>
                    <xs:annotation>
                        <xs:documentation source="documentation">
                            The permitted set of values for the scoping of a support feature.                         
                        </xs:documentation>
                    </xs:annotation>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="assigned" />
                        <xs:enumeration value="universal" />
                        <xs:enumeration value="prohibited" />
                        <xs:enumeration value="inherit" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="value" use="optional" type="xs:normalizedString" />
            <xs:attribute ref="xml:lang" use="optional" />
        </xs:extension>
    </xs:simpleType>
</xs:complexType>
                        
"name" Local Attribute Description

The XSD description for the "name" Local Attribute is given in the Table below.

Table - XSD description for the "name/SupportDType" Local Attribute.
Namespace No namespace.
Type xs:NCName
Properties
Use required
Source
<xs:attribute name="name" use="required" type="xs:NCName" />
                        
"assignment" Local Attribute Description

The XSD description for the "assignment" Local Attribute is given in the Table below.

Table - XSD description for the "assignment/SupportDType" Local Attribute.
Namespace No namespace.
Type Enumeration [Restriction of "xs:string"]
Properties
Use required
Facets
Enumeration assigned
Enumeration universal
Enumeration prohibited
Enumeration inherit
Source
<xs:attribute name="assignment" use="required">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="assigned" />
            <xs:enumeration value="universal" />
            <xs:enumeration value="prohibited" />
            <xs:enumeration value="inherit" />
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
                        
"value" Local Attribute Description

The XSD description for the "value" Local Attribute is given in the Table below.

Table - XSD description for the "value/SupportDType" Local Attribute.
Namespace No namespace.
Type xs:normalizedString
Properties
Use optional
Source
<xs:attribute name="value" use="optional" type="xs:normalizedString" />
                        
"language" Local Attribute Description

The XSD description for the "language" Local Attribute is given in the Table below.

Table - XSD description for the "language/SupportDType" Local Attribute.
Namespace No namespace.
Type xml:lang
Properties
Use optional
Source
<xs:attribute ref="xml:lang" use="optional" />
                        

3.4.6.3 "ValueDType" Derived Complex Type Description

The XSD description for the "ValueDType" Derived Complex Type is given in Table 3.4.6.3.

Table 3.4.6.3 XSD description for the "ValueDType" Derived Complex Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Annotations 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.
Diagram XSD diagram of the Value derived complexType.
Properties
Abstract false
Mixed false
Used by
Elements value/CandidateResponseDType, value/ContextTemplateVariableDType, value/CorrectResponseDType, value/OutcomeVariableDType
Model N/A
Attributes
QName Type Inherited Scope Use Default
fieldIdentifier IdentifierDType No Local Optional -
baseType [ Enumeration ] No Local Optional -
Source
<xs:complexType name="ValueDType" abstract="false" mixed="false">
    <xs:simpleType>
        <xs:extension base="xs:normalizedString">
            <xs:attribute name="fieldIdentifier" use="optional" type="IdentifierDType" />
            <xs:attribute name="baseType" use="optional">
                <xs:simpleType>
                    <xs:annotation>
                        <xs:documentation source="documentation">
                            A base-type is simply a description of a set of atomic values (atomic to this specificati-
                            on). Note that several of the baseTypes used to define the runtime data model have identi-
                            cal 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 modeling.                           
                        </xs:documentation>
                    </xs:annotation>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="boolean" />
                        <xs:enumeration value="directedPair" />
                        <xs:enumeration value="duration" />
                        <xs:enumeration value="file" />
                        <xs:enumeration value="float" />
                        <xs:enumeration value="identifier" />
                        <xs:enumeration value="integer" />
                        <xs:enumeration value="pair" />
                        <xs:enumeration value="point" />
                        <xs:enumeration value="string" />
                        <xs:enumeration value="uri" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:extension>
    </xs:simpleType>
</xs:complexType>
                        
"fieldIdentifier" Local Attribute Description

The XSD description for the "fieldIdentifier" Local Attribute is given in the Table below.

Table - XSD description for the "fieldIdentifier/ValueDType" Local Attribute.
Namespace No namespace.
Type IdentifierDType
Properties
Use optional
Source
<xs:attribute name="fieldIdentifier" use="optional" type="IdentifierDType" />
                        
"baseType" Local Attribute Description

The XSD description for the "baseType" Local Attribute is given in the Table below.

Table - XSD description for the "baseType/ValueDType" Local Attribute.
Namespace No namespace.
Type Enumeration [Restriction of "xs:string"]
Properties
Use optional
Facets
Enumeration boolean
Enumeration directedPair
Enumeration duration
Enumeration file
Enumeration float
Enumeration identifier
Enumeration integer
Enumeration pair
Enumeration point
Enumeration string
Enumeration uri
Source
<xs:attribute name="baseType" use="optional">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="boolean" />
            <xs:enumeration value="directedPair" />
            <xs:enumeration value="duration" />
            <xs:enumeration value="file" />
            <xs:enumeration value="float" />
            <xs:enumeration value="identifier" />
            <xs:enumeration value="integer" />
            <xs:enumeration value="pair" />
            <xs:enumeration value="point" />
            <xs:enumeration value="string" />
            <xs:enumeration value="uri" />
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
                        

3.4.7 Simple Type Descriptions

The syntax and semantics for the SimpleType XSD representations is described in Appendix B1.8.

3.4.7.1 "DateTimeDType" Simple Type Description

The XSD description for the "DateTimeDType" SimpleType is given in Table 3.4.7.1.

Table 3.4.7.1 XSD description for the "DateTimeDType" Simple Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the DateTime simpleType.
Type xs:dateTime
Facets
Pattern [0-9]{4}.*
Used by
Attributes datestamp/ItemResultDType, datestamp/TestResultDType
Source
<xs:simpleType name="DateTimeDType">
    <xs:restriction base="xs:dateTime">
        <xs:pattern value="[0-9]{4}.*" />
    </xs:restriction>
</xs:simpleType>
                        

3.4.7.2 "IdentifierDType" Simple Type Description

The XSD description for the "IdentifierDType" SimpleType is given in Table 3.4.7.2.

Table 3.4.7.2 XSD description for the "IdentifierDType" Simple Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the Identifier simpleType.
Type xs:NCName
Used by
Attributes sourcedId/ContextDType, identifier/ContextTemplateVariableDType, identifier/ItemResultDType, identifier/OutcomeVariableDType, identifier/ResponseVariableDType, identifier/SessionIdentifierDType, identifier/TestResultDType, fieldIdentifier/ValueDType
Source
<xs:simpleType name="IdentifierDType">
    <xs:restriction base="xs:NCName" />
</xs:simpleType>
                        

3.4.7.3 "IdentifierListDType" Simple Type Description

The XSD description for the "IdentifierListDType" SimpleType is given in Table 3.4.7.3.

Table 3.4.7.3 XSD description for the "IdentifierListDType" Simple Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the IdentifierList simpleType.
Type xs:NCName
Used by
Attributes choiceSequence/ResponseVariableDType
Source
<xs:simpleType name="IdentifierListDType">
    <xs:restriction base="xs:NCName />
</xs:simpleType>
                        

3.4.7.4 "UniqueIdentifierRefDType" Simple Type Description

The XSD description for the "UniqueIdentifierRefDType" SimpleType is given in Table 3.4.7.4.

Table 3.4.7.4 XSD description for the "UniqueIdentifierRefDType" Simple Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the UniqueIdentifierRef simpleType.
Type xs:NCName
Used by
Attributes variable-identifier-ref/OutcomeVariableDType
Source
<xs:simpleType name="UniqueIdentifierRefDType">
    <xs:restriction base="xs:NCName" />
</xs:simpleType>
                        

3.4.7.5 "ViewEnumDType" Simple Type Description

The XSD description for the "ViewEnumDType" SimpleType is given in Table 3.4.7.5.

Table 3.4.7.5 XSD description for the "ViewEnumDType" Simple Type.
Namespace http://www.imsglobal.org/xsd/imsqti_result_v3p0
Diagram XSD diagram of the ViewEnum simpleType.
Type Enumerated List
Facets
Enumeration author
Enumeration candidate
Enumeration proctor
Enumeration scorer
Enumeration testConstructor
Enumeration tutor
Used by
Attributes view/OutcomeVariableDType
Source
<xs:simpleType name="ViewEnumDType">
    <xs:restriction base="xs:string">
        <xs:enumeration value="author" />
        <xs:enumeration value="candidate" />
        <xs:enumeration value="proctor" />
        <xs:enumeration value="scorer" />
        <xs:enumeration value="testConstructor" />
        <xs:enumeration value="tutor" />
    </xs:restriction>
</xs:simpleType>
                        

3.5. The Schematron Rules

This Section is NORMATIVE.

There are no schematron rules used in this XSD binding of the specification.

toc | top

4. Extending and Profiling the Data Model

This Section is NOT NORMATIVE.

4.1. Extending the Data Model

The QTI Result Reporting specification contains a limited number of extension points. Any proprietary extension is non-conformant. The behavior of a system that receives a QTI Result Report instance that contains proprietary extensions is undefined (however a system should handle such violations in a controlled manner).

The permitted extension point is in the Class:

In an XML instance these extensions MUST be supplied in a new namespace. Therefore, a corresponding XSD MUST be created to ensure that the data contained in the extension can be validated (see OutcomeInformation for the XSD definition).

4.2. Profiling the Data Model

This specification may be profiled. 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 1EdTech. However, no matter who is responsible for creating the profile artifacts (documents, XSDs, etc.), it is strongly recommended that the 1EdTech specification tools are used. This will ensure that the artifacts are consistent with the base specifications and that useful support documentation is automatically produced e.g. creation of a document that summarizes the differences between the base specification and the profile. Organizations wishing to produce a profile of this specification should contact the 1EdTech VP of Operations at: operations@1edtech.org.

toc | top

5. Implementation Guide

This Section is NOT NORMATIVE.

5.1. Core Use-cases

The are four core uses-cases addressed by this specification:

5.1.1. Results Reported from a Test Delivery System

The most common use case for QTI Results Reporting is the retrieval of detailed test- and item-level results from the test delivery system. In most cases this would be a computer based test delivery system, but QTI Results Reporting could also be used to exchange results from paper based tests, e.g. obtained through automated answer/bubble sheet scanning systems.

Results Reporting can also be used to retrieve results from adaptive tests; tests which adapt during the test taking session based on the responses from the student. QTI supports both staged adaptive testing through predefined branch-rules and preconditions as well as item-by-item adaptive testing through the use of an external (IRT based) algorithm.

In case of staged adaptive testing through branch-rules and preconditions, where the branching decisions are predefined, the course of the test is deterministic and reflected in the results. QTI Results Reporting would reflect the response and outcome variables on the selected items, sections and testParts. As these variables would also be used within the actual branch-rules, e.g. if SCORE_SECTION_A > 5, these are logged as part of the testResult by definition.

In case of an item-by-item adaptive test, leveraging an external algorithm through the Standard on CAT [CAT-10], the external algorithm would be responsible for tracking appropriate outcome variables (e.g. THETA, THETA_SE recording the candidate's ability estimate and associated standard error) for use within the delivery engine and passthrough to the reporting solution; the Standard on CAT uses a JSON binding of Results Reporting for exchanging results information and can therefore be used for augmenting (test-level) outcome variables. Additionally, it is recommended to register a session-identifier as part of Results Reporting Context containing the identifier of the session in the external adaptive engine, which could be used for retrieving additional information on the selection process out of band.

5.1.2. Results Reported To/From Scoring Systems

A second use case for Results Reporting is for data exchange with dedicated (external) scoring systems, either manual or machine scored. In this use case, results are obtained through computer or paper based delivery modes as indicated in the first use case and passed on to the scoring system(s) for further processing. As further manual or machine scoring is required to come to a final score, the current scores should be considered provisional at this point.

Clear scoring rubrics and traits are of great importance in this use case; preferably these are encoded by authors up-front in the QTI item and test definitions by use of Outcome Variables, with a predefined scoring range (NormalMinimum, NormalMaximum), instructions for the scorer (Interpretation, LongInterpretation) and indication whether these are machine or manually scored (ExternalScored).

Auditing is key when working with external scoring systems; manual or machine scoring processes can lead to new values (versions) of Outcome Variables. Item-level Response or test-level Outcomes Processing may need to be (re)run to update all Outcome Variables. For example, outcomes processing is defined on a test to compute the total test score by the sum of all item-level SCORE-variables; this outcomes processing rule would need to be re-run when item-level outcome variables have been externally set by external scoring systems.

Another sub use-case is (re)running response and outcomes processing to address keying errors or calamity items. A keying error could be identified based on frequency analysis, where statistics indicate many candidates selecting a different option, leading to an investigation and a possible conclusion that that option is correct as well. An item is considered a calamity item if, again possibly based on analysis, the item quality or performance is considered poor and the specific item-result excluded from further processing (e.g. by awarding all candidates zero or full points on the particular item). As a basic process, the test- and/or item-definition (including the correct response) could be updated and the response and outcomes processing re-run to re-score all test sessions. It is important to audit these processes carefully, keep all versions of results, for defensibility and further analysis purposes.

5.1.3. Results Reported to Reporting and Analysis Systems

Delivering a test is a means to provide information on the individual, group, organization or entire system in a report. QTI Results Reporting provides the most detailed information available for processing by reporting tools. Additional data might be required from rostering systems (obtained, for example, using 1EdTech OneRoster [OR-OVIEW-12]) to construct complete reports.

Psychometricians need detailed test- and item-level results data for performing analysis as also referenced in previous use cases; detailed information on responses constructed/changed, time spent on item visits (duration), etc. QTI Results Reporting provides the most detailed information available for processing in external analysis tools. For even more detailed analysis, process data (obtained through 1EdTech Caliper [CALIPER-OVIEW-12]) could be required to analyze usage of tools, more fine grained interaction behavior, etc.

Results of Classical Test Theory (CTT) or Item Response Theory (IRT) based analysis can be represented by QTI Usage Data [QTI-UD-30].

5.1.4. Archiving of Assessment Results Data

Many organizations require longer term archival of assessment results data for legal reasons. QTI Results Reporting being the richest format available for results obtained through QTI-based test delivery systems, is the most durable format for archival purposes.

5.2. Data Flows

Results are derived from responses (or non-responses) supplied by the candidate and evaluated based on criteria defined at the item and test levels. The set of components for QTI Results Reporting are shown in Figure 5.2.1

The Components of a QTI Results Report.

Figure 5.2.1 - The components of a QTI results report.

The three components are:

5.2.1. Item Level Response Processing

On the item level, response processing is leveraged to process item level responses into outcomes e.g. an item level score, constructing an ItemResult. The data flow between the components used to create an ItemResult is shown in Figure 5.2.2.

Data Flow between the Components of an ItemResult.

Figure 5.2.2 - Data flow between the components of an ItemResult.

An ItemResult should be generated at every item attempt e.g. when a candidate submits a response to an item, distinguished by datestamp. When a candidate attempts an item multiple times e.g. answering the item early on in the test and later navigating back and changing it, there should be multiple ItemResults for this particular item, each with a unique datestamp and appropriate number-of-attempts value.

5.2.2. Test Level Outcomes Processing

On the test level, outcomes processing is leveraged to process item level outcomes into test level outcomes e.g. an aggregated test score, constructing a single TestResult. The data flow between the components used to create a TestResult is shown in Figure 5.2.3.

Data Flow between the Components of a TestResult.

Figure 5.2.3 - Data flow between the components of a TestResult.

The TestResult can also include results on the QTI TestPart and QTI Section levels, by using a best practice variable notation prefixing them with the associated Section or TestPart identifier. (see Section 2.11.1.2 of [QTI-INFO-30] for details about variable notation).

As a best practice, a TestResult should be generated at the time of submission of the test.

It must be noted that a TestResult may need to be regenerated after external human or machine evaluation/scoring of open-response item types where scores are provided as new ItemResults. This event would take place after the candidate delivery session.

5.2.3. Assessment Level Context

On the root 'assessmentResult' level, the context can be specified by the system generating the results. Context should include a single candidate identifier (sourcedId) and can include multiple additional session identifiers, assigned by (external) results generating systems.

5.2.4. Composite Data Flow

The full data flow is shown schematically in Figure 5.2.4.

Full Data Flow between the Components for the Generation of a QTI Results Report.

Figure 5.2.3 - Full data flow between the components for the generation of a QTI results report.

5.3. Best Practices

This subsection contains a number of recommended best practices with associated examples. It is stressed that these are best, and NOT mandated, practices.

5.3.1. API Usage to Retrieve Results Data

A common way to implement the use case of detailed results retrieval from the test delivery system is by implementation of an API. This API returns results in the QTI Results Reporting format and could have parameters such as the following:

Access to the API SHOULD follow the recommendations given in 1EdTech Security Framework [SECURITY-11].

5.3.2. Aligning Results to Item and Test Level Metadata

In many assessments, the total score on the test is not sufficient for reporting purposes. More finer grained results, e.g. subscores per domain are required, where items are related to specific domains. QTI natively supports multiple methods to achieve subscores per domain.

First, item-in-test level categories, specified on the 'category-attribute' on the 'qti-assessment-item-ref [QTI-INFO-30] element, can be used to specify categories for items and consequently be used in test-level outcomes processing by use of the 'include-category' attribute. It is recommended to define a test-level outcome variable for each category, with a related MAXSCORE variable (e.g. [categoryname]_MAXSCORE) for computing number correct, number selected, etc. per category. By defining test-level outcome variables, these can be used during the test session in branching rules and preconditions for implementing staged adaptive testing, but also for test-level feedback purposes in formative situations and practice tests, e.g. displaying, by use of QTI printed-variables in rubric blocks, a percentage correct at the end of a practice session.

Alternatively, advanced computations on item-level metadata can be performed outside of the QTI test delivery context. QTI metadata, as defined in the manifest of the QTI package, can be extracted after test completion to perform sophisticated analysis. For example, the CASE [CASE-OVIEW-10] identifier, which can be specified in the 'caseItemUri 'as part of the Curriculum Standards Metadata structure in the QTI Package manifest, can be leveraged to align items to externally defined curriculum and academic standards. In combination with LTI Resource Search [RS-OVIEW-10], this allows for powerful crosswalk capabilities between assessment results and learning content.

5.3.3. Aligning Results to Candidate Information (Including Accommodations)

Assessment results alone are rarely sufficient for (student-level) reporting purposes, where additional Personally Identifiable Information (PII) is typically required to generate a complete report, e.g. a report containing the students name, class and organization (school). Another relevant source of information is details on (use of) accommodations during the assessment. In general, it is recommended to pass as little PII as possible through the test delivery system, only passing through information which is required to be displayed at runtime (during the test session) or for direct test-level feedback purposes. However, the context element in Result Reporting can be leveraged to pass through (student) identifiers or even basic values required for instant rendering or reporting purposes.

Data can be passed through (custom) parameters of an LTI launch [LTI-CORE-13] or exchanged in some other means. When identifiers are passed (e.g. the 'lis_person_sourcedid'), it is recommended to then leverage existing standards like LTI and OneRoster to retrieve additional information. In case of LTI, the Names & Roles [LTI-NRPS-20] and Assignment & Grades [LTI-AGS-20] services can be used.

This mechanism can also be extended to pass through complete sets of information, such as allowed accommodations during the assessment. The benefit of passing values directly is that they will always reflect the values as they were at the time of launching the test and need not be looked up in an external system which could be unavailable or where data might have changed in the meantime. However, this could also be a disadvantage as identical values (allowed accommodations for a certain student) could be passed multiple times (less efficient) and the latest version of the data could be required (e.g. identical candidate name on all reports).

It should be noted that results reporting could be suitable for passing information on the general context of individual assessment sessions (e.g. what accomodations a candidate was allowed to use), but for more detailed "event-like" information (e.g. what accommodations were actually used, at what time, for what duration, with which result) the 1EdTech Caliper Learning Analytics [CALIPER-OVIEW-12] specification could be more suitable. This would also allow analysis of tool usage across multiple tools in the learning environment.

Additionally, data on accommodations allowed can be considered privacy sensitive and should therefore be handled with the utmost care. To prevent privacy sensitive data ending up in QTI Results Reports unintentionally, it is recommended to only include this data if this is explicitly stated in the AssessmentTest and/or AssessmentItem definition by use of a context variable. The variable should be a context variable of 'base-type' "record" with the name 'QTI_SUPPORT_REPORTING'. The fields it defines as standard are all of 'base-type' String and are:

If, and only if, the 'QTI_SUPPORT_REPORTING' context variable exists and the associated field (e.g. BasicTools) exists and has the exact value "enabled" should the Results Reporting engine consider including information on the use of that class of tools in the Results Report. Organizations using these Tools should have the ability to enable or disable the setting of these flags if the results reporting engine supports the generation of support usage information in the results. So if an appropriately authorized individual in the organization administering the test enabled the reporting of basic tools ( e.g. calculators ) and Tools enabled universally by the assessment content then the delivery engine would define a context variable equivalent to the following qti-context-declaration:

<qti-context-declaration cardinality="record" identifier="QTI_SUPPORT_REPORTING">
     <qti-default-value>
            <qti-value base-type="string" field-identifier="BasicTools">enabled</qti-value>
            <qti-value base-type="string" field-identifier="PNPActivatedTools">disabled</qti-value>
            <qti-value base-type="string" field-identifier="ContentActivatedTools">enabled</qti-value>
            <qti-value base-type="string" field-identifier="UserActivatedTools">disabled</qti-value>
            <qti-value base-type="string" field-identifier="ext_HMHStandardCustomTools">enabled</qti-value> 
     </qti-default-value>
</qti-context-declaration>
        

Alternatively, reports can be generated completely outside of the QTI (test delivery) context, only providing "raw" assessment results from test sessions.

5.3.4. Updating/Versioning Results

Next to retrieving assessment results through an API, some use cases also require submiting results, e.g. updated results from external scoring systems. By sending back results, the test delivery system can remain the "single source of truth" for operational assessment data. An API to submit assessment results would typically have the following parameters:

5.3.5. Interpreting Results and Determining Grades

For many assessments, just the raw score e.g. a total number of points, is insufficient for reporting. A score needs to be scaled before it can be used to determine a grade. QTI outcomes processing can be used for basic scaling purposes, leveraging a 'qti-interpolation-table' [QTI-INFO-30] to translate a raw score to a scaled score. The benefit of encoding interpolation tables into the QTI test definition is this can be used for instant reporting at the end of the test session, e.g. to provide test-level feedback in a formative testing context.

Alternatively, scaling and grading can be performed outside of the QTI test delivery context. A benefit of external computation is that the scaling algorithms can be more complex and are not hard-coded into the QTI test definition, allowing for more flexibility and re-scoring processes.

5.3.6. Item Session Lifecycle (Skipping, Invalid and Missing Items)

In assessment, it is important to determine the state of the result of an Item for analysis and reporting purposes. This set of states is:

5.3.7. Providing PNP Information in the Report

To be completed in the Final Release.

5.3.8. Annotated Examples

5.3.8.1. Basic Example

A basic example of a QTI Results Report is presented below. This is an example of an assessmentResult with context (required), a single testResult and two itemResults. The key points are:

<?xml version="1.0" encoding="UTF-8"?>
<assessmentResult xmlns="http://www.imsglobal.org/xsd/imsqti_result_v3p0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.imsglobal.org/xsd/imsqti_result_v3p0 https://purl.imsglobal.org/spec/qti/v3p0/schema/xsd/imsqti_resultv3p0_v1p0.xsd">
    <context sourcedId="johnsmith1">
        <sessionIdentifier sourceID="http://www.imsglobal.org/" identifier="EXAMPLE"/>
    </context>
    <testResult identifier="SAMPLE" datestamp="2020-08-25T18:19:20">
        <responseVariable identifier="float" cardinality="single" baseType="duration">
            <candidateResponse>
                <value>100</value>
            </candidateResponse>
        </responseVariable>
        <responseVariable identifier="S01.duration" cardinality="single" baseType="float">
            <candidateResponse>
                <value>100</value>
            </candidateResponse>
        </responseVariable>
        <outcomeVariable identifier="SCORE" masteryValue="1" cardinality="single" baseType="float">
            <value>0</value>
        </outcomeVariable>
    </testResult>
    <itemResult identifier="Q01" sequenceIndex="1" datestamp="2020-08-25T18:18:40" sessionStatus="final">
        <responseVariable identifier="numAttempts" cardinality="single" baseType="integer">
            <candidateResponse>
                <value>1</value>
            </candidateResponse>
        </responseVariable>
        <responseVariable identifier="RESPONSE" cardinality="single" baseType="identifier" choiceSequence="D B C A">
            <correctResponse>
                <value>A</value>
            </correctResponse>
            <candidateResponse>
                <value>A</value>
            </candidateResponse>
        </responseVariable>
        <outcomeVariable identifier="completionStatus" cardinality="single" baseType="identifier">
            <value>completed</value>
        </outcomeVariable>
        <outcomeVariable identifier="SCORE" cardinality="single" baseType="float">
            <value>1</value>
        </outcomeVariable>
    </itemResult>
    <itemResult identifier="Q01" sequenceIndex="1" datestamp="2020-08-25T18:19:20" sessionStatus="final">
        <responseVariable identifier="numAttempts" cardinality="single" baseType="integer">
            <candidateResponse>
                <value>2</value>
            </candidateResponse>
        </responseVariable>
        <responseVariable identifier="RESPONSE" cardinality="single" baseType="identifier" choiceSequence="D B C A">
            <correctResponse>
                <value>A</value>
            </correctResponse>
            <candidateResponse>
                <value>B</value>
            </candidateResponse>
        </responseVariable>
        <outcomeVariable identifier="completionStatus" cardinality="single" baseType="identifier">
            <value>completed</value>
        </outcomeVariable>
        <outcomeVariable identifier="SCORE" cardinality="single" baseType="float">
            <value>0</value>
        </outcomeVariable>
    </itemResult>
</assessmentResult>
        

5.3.8.2. Extensive Example

This example is for a Result Report of a Test with the following settings:

The following testing scenario was performed:

Assuming we perform a sum of the scores of each item modeled on the item outcome variables, the final score is computed with the last attempt of each item: TOTAL_SCORE = 2, TOTAL_MAXSCORE = 4.The following result report is sliced to show the steps enumerated above. The attempts may not occur in the same order as they are grouped by the item.

<?xml version="1.0" encoding="UTF-8"?>
<assessmentResult xmlns="http://www.imsglobal.org/xsd/imsqti_result_v2p1">
  <context sourcedId="i5f6079370572f11078000ad90e617188f4"/>
        

Final outcome values: TOTAL_SCORE = 2, TOTAL_MAXSCORE = 4.

   <testResult identifier="test-delivery-1" datestamp="2020-09-15T08:21:44.503">
       <responseVariable identifier="duration" cardinality="single" baseType="float">
           <candidateResponse>
               <value>119.57131</value>
           </candidateResponse>
       </responseVariable>
       <outcomeVariable identifier="TOTAL_SCORE" cardinality="single" baseType="float">
           <value>2</value>
       </outcomeVariable>
       <outcomeVariable identifier="TOTAL_MAXSCORE" cardinality="single" baseType="float">
           <value>4</value>
       </outcomeVariable>
   <testResult>
        

First response to Item-1-choice: A C (SCORE = 1 - 1 = 0).

   <itemResult identifier="item-1-choice" datestamp="2020-09-15T08:20:37.139" sessionStatus="final">
       <responseVariable identifier="numAttempts" cardinality="single" baseType="integer">
           <candidateResponse>
               <value>1</value>
           </candidateResponse>
       </responseVariable>
       <responseVariable identifier="duration" cardinality="single" baseType="float">
           <candidateResponse>
               <value>25.266422</value>
           </candidateResponse>
       </responseVariable>
       <outcomeVariable identifier="completionStatus" cardinality="single" baseType="identifier">
           <value>completed</value>
       </outcomeVariable>
       <outcomeVariable identifier="SCORE" cardinality="single" baseType="float">
           <value>0</value>
       </outcomeVariable>
       <outcomeVariable identifier="MAXSCORE" cardinality="single" baseType="float">
           <value>3</value>
       </outcomeVariable>
       <responseVariable identifier="RESPONSE" cardinality="multiple" baseType="identifier">
           <candidateResponse>
               <value>choice_A</value>
               <value>choice_C</value>
           </candidateResponse>
       </responseVariable>
   </itemResult>
        

Second response to Item-1-choice with default values (SCORE = 0), as the consequence of skipping the item. Note the empty 'candidateResponse' value (identifier RESPONSE at the bottom of this part).

   <itemResult identifier="item-1-choice" datestamp="2020-09-15T08:20:57.045" sessionStatus="final">
       <responseVariable identifier="numAttempts" cardinality="single" baseType="integer">
           <candidateResponse>
               <value>2</value>
           </candidateResponse>
       </responseVariable>
       <responseVariable identifier="duration" cardinality="single" baseType="float">
           <candidateResponse>
               <value>45.166154</value>
           </candidateResponse>
       </responseVariable>
       <outcomeVariable identifier="completionStatus" cardinality="single" baseType="identifier">
           <value>completed</value>
       </outcomeVariable>
       <outcomeVariable identifier="SCORE" cardinality="single" baseType="float">
           <value>0</value>
       </outcomeVariable>
       <outcomeVariable identifier="MAXSCORE" cardinality="single" baseType="float">
           <value>3</value>
       </outcomeVariable>
       <responseVariable identifier="RESPONSE" cardinality="multiple" baseType="identifier">
           <candidateResponse>
               <value></value>
           </candidateResponse>
       </responseVariable>
   </itemResult>
        

Third response to Item-1-choice: B C (SCORE = 2 - 1 = 1).

   <itemResult identifier="item-1-choice" datestamp="2020-09-15T08:21:06.411" sessionStatus="final">
       <responseVariable identifier="numAttempts" cardinality="single" baseType="integer">
           <candidateResponse>
               <value>3</value>
           </candidateResponse>
       </responseVariable>
       <responseVariable identifier="duration" cardinality="single" baseType="float">
           <candidateResponse>
               <value>52.336744</value>
           </candidateResponse>
       </responseVariable>
       <outcomeVariable identifier="completionStatus" cardinality="single" baseType="identifier">
           <value>completed</value>
       </outcomeVariable>
       <outcomeVariable identifier="SCORE" cardinality="single" baseType="float">
           <value>1</value>
       </outcomeVariable>
       <outcomeVariable identifier="MAXSCORE" cardinality="single" baseType="float">
           <value>3</value>
       </outcomeVariable>
       <responseVariable identifier="RESPONSE" cardinality="multiple" baseType="identifier">
           <candidateResponse>
               <value>choice_B</value>
               <value>choice_C</value>
           </candidateResponse>
       </responseVariable>
   </itemResult>
        

First response to Item-2-order: A B C D (SCORE = 0).

   <itemResult identifier="item-2-order" datestamp="2020-09-15T08:20:49.743" sessionStatus="final">
       <responseVariable identifier="numAttempts" cardinality="single" baseType="integer">
           <candidateResponse>
               <value>1</value>
           </candidateResponse>
       </responseVariable>
       <responseVariable identifier="duration" cardinality="single" baseType="float">
           <candidateResponse>
               <value>12.528180</value>
           </candidateResponse>
       </responseVariable>
       <outcomeVariable identifier="completionStatus" cardinality="single" baseType="identifier">
           <value>completed</value>
       </outcomeVariable>
       <outcomeVariable identifier="SCORE" cardinality="single" baseType="float">
           <value>0</value>
       </outcomeVariable>
       <outcomeVariable identifier="MAXSCORE" cardinality="single" baseType="float">
           <value>1</value>
       </outcomeVariable>
       <responseVariable identifier="RESPONSE" cardinality="ordered" baseType="identifier">
           <candidateResponse>
               <value>choice_A</value>
               <value>choice_B</value>
               <value>choice_C</value>
               <value>choice_D</value>
           </candidateResponse>
       </responseVariable>
   </itemResult>
        

Second response to Item-2-order with previous values (SCORE = 1 - 1 = 0).

  <itemResult identifier="item-2-order" datestamp="2020-09-15T08:20:59.181" sessionStatus="final">
       <responseVariable identifier="numAttempts" cardinality="single" baseType="integer">
           <candidateResponse>
               <value>2</value>
           </candidateResponse>
       </responseVariable>
       <responseVariable identifier="duration" cardinality="single" baseType="float">
           <candidateResponse>
               <value>21.948264</value>
           </candidateResponse>
       </responseVariable>
       <outcomeVariable identifier="completionStatus" cardinality="single" baseType="identifier">
           <value>completed</value>
       </outcomeVariable>
       <outcomeVariable identifier="SCORE" cardinality="single" baseType="float">
           <value>0</value>
       </outcomeVariable>
       <outcomeVariable identifier="MAXSCORE" cardinality="single" baseType="float">
           <value>1</value>
       </outcomeVariable>
       <responseVariable identifier="RESPONSE" cardinality="ordered" baseType="identifier">
           <candidateResponse>
               <value>choice_A</value>
               <value>choice_B</value>
               <value>choice_C</value>
               <value>choice_D></value>
           </candidateResponse>
       </responseVariable>
   </itemResult>
        

Third response to Item-2-order: B A D C (SCORE = 1).

   <itemResult identifier="item-2-order" datestamp="2020-09-15T08:21:44.487" sessionStatus="final">
       <responseVariable identifier="numAttempts" cardinality="single" baseType="integer">
           <candidateResponse>
               <value>3</value>
           </candidateResponse>
       </responseVariable>
       <responseVariable identifier="duration" cardinality="single" baseType="float">
           <candidateResponse>
               <value>67.234566</value>
           </candidateResponse>
       </responseVariable>
       <outcomeVariable identifier="completionStatus" cardinality="single" baseType="identifier">
           <value>completed</value>
       </outcomeVariable>
       <outcomeVariable identifier="SCORE" cardinality="single" baseType="float">
           <value>1</value>
       </outcomeVariable>
       <outcomeVariable identifier="MAXSCORE" cardinality="single" baseType="float">
           <value>1</value>
       </outcomeVariable>
       <responseVariable identifier="RESPONSE" cardinality="ordered" baseType="identifier">
           <candidateResponse>
               <value>choice_B</value>
               <value>choice_A</value>
               <value>choice_D</value>
               <value>choice_C></value>
           </candidateResponse>
       </responseVariable>
   </itemResult>
</assessmentResult>
        

5.3.8.3. Using the 'outcomeInformation' Extension Property in the Outcome Variable Class

To be completed in the Final Release.

5.4. Relation to Other Standards

5.4.1. LTI Advantage

Use of the Learning Tools Interoperability Core specification [LTI-CORE-13] can be made to launch candidate test sessions or other related tools such as on-site/remote proctoring tools, etc. Furthermore use of the LTI Assignment and Grade Services [LTI-AGS-20] can be used to exchange data on the assessment activity i.e. final grade for the assessment/test/quiz.

The use of LTI AGS is NOT an alternative to QTI Results Reporting. Instead the two are complementary. LTI is used to enable interactive real-time data exchange between a Platform and a Tool whereas QTI Results Reporting is used for archival (and typically more detailed) data exchange. In fact, LTI AGS reported data could be used to populate a QTI Results Report instance i.e. to provide a data exchange of Tool-to-Platform (using LTI AGS) followed by Platform-to-Student Information System using QTI Results Reporting.

It should be noted that many alternative workflows and processes can be supported using different combinations of LTI AGS and QTI Results Reporting.

5.4.2. Caliper

The 1EdTech Caliper specification [CALIPER-OVIEW-12] includes definition of the 'Assessment Profile'. This profile defines the reporting of the following information through the Caliper REST API:

The Caliper REST API SHOULD be used for real-time reporting of a person's assessment activity whereas QTI Results Reporting SHOULD be used for archival reporting of the full set of the person's assessment activities, once the assessment activity has been completed.

5.4.3. OneRoster and Assessment Results Management

In OneRoster (OR) 1.2 Gradebook Services [OR-OVIEW-12] support for the exchange of detailed assessment results was added. The structure is based around an Assessment which may be in the form of a QTI AssessmentTest. The OR assessment results structure enables the exchange of detailed scores for a simple and complex assessment. In OR terminology, the Assessment is composed of a set of AssessmentLineItems (similar to LineItems) for which there is a set of AssessmentResults. In OR the management of AssessmentLineItems and AssessmentResults is achieved using a REST API.

By appropriate use of the OR AssessmentLineItem hierarchy it is possible to reflect the corresponding QTI AssessmentTest, AssessmentSection, AssementItem and OutcomeDeclarations relationships. The set of OR AssessmentResults aligned with the parent OR AssessmentLineItem are then used to contain the score/outcomes to reflect the QTI ItemResults and TestResult values.

5.4.4. Competencies and Academic Standards Exchange (CASE)

The 1EdTech CASE 1.0 specification [CASE-OVIEW-10] is used to exchange information about learning standards and education competencies. CASE identifiers can be applied to resources in a 1EdTech Content Package to provide an interoperable way to exchange information on an education competency associated with an outcome variable such as a score. It is the Curriculum Standards Metadata structure that is used in the Resource Metadata. The use of CASE identifiers in QTI Content Packages is described in Section 6.4 of the [QTI-IMPL-30]. It is the use of CASE identifiers and their assignment to Outcome Declarations that is of particular relevance for QTI Results Reporting. CASE items typically have both a resolvable URI and a UUID as identifiers, these are provided via the 'caseItemURI' and 'GUID' elements, and a human readable label, provided by the label element.

The alignment of QTI Results Reporting, QTI ASI Content Package and the CASE identifiers requires explicit ecosystem design. Therefore, this correspondence must be undertaken as part of the overall design of the assessment features in an EdTech Ecosystem.

5.4.5. LTI Resource Search

The 1EdTech LTI Resource Search (LTI-RS) 1.0 specification [RS-OVIEW-10] defines how to search digital repositories for a set of resources via a web services REST API. The standard addresses searching learning object repositories (LORs), and other catalogs of learning resources. The specification supports executing these searches from learning tools using various attributes of resources and returning full metadata about the resources to the learning tools. Results can be launched either as URLs or LTI links.

The LTI-RS specification enables the searching for resources according to the associated learning objectives using their CASE GUIDs or CASE URIs. The CASE GUID to be used is that defined for the associated QTI object within the resource definition in the QTI Package.

5.4.6. Computer Adaptive Testing (CAT)

The 1EdTech Computer Adaptive Testing (CAT) 1.0 Specification defines a REST API for the exchange of information between an Assessment System and a CAT Engine to enable adaptive testing [CAT-10]. The use of a CAT engine means that the sequence of AssessmentItems presented to a learner are determined in real-time and dependent on previous activity within the assessment. This means that any predefined sequence in the original QTI-Package is NOT representative of the actual sequence rendered for a learner. Also, the actual selection and sequence of rendered AssessmentItems will, in general, vary from learner to learner.

The QTI Results Report MUST report the actual selection and sequence of the delivered assessment activities. Therefore, care MUST be taken when correlating the QTI Results Report information with a corresponding source QTI Package.

5.4.7. Access for All Personal Needs and Preferences (AfA PNP)

The 1EdTech Personal Needs and Preferences (AfA PNP) 3.0 specification [AFAPNP-30] defines the data format for stating user needs and preferences with respect to digitally based education or learning. The application of the PNP configuration information could change the assessment experience: in some cases this could result in significant changes. Therefore, the PNP configuration is important contextual information: an annotated example is given in the 'Best Practices' Section of this document.

toc | top

6. Conformance and Certification

This Section is NORMATIVE.

6.1. The Conformance Process

The process for conformance testing implementations of QTI Results Reporting includes the following:

All Tests for the appropriate operational modes must be passed successfully to be considered 1EdTech compliant.

6.2. System Import Conformance

The functionality of systems that support the IMPORT of QTI Results Reporting 3.0 XML instances is:

6.3. System Export Conformance

The functionality of systems that support the EXPORT of QTI Results Reporting 3.0 XML instances is:

6.4. System Certifications

A system that successfully achieves QTI Results Reporting 3.0 certification will have a certain set of functional capabilities. QTI certification does NOT guarantee interoperability between ALL other QTI compliant solutions. The 1EdTech Product Directory MUST be used for the definitive information about interoperability.

For QTI Results Reporting 3.0 systems there are two types of certification:

Therefore, an implementation may be certified as either IMPORT, or EXPORT, or IMPORT and EXPORT. Note that if a system is both IMPORT and EXPORT certified data MAY be lost in any round-trip process. This data loss will be caused by differences in the optional properties supported by any specific system i.e. at import those optional properties that are NOT supported will be ignored and so will not be available for any subsequent export.

toc | top

References

[AFAPNP-30] Access for All (AfA) Personal Needs and Preferences (PNP) Information Model Version 3.0, Tom Hoffmann and Colin Smythe, 1EdTech Consortium, January 2021, https://www.imsglobal.org/sites/default/files/spec/afa/3p0/information_model/imsafa3p0pnp_v1p0_InfoModel.html.
[CALIPER-OVIEW-12] 1EdTech Caliper Analytics 1.0 Specification Final Release, Anthony Whyte, Joshua McGhee, Bracken Mosbacker, 1EdTech Consortium, 27th March 2020, https://www.imsglobal.org/spec/caliper/v1p2/.
[CASE-OVIEW-10] 1EdTech Competencies & Academic Standards Exchange (CASE) Service Version 1.0, Bob Grogan, Greg Nadeau, Jill Hobson and Colin Smythe, 1EdTech Consortium, 7th July 2017, https://www.imsglobal.org/sites/default/files/CASE/casev1p0/information_model/caseservicev1p0_infomodelv1p0.html.
[CAT-10] Computer Adaptive Testing (CAT) 1.0 Specification Candidate Final Public Release, Jason Carlson, Mark Molenaar, Mark McKell and Collin Smythe, 1EdTech Consortium, 1st February 2021, https://www.imsglobal.org/cat.
[E-BAT, 06] 1EdTech Binding Auto-generation Toolkit (E-BAT), Colin Smythe, 1EdTech Consortium, July, 2006.
[ISO 11404] Information technology: General-Purpose Datatypes (GPD), ISO, International Standards Organization (ISO), December 2007, p.96.
[ISO 8601] ISO 8601:2004 Data elements and interchange formats - Information interchange - Representation of dates and times, ISO, International Standards Organization (ISO), 2000, p.33.
[LTI-AGS-20] Learning Tools Interoperability (LTI) Assignment and Grade Services 2.0 Specification, Eric Preston, Claude Vervoort, Mark McKell and James Rissler, 1EdTech Consortium, 16th April 2019, https://www.imsglobal.org/spec/lti-ags/v2p0/.
[LTI-CORE-13] Learning Tools Interoperability Core Specification, Eric Preston, Claude Vervoort and James Rissler, 1EdTech Consortium, 16th April 2019, https://www.imsglobal.org/spec/lti/v1p3/.
[LTI-NRPS-20] 1EdTech Learning Tools Interoperability (LTI) Names and Role Provisioning Services 2.0 Specification, Eric Preston, Claude Vervoort, Mark McKell and James Rissler, 1EdTech Consortium, 16th April 2019, https://www.imsglobal.org/spec/lti-nrps/v2p0.
[OR-OVIEW-12] OneRoster 1.2 Specification, Matt Richards, Joshua McGhee and Colin Smythe, 1EdTech Consortium, 19th September 2022, https://www.imsglobal.org/spec/oneroster/v1p2.
[QTI-IMPL-30] 1EdTech Question & Test Interoperability (QTI): Best Practices and Implementation Guide v3.0, Mark Makkinen, Padraig O'hiceadha, Mike Powell, Colin Smythe and Tom Hoffmann, 1EdTech Consortium, May 2022, https://www.imsglobal.org/spec/qti/v3p0/impl/.
[QTI-INFO-30] 1EdTech Question & Test Interoperability (QTI): Assessment, Section and Item (ASI) Information Model v3.0, Mark Makkinen, Padraig O'hiceadha, Mike Powell, Colin Smythe and Tom Hoffmann, 1EdTech Consortium, May 2022, https://www.imsglobal.org/spec/qti/v3p0/info/.
[QTI-UD-30] 1EdTech Question & Test Interoperability (QTI) 3.0: Usage Data and Item Statistics 1.0 Specification, Rich Dyck, Colin Smythe and Tom Hoffmann, 1EdTech Consortium, 2nd February 2022, https://www.imsglobal.org/sites/default/files/spec/qti/v3/ud-bind/index.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 2119] Key words for use in RFCs to Indicate Requirement Levels, S.Bradner, Internet Engineering Task Force, March 1997, https://www.ietf.org/rfc/rfc2119.txt.
[RS-OVIEW-10] 1EdTech LTI Resource Search 1.0 Specification Final Release, Adam Blum, Tom Ingram, Vikash Jaiswal, Jill Hobson and Colin Smythe, 1EdTech Consortium, 10th September 2018, https://www.imsglobal.org/spec/lti-rs/v1p0/.
[SECURITY-11] 1EdTech Security Framework 1.1, Colin Smythe and Mark McKell, 1EdTech Consortium, 19th July 2021, https://www.imsglobal.org/spec/security/v1p1/.
[URI, 98] RFC 2396 Uniform Resource Identifiers (URI): Generic Syntax, T. Berners-Lee, R. Fielding and L. Masinter, Internet Engineering Task Force, August 1998, https://www.ietf.org/rfc/rfc2396.txt.
[VDEX, 04] 1EdTech Vocabulary Definition Exchange Information Model v1.0, Adam Cooper, 1EdTech Consortium, February 2004, http://www.imsglobal.org/vdex/vdexv1p0/imsvdex_infov1p0.html.
[XML, 00] Extensible Markup Language (XML), Version 1.0 (second edition), Tim Bray, Jean Paoli, C. M. Sperberg-McQueen and Eve Maler, World Wide Web Consortium, October 2000, http://www.w3.org/TR/2000/REC-xml-20001006.

toc | top

Appendix A Modeling Concepts and Terms

A1 Data Model Descriptions

This section is NOT NORMATIVE.

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 objects that conform to 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 labeled 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.
Link Data Lists the set of attributes for this class that are used to provide links to other data objects in the data model. Many types of link references are available. This row is ONLY shown when the class contains at least one link data definition.
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 and the form of that extension is dependent on the type of binding);
    • AnyURI - the AnyURI data-type (absolute or relative 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 i.e. no child attributes;
    • Float - the float data-type (single precision floating point number - 32bit);
    • ID - the unique identifier data-type (the scope is constrained to the instance file);
    • 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 with a numeric value from -2147483648 to 2147483647;
    • Integer - the integer data-type (this is derived from the "decimal" data-type i.e. no decimal places);
    • Language - the language data-type as defined in [BCP 47];
    • Name - the Name data-type as per the XML 1.0 definition);
    • 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 i.e. non-colonized name);
    • 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.
Link Data Contains the description of the link data definition. A link to the corresponding detailed link data description is supplied. This row is ONLY shown when the attribute/characteristic is a link data definition.

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 1EdTech 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

A1.7 Link Data Descriptions

Table A1.7 provides the key to the descriptions of the link data definitions.

Table A1.7 The key to the descriptions of the link data tables.
Category Definition
Target Class Name This is the name of the target class i.e. the destination point of the link reference.
Link Type This is the type of link that is being used. The types of link available are:
  • "SourcedId" - this link is through interoperability identifier for the target object i.e. the object can be obtained by using this sourceId with the corresponding service call;
  • "IntraParentClassId" - this link is between two attributes/characteristics that are contained within the same parent class;
  • "CPResourceId" - this link is to a resource contained within an 1EdTech Content Package/1EdTech Common Cartridge/Thin Common Cartridge manifest. The reference value is that assigned to the "identifier" of the resource in the package/cartridge manifest;
  • "CASEItemId" - this link is to the learning objective description (contained within an 1EdTech CASE Item definition).
Link Sources This is the set of classes that contain attributes/characteristics which use the link data defined by this entry. A link to the attribute/characteristic is provided.
Source Attribute This is the attribute/characteristic in the source object that contains the identifier of the target object (a characteristic name MUST start with an "@"). This will only be supplied if the pointer is contained within a substructure within the source object. If there is no source the statement "Not Applicable" will be displayed.
Target Attribute This is the attribute/characteristic in the target class which is the container for the identifier of the object being identified (a characteristic name MUST start with an "@"). It is the value for this identifier which MUST be supplied in the source object. For "CPResourceId" link types the fixed value of "@identifier" will be given. If there is no target the statement "Not Applicable" will be displayed.
Parent Class Name This is the name of the class that contains both the source and target attributes/characteristics. This value will only be supplied for the "IntraParentClassId" link types. If there is no parent class name the statement "Not Applicable" will be displayed.
Description The description of how the link data is used within the data model.

toc | top

A1.8 Common Data Model Persistent Identifier Descriptions

Table A1.8 provides the key to the descriptions of the common data model persistent identifier definitions.

Table A1.8 The key to the descriptions of the common data model persistent identifier tables.
Category Definition
Name This is the name of the data model component which has been assigned a common data model persistent identifier.
Type This is the type of link that is being used. The types of link available are:
  • "Class (...)" - a complex data model component i.e. it contains one or more properties;
  • "Property" - a property of a parent Class;
  • "Enumerated Vocabulary Term" - the term/token within an enumerated vocabulary
Persistent Identifier The common data model persistent identifier that has been assigned to this data model component. By definition, this is a unique (within the context of the 1EdTech Common Data Model) and very long-lived identifier

toc | top

Appendix B XSD Binding Terms

B1 XSD Binding Description Terms

This section is NOT NORMATIVE.

B1.1 UML/XSD Attribute Mapping Table Definition

Table B1.1 provides the key to the descriptions of UML to XSD attribute mapping tables.

Table B1.1 The key to the descriptions of UML to XSD attribute mapping tables.
Feature Definition and Usage
Attribute Name The name of the attribute (these are the attributes listed in the class identified by the « Roots » stereotype).
UML Class The name of the class, the type of the attribute, in the UML diagrams (each class will have an associated stereotype label to denote its modeling interpretation). If the information model description is contained within the same document, this value is hot-linked to that description.
XSD Name The equivalent name of the UML attribute name in the XSD i.e. the XML element name.
XSD Type The XSD type - this will always be "Element".
XSD Data Type The data-type in the context of the XSD. This is hot-linked to the corresponding description table in the binding.

toc | top

B1.2 UML/XSD Class Mapping Table Definition

Table B1.2 provides the key to the descriptions of UML to XSD class mapping tables. This table shows the relationship between the two modeling components:

Table B1.2 The key to the descriptions of UML to XSD class mapping tables.
Feature Definition and Usage
Name The name of the UML class and the associated set of attributes and characteristics. The first row is used to describe the UML class. Camel-case is used for the attribute and characteristic names.
UML Artifact The UML Class will be denoted as "Root", "Core" or "Derived" depending on the nature of the class. The list of attributes (mapped to XML elements) and characteristics (mapped to XML attributes) will be identified as either "Attributes" or "Characteristics".
Data Type The data-type has several permitted values:
  • PT:... - denotes a primitive type with "..." replaced by the actual primitiveType name
  • DT:... (PT:...) - denotes a derived type of name "..." derived from the primitive type "PT:..."
  • [Enumeration(...)] - denotes an enumeration of name "..."
  • [List(...)] - denotes a list of the name "..."
  • [Union(...)] - denotes a union of one or more data-types with the name "..."
  • [Imported(...)] - denotes a class with the name "..." has been imported from another specification
  • "Container[...]" - denotes a class of stereotype "..."
Multiplicity The multiplicity of the child attribute/characteristic. The value for the Class itself is "-N/A-". The multiplicity values are:
  • "0..1" [optional; restricted]
  • "0..*" [optional; unrestricted]
  • "1" [mandatory; restricted]
  • "1..*" [mandatory; unrestricted]
The multiplicity will also indicate when groups of elements have variable multiplicity. In the case when a selection between groups of elements is used then this is denoted by "XOR" being displayed above the multiplicity for each of the grouped elements. Alongside the XOR is the multiplicity of the group as a whole.
XSD Name This is the equivalent name of the UML artifact in the XSD. In the case of a "Derived" class the UML attribute may be used to define constraints on the primitiveType and so may not have visibility in an instance. In this case the name entry will be "[ No XML instance visibility ]".
XSD Type The XSD data-type. For the Class this will have either the value "ComplexType" or "SimpleType" or the statement "There is no equivalent derived complexType. This is a logical class that is used to identify a namespace constraint.". For the attributes the value is either "Element (Global)" or "Element (Local)" depending on the scoping. For the characteristics the value is either "Attribute (Global)" or "Attribute (Local)" depending on the scoping. In the case of a "Derived" class the UML attribute may be used to define constraints on the primitiveType and so may not have visibility in an instance. In this case the type entry will denote the type of restriction i.e. MinLength, MaxLength, WhiteSpace, MinInclusive, MaxInclusive and Pattern.

toc | top

B1.3 UML/XSD Enumerated and Enumerated List Class Mapping Table Definition

Table B1.3 provides the key to the descriptions of UML to XSD enumerated and enumerated list class mapping tables.

Table B1.3 The key to the descriptions of UML to XSD enumerated and enumerated list class mapping tables.
Feature Definition and Usage
Enumeration Class Name or Enumeration List Class Name The name of the enumeration class or the enumeration list class.
Description The list of permitted tokens for the enumeration or list. Each value is separated by the "|" character.

toc | top

B1.4 UML/XSD List and Union Class Mapping Table Definition

Table B1.4 provides the key to the descriptions of UML to XSD list and union class mapping tables.

Table B1.4 The key to the descriptions of UML to XSD list and union class mapping tables.
Feature Definition and Usage
List/Union Class Name The name of the list or union class.
Description The list of primitive types and simple derived types from which the list of values can be derived. Links to the definition of the description of the primitive and derived types provided elsewhere in the UML/XSD mapping are supplied.

toc | top

B1.5 UML/XSD Primitive Types Mapping Table Definition

Table B1.5 provides the key to the descriptions of UML to XSD primitive-type mapping tables.

Table B1.5 The key to the descriptions of UML to XSD primitive mapping tables.
Feature Definition and Usage
Primitive Type Name The name of the primitive type used in the specification. Links to the definition of the primitive types, if provided elsewhere in the document, are supplied.
Description The equivalent XML base data type that is used in the XSD binding.

toc | top

B1.6 XSD Description for an Element

Table B1.6 provides the key to the descriptions of XSD element tables.

Table B1.6 The key to the descriptions of XSD element tables.
Feature Definition and Usage
Namespace The namespace for the XSD element.
Diagram This diagram consists of three types of linked blocks. Straight link lines denote XML sequence whereas diagonal lines denote XML selection/unordered. The block forms are:
  • Element Blocks - blue and grey shaded rounded rectangles containing the name of the element, its data-type, any default value and the multiplicity (denoted by a circle containing either the symbol "?", "1", "*", "+" or "U" representing optional, required, optionally many, at least one or unordered respectively. Unordered makes use of an associated set of Schematron Rules). If the element inherits features from another class then it contains a purple shadow that names the complexType from which the elements/attributes are inherited;
  • Attribute Blocks - orange and grey shaded rounded rectangles containing the name of the attribute, its data-type, any default value and the multiplicity (denoted by a circle containing either the symbol "?" or "1" representing option or required respectively);
  • Attribute Group Blocks - orange shaded rounded rectangle containing the name of the attribute group;
  • Purple Surrounds - a surround on the attributes block denotes inherited attributes and a surround on the element block denotes inherited elements.
Type The data-type for the element. This will possible entries are:
  • The name of the primitiveType data-type
  • Statement of an enumeration
  • The import class name written as [Import (...)]
  • The actual data-type with a link to the corresponding declaration.
Type Hierachy The identification of the superclass upon which this type is based (the superclass is shown on the top line). This indicates the source of the inherited set of XML elements and attributes for the element.
Properties The set of properties for the element including (these will not be shown for Global elements):
  • Content - the type of content i.e "simple" or "complex"
  • Mixed - whether or not the content is a mixture of content/element {true, false}
  • MinOccurs - the minimum number of occurrences
  • MaxOccurs - the maximum number of occurrences
Used by The features in the XSD that make use of this global or root element. These features are listed under the heading "ComplexTypes". Each of the entries is linked to its formal description table.
Facets The permitted set of facets for the content i.e. the ways in which the content is further constrained. This row is only present if there are associated facets. The set of permitted facets are:
  • Enumeration - a permitted value
  • MinLength - the required minimum number of characters
  • MaxLength - the maximum number of characters
  • WhiteSpace - default handling of white-space i.e. preserve or replace or collapse
  • MinInclusive - the permitted minimum value (inclusive)
  • MaxInclusive - the permitted maximum value (inclusive)
  • Pattern - the permitted character set defined as a regular expression
Model The set of child elements. This is an ordered list of elements (as per the sequence in the data-type complexType) and accompanied by their multiplicity. Links to the corresponding declarations are supplied. In the case where the type is an enumeration or primitiveType then the value is "N/A". The value may also be "Empty" to indicate that no children are permitted. If the element is imported i.e. from an external XSD, only the URL for that XSD will be given.
Attributes The set of global and local XML attributes for this complexType (if the element is imported i.e. from an external XSD, only the URL for that XSD will be given). Links are made to the associated tabular definitions. Each attribute is described by:
  • QName - the name with a link to the corresponding table description
  • Type - the data-type
  • Inherited - Yes/No statement of whether or not this attribute is inherited from a base complexType
  • Scope - the scope defined as either "Local" or "Global"
  • Use - the multiplicity as either "Required" or "Optional"
  • Default - the default value or a "-" if there is none
Schematron Rules The set of schematron rules to be applied for the element grouped as:
  • Unordered Class - the Schematron Rules that enforce the "Unordered" stereotype;
  • NS Constraint - the Schematron Rules that enforce the constraints on extension XML attributes;
  • Explicit Rules - the Schematron Rules that enforce the explicitly defined constraints for the information model.
Source The equivalent XSD code for the declaration of the element. This includes the multiplicity and default values for the element. See the W3C XSD documentation for the description of the permitted contents for this declaration. If the element is imported i.e. from an external XSD, only the URL for that XSD will be given.

toc | top

B1.7 XSD Description for a Complex Type

Table B1.7 provides the key to the descriptions of XSD complex type tables.

Table B1.7 The key to the descriptions of XSD complex type tables.
Feature Definition and Usage
Namespace The namespace for the XSD complexType.
Annotations The documentation comment for the data-type (the comment within the XSD).
Diagram This diagram consists of four types of linked blocks. Straight link lines denote XML sequence whereas diagonal lines denote XML selection/unordered. The block forms are:
  • ComplexType Block - a purple and grey shaded rectangle containing the name of the complexType and identification of whether it is abstract and supports mixed content;
  • Element Blocks - blue and grey shaded rounded rectangles containing the name of the element, its data-type, any default value and the multiplicity (denoted by a circle containing either the symbol "?", "1", "*", "+" or "U" representing optional, required, optionally many, at least one or unordered respectively. Unordered makes use of an associated set of Schematron Rules);
  • Attribute Blocks - orange and grey shaded rounded rectangles containing the name of the attribute, its data-type, any default value and the multiplicity (denoted by a circle containing either the symbol "?" or "1" representing option or required respectively);
  • Attribute Group Blocks - orange shaded rounded rectangle containing the name of the attribute group;
  • Purple Surrounds - a surround on the attributes block denotes inherited attributes and a surround on the element block denotes inherited elements.
Properties The properties of the class expressed in terms of whether or not the complexType is abstract {true, false} or whether it supports mixed content {true, false}.
Facets The permitted set of facets for the content i.e. the ways in which the content is further constrained. This row is only present if there are associated facets. The set of permitted facets are:
  • Enumeration - a permitted value
  • MinLength - the required minimum number of characters
  • MaxLength - the maximum number of characters
  • WhiteSpace - default handling of white-space i.e. preserve or replace or collapse
  • MinInclusive - the permitted minimum value (inclusive)
  • MaxInclusive - the permitted maximum value (inclusive)
  • Pattern - the permitted character set defined as a regular expression
Used by The features in the XSD that make use of this complexType. These features are listed under the headings "Root Elements", "Elements" and "ComplexTypes". Each of the entries is linked to its formal description table.
Model The set of child elements. This is an ordered list of elements (as per the sequence in the complexType) and accompanied by their multiplicity. Links to the corresponding declarations are supplied. In the case where the type is an enumeration or primitiveType then the value is "N/A". The value may also be "Empty" to indicate that no children are permitted. In some situations the value may be "None" denoting that there are no children defined e.g. for a base class from which other classes are derived and which may have children as part of the extension.
Attributes The set of global and local XML attributes for this complexType. Links are made to the associated tabular definitions. Each attribute is described by:
  • QName - the name with a link to the corresponding table description
  • Type - the data-type
  • Inherited - Yes/No statement of whether or not this attribute is inherited from a base complexType
  • Scope - the scope defined as either "Local" or "Global"
  • Use - the multiplicity as either "Required" or "Optional"
  • Default - the default value or a "-" if there is none
Schematron Rules The set of schematron rules to be applied for the class grouped as:
  • Unordered Class - the Schematron Rules that enforce the "Unordered" stereotype;
  • NS Constraint - the Schematron Rules that enforce the constraints on extension XML attributes;
  • Explicit Rules - the Schematron Rules that enforce the explicitly defined constraints for the information model.
Source The equivalent XSD code for the declaration of the complexType. This is the full declaration. See the W3C XSD documentation for the description of the permitted contents for this declaration.

toc | top

B1.8 XSD Description for a Simple Type

Table B1.8 provides the key to the descriptions of XSD simple type tables.

Table B1.8 The key to the descriptions of XSD simple type tables.
Feature Definition and Usage
Namespace The namespace for the XSD simpleType.
Diagram This diagram consists of a single block. The block form is:
  • SimpleType Block - a green and grey shaded rectangle containing the name of the simpleType and its data-type
Type The data-type for the element. This is either a primitiveType or an enumeration.
Facets The permitted set of facets for the content i.e. the ways in which the content is further constrained. This row is only present if there are associated facets. The set of permitted facets are:
  • Enumeration - a permitted value
  • MinLength - the required minimum number of characters
  • MaxLength - the maximum number of characters
  • WhiteSpace - default handling of white-space i.e. preserve or replace or collapse
  • MinInclusive - the permitted minimum value (inclusive)
  • MaxInclusive - the permitted maximum value (inclusive)
  • Pattern - the permitted character set defined as a regular expression
Used by The features in the XSD that make use of this simpleType. These features are listed under the headings "Attributes", "Elements" and "ComplexTypes". Each of the entries is linked to its formal description table.
Source The equivalent XSD code for the declaration of the simpleType. This is the full declaration. See the W3C XSD documentation for the description of the permitted contents for this declaration.

toc | top

B1.9 XSD Description for an Attribute Group

Table B1.9 provides the key to the descriptions of XSD attribute group tables.

Table B1.9 The key to the descriptions of XSD attribute group tables.
Feature Definition and Usage
Namespace The namespace for the XSD attribute group.
Diagram This diagram consists of two types of linked blocks:
  • Attribute Group Block - an orange shaded rectangle containing the name of the attribute group
  • Attribute Blocks - an orange and grey shaded rectangle containing the name of the attribute, its data-type, any default value and the multiplicity (denoted by a circle containing either the symbol "?" or "1" representing optional or required respectively)
Used by The features in the XSD that make use of this attributeGroup. These features are listed under the heading "ComplexTypes". Each of the entries is linked to its formal description table.
Attributes The set of XML attributes that constitute the attributeGroup. This includes the data-type and multiplicity.
Schematron Rules The set of schematron rules to be applied for the attributeGroup are:
  • NS Constraint - the Schematron Rules that enforce the constraints on extension XML attributes;
  • Explicit Rules - the Schematron Rules that enforce the explicitly defined constraints for the information model.
Source The equivalent XSD code for the declaration of the attributeGroup. See the W3C XSD documentation for the description of the permitted contents for this declaration.

toc | top

B1.10 XSD Description for an Attribute

Table B1.10 provides the key to the descriptions of XSD attribute tables.

Table B1.10 The key to the descriptions of XSD attribute tables.
Feature Definition and Usage
Namespace The namespace for the XSD attribute. Only external/imported attributes have a namespace.
Properties The properties of the attributes expressed in terms of the multiplicity i.e. "Optional" or "Required" and the default value (not all attributes will have a default value).
Facets The permitted set of facets for the content i.e. the ways in which the content is further constrained. This row is only present if there are associated facets. The set of permitted facets are:
  • Enumeration - a permitted value
  • MinLength - the required minimum number of characters
  • MaxLength - the maximum number of characters
  • WhiteSpace - default handling of white-space i.e. preserve or replace or collapse
  • MinInclusive - the permitted minimum value (inclusive)
  • MaxInclusive - the permitted maximum value (inclusive)
  • Pattern - the permitted character set defined as a regular expression
Source The equivalent XSD code for the declaration of the attribute. See the W3C XSD documentation for the description of the permitted contents for this declaration.

toc | top

B1.11 VDEX Description for an External Vocabulary

Table B1.11 provides the key to the descriptions of VDEX tables.

Table B1.11 The key to the descriptions of VDEX vocabulary binding tables.
Feature Definition
Name The name/title for the vocabulary.
Identifier The unique identifier the vocabulary.
Location The Web location for the VDEX file.
Type The type of vocabulary. The choice is "glossaryOrDictionary", "flatTokenTerms", "hierarchicalTokenTerms", "thesaurus" or "lax" (see the 1EdTech VDEX Specification [VDEX, 04] for the use of these terms).
Publisher The publisher of the vocabulary.
Keywords The keywords for the vocabulary.
Terms The set of terms that constitute the vocabulary. Each term there is defined by its:
  • Name - the vocabulary name/token
  • Status - the release status of the term either "Draft", "Provisional" or "Final"
  • Caption - the human readable caption/label for the term
  • Description - the meaning of the term

toc | top

Appendix C XSD Listing

C1 QTI Results Reporting XSD Listing

This section is NOT NORMATIVE.

The XSD listing is shown below (the XSD is available at: https://purl.imsglobal.org/spec/qti/v3p0/schema/xsd/imsqti_resultv3p0_v1p0.xsd).

<?xml version = "1.0" encoding = "UTF-8"?>
<xs:schema xmlns="http://www.imsglobal.org/xsd/imsqti_result_v3p0"
     targetNamespace="http://www.imsglobal.org/xsd/imsqti_result_v3p0"
     xmlns:xs="http://www.w3.org/2001/XMLSchema"
     version="1EDTECH QTI RESULT REPORT 3.0.0"
     elementFormDefault="qualified"
     attributeFormDefault="unqualified">
    <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="https://purl.imsglobal.org/spec/w3/2001/schema/xsd/xml.xsd" />

    <xs:annotation>
        <xs:documentation>
            XSD Data File Information
            =========================
            Author:         Colin Smythe (1EdTech, UK) and Tom Hoffmann (1EdTech, USA)
            Date:           1st November, 2022
            Version:        2.0
            Status:         Candidate Final Public
            Description:    This is the Platform Specific Model of the AssessmentResult object in the 1EdTech QTI 3.0 Specification Information Model. It is this representation that is used to produce the XSD binding for the 1EdTech QTI Result Report 3.0.

            History:        This version supersedes the full 1EdTech QTI Results Report v2.2 specification.
            
            License:        IPR and Distribution Notices
            
                            This machine readable file is derived from the 1EdTech Question and Test Interoperability (QTI) Results Report Version 3.0
                            found at http://www.1edtech.org/question and the original 1EdTech schema binding or code base
                            http://www.1edtech.org/question.
            
                            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.
            
                            1EdTech 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 1EdTech procedures with respect to rights in 1EdTech 
                            specifications can be found at the 1EdTech Intellectual Property Rights web page: http://www.1edtech.org/ipr/imsipr_policyFinal.pdf.
            
                            Copyright (c) 1EdTech Consortium 1999-2022. All Rights Reserved.
            
                            Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: http://www.1edtech.org/license.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 1EdTech 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 IMPLEMENTERS 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.
            
            Source UML File Information
            ===========================
            The source file information must be supplied as an XMI file (without diagram layout information).
            The supported UML authoring tools are:
            (a) Poseidon - v6 (and later)
            (b) Papyrus - v1.1.3 (and later)
            
            Source XSLT File Information
            ============================
            XSL Generator:    Specificationv1p0_GenerationToolv1.xsl
            XSLT Processor:   Saxon
            Release:          1.0
            Date:             31st October, 2022
            Autogen Engineer: Colin Smythe (1EdTech, UK)
            Autogen Date:     2022-10-25
            
            1EdTech Auto-generation Binding Tool-kit (E-BAT)
            ================================================
            This file was auto-generated using the 1EdTech Binding Auto-generation Tool-kit (E-BAT).  While every
            attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
            that this is an experimental tool.  Permission is given to make use of this tool.  1EdTech makes no
            claim on the materials created by third party users of this tool.  Details on how to use this tool
            are contained in the 1EdTech "E-BAT" documentation available at the 1EdTech web-site:
            http://www.1edtech.org.
            
            Tool Copyright:  2012-2022  (c) 1EdTech Consortium Inc.  All Rights Reserved.
        </xs:documentation>
    </xs:annotation>

    <!-- Generate Global Attributes (non-assigned) ******************************************************** -->

    <!-- ================================================================================================== -->

    <!-- Generate Global Attributes *********************************************************************** -->

    <!-- ================================================================================================== -->

    <!-- Generate Global List Types *********************************************************************** -->

    <xs:simpleType name="IdentifierListDType">
        <xs:restriction base="xs:NCName" />
    </xs:simpleType>

    <xs:simpleType name="ViewEnumDType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="author" />
            <xs:enumeration value="candidate" />
            <xs:enumeration value="proctor" />
            <xs:enumeration value="scorer" />
            <xs:enumeration value="testConstructor" />
            <xs:enumeration value="tutor" />
        </xs:restriction>
    </xs:simpleType>

    <!-- ================================================================================================== -->

    <!-- Generate Namespaced extension Group  ************************************************************* -->

    <xs:group name="grpStrict.any">
        <xs:annotation>
            <xs:documentation>
                Any namespaced element from any namespace, other than the target namespace, may be included within an "any" element.
                The namespace for the imported element must be defined in the instance, and the schema must be imported.
                The extension has a definition of "strict" i.e. they must have their own namespace.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:any namespace = "##other" processContents = "strict" minOccurs = "0" maxOccurs = "unbounded" />
        </xs:sequence>
    </xs:group>

    <!-- ================================================================================================== -->

    <!-- Generate Special DataTypes  ********************************************************************** -->

    <xs:complexType name="EmptyPrimitiveTypeDType">
        <xs:complexContent>
            <xs:restriction base="xs:anyType" />
        </xs:complexContent>
    </xs:complexType>

    <!-- ================================================================================================== -->

    <!-- Generate the enumerated simpleType declarations ************************************************** -->

    <!-- ================================================================================================== -->

    <!-- Generate the simpleType elements based on IMS data-types (Parameter) ***************************** -->

    <!-- ================================================================================================== -->

    <!-- Generate the simpleType elements based on IMS data-types (Derived) ******************************* -->

    <!-- ================================================================================================== -->

    <!-- Generate the simpleType elements based on IMS data-types (Union) ********************************* -->

    <!-- ================================================================================================== -->

    <!-- Generate the simpleType elements based on IMS data-types (Complex) ******************************* -->

    <!-- ================================================================================================== -->

    <!-- Generate the derived data-type elements based upon simpleType ************************************ -->

    <xs:simpleType name="DateTimeDType">
        <xs:restriction base="xs:dateTime">
            <xs:pattern value="[0-9]{4}.*" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="IdentifierDType">
        <xs:restriction base="xs:NCName" />
    </xs:simpleType>

    <xs:simpleType name="UniqueIdentifierRefDType">
        <xs:restriction base="xs:NCName" />
    </xs:simpleType>

    <!-- ================================================================================================== -->

    <!-- Generate the derived data-type elements based upon derived simpleType **************************** -->

    <!-- ================================================================================================== -->

    <!-- Generate the ComplexTypes ************************************************************************ -->

    <xs:complexType name="AssessmentResultDType" abstract="false" mixed="false">
        <xs:annotation>
            <xs:documentation source="documentation">
                This is the root class to contain the assessment result data. An Assessment Result is used
                to report the results of a candidate's interaction with a test and/or one or more items a-
                ttempted. Information about the test is optional, in some systems it may be possible to i-
                nteract 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.      
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="context" type="ContextDType" minOccurs="1" maxOccurs="1" />
            <xs:element name="testResult" type="TestResultDType" minOccurs="0" maxOccurs="1" />
            <xs:element name="itemResult" type="ItemResultDType" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="CandidateResponseDType" abstract="false" mixed="false">
        <xs:annotation>
            <xs:documentation source="documentation">
                The response given by the candidate.                                                      
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="value" type="ValueDType" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ContextDType" abstract="false" mixed="false">
        <xs:annotation>
            <xs:documentation source="documentation">
                This is the context for the 'assessmentResult'. It provides the corresponding set of iden-
                tifiers.                                                                                  
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="sessionIdentifier" type="SessionIdentifierDType" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:attribute name="sourcedId" use="optional" type="IdentifierDType" />
    </xs:complexType>

    <xs:complexType name="ContextTemplateVariableDType" abstract="false" mixed="false">
        <xs:annotation>
            <xs:documentation source="documentation">
                The Item result information related to a Template or a Context Variable.                  
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="value" type="ValueDType" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:attribute name="identifier" use="required" type="IdentifierDType" />
        <xs:attribute name="cardinality" use="required">
            <xs:simpleType>
                <xs:annotation>
                    <xs:documentation source="documentation">
                        An expression or itemVariable can either be single-valued or multi-valued. A multi-valued 
                        expression (or variable) is called a container. A container contains a list of values, th-
                        is 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 mult-
                        iple occurrences of the same value. In other words, [A,B,B,C] is an acceptable value for a
                        container. A container with cardinality multiple and value [A,B,C] is equivalent to a sim-
                        ilar one with value [C,B,A] whereas these two values would be considered distinct for con-
                        tainers with cardinality ordered. When used as the value of a response variable this dist-
                        inction is typified by the difference between selecting choices in a multi-response multi-
                        -choice task and ranking choices in an order objects task. In the language of [ISO 11404] 
                        a container with multiple cardinality is a "bag-type", a container with ordered cardinali-
                        ty is a "sequence-type" and a container with record cardinality is a "record-type". The r-
                        ecord 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 str-
                        ingInteraction abstract class.                                                            
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="multiple" />
                    <xs:enumeration value="ordered" />
                    <xs:enumeration value="record" />
                    <xs:enumeration value="single" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="baseType" use="optional">
            <xs:simpleType>
                <xs:annotation>
                    <xs:documentation source="documentation">
                        A base-type is simply a description of a set of atomic values (atomic to this specificati-
                        on). Note that several of the baseTypes used to define the runtime data model have identi-
                        cal 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 modeling.                           
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="boolean" />
                    <xs:enumeration value="directedPair" />
                    <xs:enumeration value="duration" />
                    <xs:enumeration value="file" />
                    <xs:enumeration value="float" />
                    <xs:enumeration value="identifier" />
                    <xs:enumeration value="integer" />
                    <xs:enumeration value="pair" />
                    <xs:enumeration value="point" />
                    <xs:enumeration value="string" />
                    <xs:enumeration value="uri" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>

    <xs:complexType name="CorrectResponseDType" abstract="false" mixed="false">
        <xs:annotation>
            <xs:documentation source="documentation">
                The correct response may be output as part of the report if desired. Systems are not limi-
                ted to reporting correct responses declared in responseDeclarations. For example, a corre-
                ct response may be set by a templateRule or may simply have been suppressed from the decl-
                aration passed to the delivery engine e.g. for security.                                  
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="value" type="ValueDType" minOccurs="1" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:attribute name="interpretation" use="optional" type="xs:string" />
    </xs:complexType>

    <xs:complexType name="ItemResultDType" abstract="false" mixed="false">
        <xs:annotation>
            <xs:documentation source="documentation">
                The result of an item session is reported with an itemResult. A report may contain multip-
                le results for the same instance of an item representing multiple attempts, progression t-
                hrough an adaptive item or even more detailed tracking. In these cases, each item result  
                must have a different datestamp.                                                          
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="responseVariable" type="ResponseVariableDType" minOccurs="1" maxOccurs="1"/>
                <xs:element name="templateVariable" type="ContextTemplateVariableDType" minOccurs="1" maxOccurs="1"/>
                <xs:element name="outcomeVariable" type="OutcomeVariableDType" minOccurs="1" maxOccurs="1"/>
                <xs:element name="contextVariable" type="ContextTemplateVariableDType" minOccurs="1" maxOccurs="1"/>
            </xs:choice>
            <xs:element name="candidateComment" type="xs:string" minOccurs="0" maxOccurs="1" />
            <xs:element name="support" type="SupportDType" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:attribute name="identifier" use="required" type="IdentifierDType" />
        <xs:attribute name="sequenceIndex" use="optional" type="xs:integer" />
        <xs:attribute name="datestamp" use="required" type="DateTimeDType" />
        <xs:attribute name="sessionStatus" use="required">
            <xs:simpleType>
                <xs:annotation>
                    <xs:documentation source="documentation">
                        The session status is used to keep track of the status of the item variables in an item s-
                        ession.                                                                                   
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="final" />
                    <xs:enumeration value="initial" />
                    <xs:enumeration value="pendingExternalScoring" />
                    <xs:enumeration value="pendingResponseProcessing" />
                    <xs:enumeration value="pendingSubmission" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>

    <xs:complexType name="OutcomeInformationDType" abstract="false" mixed="false">
        <xs:annotation>
            <xs:documentation source="documentation">
                The container for the extensions to the Outcome Variables.                                
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:group ref="grpStrict.any" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="OutcomeVariableDType" abstract="false" mixed="false">
        <xs:annotation>
            <xs:documentation source="documentation">
                The Item result information related to an 'Outcome Variable'.                             
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="value" type="ValueDType" minOccurs="0" maxOccurs="unbounded" />
            <xs:element name="outcomeInformation" type="OutcomeInformationDType" minOccurs="0" maxOccurs="1" />
        </xs:sequence>
        <xs:attribute name="identifier" use="required" type="IdentifierDType" />
        <xs:attribute name="cardinality" use="required">
            <xs:simpleType>
                <xs:annotation>
                    <xs:documentation source="documentation">
                        An expression or itemVariable can either be single-valued or multi-valued. A multi-valued 
                        expression (or variable) is called a container. A container contains a list of values, th-
                        is 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 mult-
                        iple occurrences of the same value. In other words, [A,B,B,C] is an acceptable value for a
                        container. A container with cardinality multiple and value [A,B,C] is equivalent to a sim-
                        ilar one with value [C,B,A] whereas these two values would be considered distinct for con-
                        tainers with cardinality ordered. When used as the value of a response variable this dist-
                        inction is typified by the difference between selecting choices in a multi-response multi-
                        -choice task and ranking choices in an order objects task. In the language of [ISO 11404] 
                        a container with multiple cardinality is a "bag-type", a container with ordered cardinali-
                        ty is a "sequence-type" and a container with record cardinality is a "record-type". The r-
                        ecord 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 str-
                        ingInteraction abstract class.                                                            
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="multiple" />
                    <xs:enumeration value="ordered" />
                    <xs:enumeration value="record" />
                    <xs:enumeration value="single" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="baseType" use="optional">
            <xs:simpleType>
                <xs:annotation>
                    <xs:documentation source="documentation">
                        A base-type is simply a description of a set of atomic values (atomic to this specificati-
                        on). Note that several of the baseTypes used to define the runtime data model have identi-
                        cal 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 modeling.                           
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="boolean" />
                    <xs:enumeration value="directedPair" />
                    <xs:enumeration value="duration" />
                    <xs:enumeration value="file" />
                    <xs:enumeration value="float" />
                    <xs:enumeration value="identifier" />
                    <xs:enumeration value="integer" />
                    <xs:enumeration value="pair" />
                    <xs:enumeration value="point" />
                    <xs:enumeration value="string" />
                    <xs:enumeration value="uri" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="view" use="optional">
            <xs:simpleType>
                <xs:list itemType="ViewEnumDType" />
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="interpretation" use="optional" type="xs:string" />
        <xs:attribute name="longInterpretation" use="optional" type="xs:anyURI" />
        <xs:attribute name="normalMaximum" use="optional" type="xs:double" />
        <xs:attribute name="normalMinimum" use="optional" type="xs:double" />
        <xs:attribute name="masteryValue" use="optional" type="xs:double" />
        <xs:attribute name="external-scored" use="optional">
            <xs:simpleType>
                <xs:annotation>
                    <xs:documentation source="documentation">
                        Identifies the set of modes for the external scoring of the Item.                         
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="externalMachine" />
                    <xs:enumeration value="human" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="variable-identifier-ref" use="optional" type="UniqueIdentifierRefDType" />
    </xs:complexType>

    <xs:complexType name="ResponseVariableDType" abstract="false" mixed="false">
        <xs:annotation>
            <xs:documentation source="documentation">
                The Item result information related to a 'Response Variable'.                             
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="correctResponse" type="CorrectResponseDType" minOccurs="0" maxOccurs="1" />
            <xs:element name="candidateResponse" type="CandidateResponseDType" minOccurs="1" maxOccurs="1" />
        </xs:sequence>
        <xs:attribute name="identifier" use="required" type="IdentifierDType" />
        <xs:attribute name="cardinality" use="required">
            <xs:simpleType>
                <xs:annotation>
                    <xs:documentation source="documentation">
                        An expression or itemVariable can either be single-valued or multi-valued. A multi-valued 
                        expression (or variable) is called a container. A container contains a list of values, th-
                        is 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 mult-
                        iple occurrences of the same value. In other words, [A,B,B,C] is an acceptable value for a
                        container. A container with cardinality multiple and value [A,B,C] is equivalent to a sim-
                        ilar one with value [C,B,A] whereas these two values would be considered distinct for con-
                        tainers with cardinality ordered. When used as the value of a response variable this dist-
                        inction is typified by the difference between selecting choices in a multi-response multi-
                        -choice task and ranking choices in an order objects task. In the language of [ISO 11404] 
                        a container with multiple cardinality is a "bag-type", a container with ordered cardinali-
                        ty is a "sequence-type" and a container with record cardinality is a "record-type". The r-
                        ecord 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 str-
                        ingInteraction abstract class.                                                            
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="multiple" />
                    <xs:enumeration value="ordered" />
                    <xs:enumeration value="record" />
                    <xs:enumeration value="single" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="baseType" use="optional">
            <xs:simpleType>
                <xs:annotation>
                    <xs:documentation source="documentation">
                        A base-type is simply a description of a set of atomic values (atomic to this specificati-
                        on). Note that several of the baseTypes used to define the runtime data model have identi-
                        cal 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 modeling.                           
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="boolean" />
                    <xs:enumeration value="directedPair" />
                    <xs:enumeration value="duration" />
                    <xs:enumeration value="file" />
                    <xs:enumeration value="float" />
                    <xs:enumeration value="identifier" />
                    <xs:enumeration value="integer" />
                    <xs:enumeration value="pair" />
                    <xs:enumeration value="point" />
                    <xs:enumeration value="string" />
                    <xs:enumeration value="uri" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="choiceSequence" use="optional">
            <xs:simpleType>
                <xs:list itemType="IdentifierListDType" />
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="scoreStatus" use="optional">
            <xs:simpleType>
                <xs:annotation>
                    <xs:documentation source="documentation">
                        This is the set of permitted values for the 'scoreStatus' attribute for the ItemResult cl-
                        ass.                                                                                      
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="notscored" />
                    <xs:enumeration value="scored" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="answeredStatus" use="optional">
            <xs:simpleType>
                <xs:annotation>
                    <xs:documentation source="documentation">
                        This is the definition for the set of permitted values for the 'answeredStatus' attribute 
                        for the 'ItemResult' class.                                                               
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="notpresented" />
                    <xs:enumeration value="presented" />
                    <xs:enumeration value="attempted" />
                    <xs:enumeration value="answered" />
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>

    <xs:complexType name="TestResultDType" abstract="false" mixed="false">
        <xs:annotation>
            <xs:documentation source="documentation">
                The container for the Test result. When a test result is given the following item results 
                must relate only to items that were selected for presentation as part of the corresponding
                test session. Furthermore, all items selected for presentation should be reported with a  
                corresponding itemResult.                                                                 
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="responseVariable" type="ResponseVariableDType" minOccurs="1" maxOccurs="1"/>
                <xs:element name="templateVariable" type="ContextTemplateVariableDType" minOccurs="1" maxOccurs="1"/>
                <xs:element name="outcomeVariable" type="OutcomeVariableDType" minOccurs="1" maxOccurs="1"/>
                <xs:element name="contextVariable" type="ContextTemplateVariableDType" minOccurs="1" maxOccurs="1"/>
            </xs:choice>
            <xs:element name="support" type="SupportDType" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:attribute name="identifier" use="required" type="IdentifierDType" />
        <xs:attribute name="datestamp" use="required" type="DateTimeDType" />
    </xs:complexType>

    <!-- ================================================================================================== -->

    <!-- Generate the SOAP Binding ComplexTypes *********************************************************** -->

    <!-- ================================================================================================== -->

    <!-- Generate the derived ComplexTypes **************************************************************** -->

    <xs:complexType name="SessionIdentifierDType" abstract="false" mixed="false">
        <xs:annotation>
            <xs:documentation source="documentation">
                The system that creates the result (for example, the test delivery system) should assign a
                session identifier that it can use to identify the session.                               
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="EmptyPrimitiveTypeDType">
                <xs:attribute name="sourceID" use="required" type="xs:anyURI" />
                <xs:attribute name="identifier" use="required" type="IdentifierDType" />
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="SupportDType" abstract="false" mixed="false">
        <xs:annotation>
            <xs:documentation source="documentation">
                This is the container for the definition of an associated support feature. These features 
                are aligned to the QTI profile of the 1EdTech Access for All Personal Needs and Preferenc-
                es (AfA PNP).                                                                             
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="EmptyPrimitiveTypeDType">
                <xs:attribute name="name" use="required" type="xs:NCName" />
                <xs:attribute name="assignment" use="required">
                    <xs:simpleType>
                        <xs:annotation>
                            <xs:documentation source="documentation">
                                The permitted set of values for the scoping of a support feature.                         
                            </xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="assigned" />
                            <xs:enumeration value="universal" />
                            <xs:enumeration value="prohibited" />
                            <xs:enumeration value="inherit" />
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="value" use="optional" type="xs:normalizedString" />
                <xs:attribute ref="xml:lang" use="optional" />
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="ValueDType" abstract="false" mixed="false">
        <xs:annotation>
            <xs:documentation source="documentation">
                A class that can represent a single value of any baseType in variable declarations and re-
                sult reports. The base-type is defined by the baseType attribute of the declaration except
                in the case of variables with record cardinality.                                         
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:normalizedString">
                <xs:attribute name="fieldIdentifier" use="optional" type="IdentifierDType" />
                <xs:attribute name="baseType" use="optional">
                    <xs:simpleType>
                        <xs:annotation>
                            <xs:documentation source="documentation">
                                A base-type is simply a description of a set of atomic values (atomic to this specificati-
                                on). Note that several of the baseTypes used to define the runtime data model have identi-
                                cal 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 modeling.                           
                            </xs:documentation>
                        </xs:annotation>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="boolean" />
                            <xs:enumeration value="directedPair" />
                            <xs:enumeration value="duration" />
                            <xs:enumeration value="file" />
                            <xs:enumeration value="float" />
                            <xs:enumeration value="identifier" />
                            <xs:enumeration value="integer" />
                            <xs:enumeration value="pair" />
                            <xs:enumeration value="point" />
                            <xs:enumeration value="string" />
                            <xs:enumeration value="uri" />
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <!-- ================================================================================================== -->

    <!-- Declaration of the elements (Complex) ************************************************************ -->

    <!-- ================================================================================================== -->

    <!-- Declaration of the elements (Derived) ************************************************************ -->

    <!-- ================================================================================================== -->

    <!-- Declaration of the root element(s) *************************************************************** -->

    <xs:element name="assessmentResult" type="AssessmentResultDType" />

    <!-- ================================================================================================== -->

</xs:schema>
        

toc | top

About this Document

Title: IMS Question and Test Interoperability (QTI): Results Reporting Information Model and XSD Binding v3.0
Editors: Colin Smythe, 1EdTech
Tom Hoffmann, 1EdTech

Co-chairs: Mark Hakkinen, ETS
Padraig O'hiceadha, HMH
Mike Powell, Pearson

Version: 1.0
Version Date: 1st November, 2022
Status: IMS Candidate Final Public
Summary: This is the definition of the data model and the corresponding XSD binding to be used to support the exchange of QTI Results. This data model defines the object model for the exchange of a QTI-specific Results Report. The data model and XSD binding is described using the IMS profile of UML to support the IMS model driven specification engineering method.

Revision Information: This document supersedes IMS QTI Results Reporting Information Model and XSD Binding 2.2.
Purpose: This document is made available for public review and implementation. Note it is subject to changes until published as a Final Release document.
Document Location: https://www.imsglobal.org/question

toc | top

List of Contributors

The following individuals contributed to the development of this document:

Arjan Aarnink Cito (Netherlands)
Jason Craft Pearson (USA)
Rich Dyck DRC (USA)
Paul Grudnitski Independent Expert (USA)
Mark Hakkinen ETS (USA)
Tjeerd Hans Cito (Netherlands)
Susan Haught 1EdTech (USA)
Tom Hoffmann 1EdTech (USA)
Rob Howard NWEA (USA)
Justin Marks NWEA (USA)
Mark McKell Pearson (USA)
Mark Molenaar Apenutmize (Netherlands)
Padraig O'hiceadha HMH (UK)
Mike Powell Pearson (USA)
Julien Sebire O.A.T (Luxembourg)
Colin Smythe 1EdTech (UK)
Wyatt VanderStucken ETS (USA)

toc | top

Revision History

Version No. Release Date Comments
Candidate Final Public 1.0 1st November, 2022 The first Candidate Final Public Release of QTI Results Reporting 3.0 Specification. This is a combined Information Model, XSD Binding, Implementation Guide and, Conformance and Certification document. This is for early adoption by 1EdTech Contributing Members and for Public Review.

toc | top

1EdTech Consortium, Inc. ("1EdTech") is publishing the information contained in this document ("Specification") for purposes of scientific, experimental, and scholarly collaboration only.

1EdTech 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.

1EdTech would appreciate receiving your comments and suggestions.

Please contact 1EdTech through our website at http://www.1edtech.org.

Please refer to Document Name: 1EdTech Question and Test Interoperability (QTI): Results Reporting Information Model and XSD Binding v3.0

Date: 1st November, 2022

toc | top