IMS Logo

IMS Question and Test Interoperability XML Binding

Version 2.0 Final Specification

Copyright © 2005 IMS Global Learning Consortium, Inc. All Rights Reserved.
The IMS Logo is a registered trademark of IMS/GLC.
Document Name: IMS Question and Test Interoperability XML Binding
Revision: 24 January 2005


Date Issued:
24 January 2005
Latest version:
http://www.imsglobal.org/question/qti_v2p0/imsqti_bindv2p0.html
Register comments or implementations:
http://www.imsglobal.org/developers/ims/imsforum/categories.cfm?catid=23

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 © IMS Global Learning Consortium 2006. All Rights Reserved.

If you wish to distribute this document or use this document to implement a product or service, you must complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm.

This document may be copied and furnished to others by Licensee organizations registered on the IMS website provided that the above copyright notice and this paragraph are included on all such copies. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to IMS, except as needed for the purpose of developing IMS specifications, under the auspices of a chartered IMS work group.

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/question/qti_v2p0/qtiv2p0speclicense.html.

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.

Table of Contents

1. Introduction
2. References
3. Binding of Complex Types
4. Binding of Simple Types
5. XML Binding Reference

1. Introduction

The information model defines a set of classes and data types in an abstract way. When faced with the real task of communicating data between systems these abstract concepts need to be bound to some physical representation, such as a stream of bytes in a computer file.

The document describes the required method of binding the information model when the physical representation is an XML Document. The binding rules are given primarily in the form of an XML Schema with the following target namespace: http://www.imsglobal.org/xsd/imsqti_v2p0. To assist developers who wish to check the validity of QTI XML documents using tools that support document type definitions (DTDs) the binding rules are also represented as a DTD, however, the DTD is not able to express all the constraints contained in the schema and document instances should validate against the schema. QTI document instances must validate against one of the schema or DTD.

2. References

MathML
Mathematical Markup Language (MathML), Version Version 2.0 (Second Edition)
http://www.w3.org/TR/2003/REC-MathML2-20031021/
Published: 2003-10-21
XHTML
XHTML 1.1: The Extensible HyperText Markup Language

3. Binding of Complex Types

Complex types, those that contain other objects through composition and/or have attributes, are represented in the schema as elements with complex content in a straightforward way. Classes that are used as base classes (typically labeled abstract in the model) are used to define an element group consisting of a single choice listing all the non-abstract classes derived from them. Classes with attributes are used to define attribute groups and those that contain other objects (including through inheritance) are used to define element groups describing them.

Elements defined by [XHTML] are not imported directly from an external schema but are instead re-declared as part of the QTI schema. At the time of writing the use of schema for XHTML is at an experimental stage. However, the math element defined by [MathML] is imported from the MathML schema. Note that the use of the MathML schema excludes the use of the entity declarations for mathematical symbols defined in the original MathML DTD and therefore these should not be used for referring to characters within QTI document instances.

4. Binding of Simple Types

Simple datatypes are bound directly to the closest equivalent type in XML Schema, for example, boolean is bound directly to xsd:boolean. Enumerations are bound as enumerated restrictions of xsd:NMTOKEN.

The information model says nothing about how simple types are to be represented in text. For example, the boolean type is an abstract boolean which can be either logically true or logically false. By binding these simple types using XML Schema they automatically inherit the lexical bindings described there. A lexical binding is just a set of rules for representing the abstract type as a run of text characters. For example, XML Schema allows the following strings to represent the values of xsd:boolean: "true", "false", "1" and "0".

XML DTDs have a smaller vocabulary for defining simple types and is therefore not able to impose the same lexical constraints as the schema. Applications that generate QTI document instances that validate against the DTD must still use the same lexical bindings defined by schema even though these will not be checked automatically by the XML parser. For example, in the DTD the boolean type is bound only to NMTOKEN and therefore the XML parser will permit many more strings than the four listed above. However, strings such as "yes" and "no" are still forbidden.

5. XML Binding Reference

<a>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<abbr>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<acronym>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<adaptive>

Description: Profile flag for the adaptive items feature.

Context:

<address>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<and>

Description: An expression that performs a boolean and.

Context:

See:

Elements:

<anyN>

Description: An expression for testing groups of boolean sub-expressions.

Context:

See:

Attributes:

Elements:

<areaMapEntry>

Description: Defines an area for mapping a set of points onto a single real number.

Context:

Attributes:

<areaMapping>

Description: Defines a mapping from the set of points to real numbers using areas.

Context:

Attributes:

Elements:

<assessmentItem>

Description: The root element for QTI items

Context:

Can be the root element of an XML document.

Attributes:

Elements:

associableChoice.ElementGroup

Description: The group of elements that are used in association-type interactions.

Group members: <associableHotspot>, <gap>, <gapImg>, <gapText>, <simpleAssociableChoice>

Context:

Not applicable.

<associableHotspot>

Description: An element that defines a hot area of a graphic for association tasks.

Context:

Attributes:

<associateInteraction>

Description: Interaction in which the candidate must identify pairs of choices from a single set.

Context:

See:

Attributes:

Elements:

atomicBlock.ElementGroup

Description: A group of elements that provide structure but that can only contain elements behaving like spans of text.

Group members: <address>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <p>, <pre>

Context:

See:

atomicInline.ElementGroup

Description: A group of empty elements that behave like spans of text

Group members: <br>, <img>

Context:

See:

<b>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<bankProfile>

Description: An element for describing the capabilities or requirements of an item-bank system.

Context:

Can be the root element of an XML document.

Elements:

baseType.Type

One of the following symbolic values:

<baseValue>

Description: A simple expression returning a constant value of the given base-type.

Context:

See:

Attributes:

<big>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

block.ElementGroup

Description: A group of elements that provide structure to the item body.

Group members: <address>, <associateInteraction>, <blockquote>, <choiceInteraction>, <customInteraction>, <div>, <dl>, <drawingInteraction>, <extendedTextInteraction>, <feedbackBlock>, <gapMatchInteraction>, <graphicAssociateInteraction>, <graphicGapMatchInteraction>, <graphicOrderInteraction>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <hotspotInteraction>, <hottextInteraction>, <hr>, <m:math>, <matchInteraction>, <ol>, <orderInteraction>, <p>, <positionObjectStage>, <pre>, <rubricBlock>, <selectPointInteraction>, <sliderInteraction>, <table>, <templateBlock>, <ul>, <uploadInteraction>

Context:

blockInteraction.ElementGroup

Description: The group of interactions which have inherent structure of their own.

Group members: <associateInteraction>, <choiceInteraction>, <drawingInteraction>, <extendedTextInteraction>, <gapMatchInteraction>, <graphicAssociateInteraction>, <graphicGapMatchInteraction>, <graphicOrderInteraction>, <hotspotInteraction>, <hottextInteraction>, <matchInteraction>, <orderInteraction>, <selectPointInteraction>, <sliderInteraction>, <uploadInteraction>

Context:

See:

blockStatic.ElementGroup

Description: A group of elements that provide structure excluding interactions.

Group members: <address>, <blockquote>, <div>, <dl>, <feedbackBlock>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <hr>, <m:math>, <ol>, <p>, <pre>, <rubricBlock>, <table>, <templateBlock>, <ul>

Context:

See:

<blockquote>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

bodyElement.ElementGroup

Description: The group of elements used to describe the structure, material and interactions within the item body.

Group members: <a>, <abbr>, <acronym>, <address>, <associableHotspot>, <associateInteraction>, <b>, <big>, <blockquote>, <br>, <caption>, <choiceInteraction>, <cite>, <code>, <col>, <colgroup>, <customInteraction>, <dd>, <dfn>, <div>, <dl>, <drawingInteraction>, <dt>, <em>, <endAttemptInteraction>, <extendedTextInteraction>, <feedbackBlock>, <feedbackInline>, <gap>, <gapImg>, <gapMatchInteraction>, <gapText>, <graphicAssociateInteraction>, <graphicGapMatchInteraction>, <graphicOrderInteraction>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <hotspotChoice>, <hotspotInteraction>, <hottext>, <hottextInteraction>, <hr>, <i>, <img>, <inlineChoice>, <inlineChoiceInteraction>, <itemBody>, <kbd>, <li>, <matchInteraction>, <object>, <ol>, <orderInteraction>, <p>, <positionObjectInteraction>, <pre>, <printedVariable>, <prompt>, <q>, <rubricBlock>, <samp>, <selectPointInteraction>, <simpleAssociableChoice>, <simpleChoice>, <sliderInteraction>, <small>, <span>, <strong>, <sub>, <sup>, <table>, <tbody>, <td>, <templateBlock>, <templateInline>, <textEntryInteraction>, <tfoot>, <th>, <thead>, <tr>, <tt>, <ul>, <uploadInteraction>, <var>

Context:

Not applicable.

boolean.Type

A trivial restriction of xsd:boolean.

<br>

Description: Defined by XHTML

Context:

See:

Attributes:

<caption>

Description: Defined by XHTML

Context:

Attributes:

Elements:

cardinality.Type

One of the following symbolic values:

<categorizedStatistic>

Description: A categorized statistic, such as a score-conversion table, expressed as a mapping.

Context:

See:

Attributes:

Elements:

choice.ElementGroup

Description: The group of elements that provide choices from which the candidate may select a response.

Group members: <associableHotspot>, <gap>, <gapImg>, <gapText>, <hotspotChoice>, <hottext>, <inlineChoice>, <simpleAssociableChoice>, <simpleChoice>

Context:

Not applicable.

<choiceInteraction>

Description: The element that represents simple multiple choice and multiple-response interactions.

Context:

See:

Attributes:

Elements:

<cite>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<code>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<col>

Description: Defined by XHTML

Context:

Attributes:

<colgroup>

Description: Defined by XHTML

Context:

Attributes:

Elements:

<composite>

Description: Profile flag for the composite items feature.

Context:

<contains>

Description: An expression that tests a container to determine if it contains another.

Context:

See:

Elements:

<contentProfile>

Description: An element for describing the capabilities or requirements of a system that handles QTI content.

Context:

Can be the root element of an XML document.

Elements:

coords.Type

A trivial restriction of xsd:string.

<correct>

Description: A simple expression returning the correct value associated with a response variable.

Context:

See:

Attributes:

<correctResponse>

Description: Declares the (or a) correct response for a response variable.

Context:

Attributes:

Elements:

<customInteraction>

Description: An element that allows extensions to QTI to be developed for interaction types not covered by the information model.

Context:

See:

Attributes:

Elements:

<customOperator>

Description: An element allowing externally defined expressions to be used.

Context:

See:

Attributes:

Elements:

date.Type

A trivial restriction of xsd:date.

<dd>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<default>

Description: A simple expression returning the default value of an item variable.

Context:

See:

Attributes:

<defaultValue>

Description: Defines the default value for an item variable.

Context:

Attributes:

Elements:

<delete>

Description: An expression that derives a new container by removing a given value from an existing one.

Context:

See:

Elements:

<dfn>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<div>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<divide>

Description: An expression for dividing one number by another.

Context:

See:

Elements:

<dl>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

dlElement.ElementGroup

Description: Elements that can appear within <dl>.

Group members: <dd>, <dt>

Context:

<drawingInteraction>

Description: Interaction in which the candidate draws freely on a given backdrop image.

Context:

See:

Attributes:

Elements:

<dt>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<durationGTE>

Description: An expression for testing the greater-than-or-equal relation between two durations.

Context:

See:

Elements:

<durationLT>

Description: An expression for testing the less-than relation between two durations.

Context:

See:

Elements:

<em>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<endAttemptInteraction>

Description: A special interaction for providing alternative ways to end an attempt.

Context:

See:

Attributes:

<equal>

Description: An expression for testing two numeric values for equality.

Context:

See:

Attributes:

Elements:

<equalRounded>

Description: An expression for testing two numeric values for equality after rounding.

Context:

See:

Attributes:

Elements:

<exitResponse>

Description: A response rule that terminates response processing immediately.

Context:

See:

<exitTemplate>

Description: A template rule that terminates template processing immediately.

Context:

See:

expression.ElementGroup

Description:The group of elements that are used to create expressions for setting variable values and controlling conditional groups of rules.

Group members: <and>, <anyN>, <baseValue>, <contains>, <correct>, <customOperator>, <default>, <delete>, <divide>, <durationGTE>, <durationLT>, <equal>, <equalRounded>, <fieldValue>, <gt>, <gte>, <index>, <inside>, <integerDivide>, <integerModulus>, <integerToFloat>, <isNull>, <lt>, <lte>, <mapResponse>, <mapResponsePoint>, <match>, <member>, <multiple>, <not>, <null>, <or>, <ordered>, <patternMatch>, <power>, <product>, <random>, <randomFloat>, <randomInteger>, <round>, <stringMatch>, <substring>, <subtract>, <sum>, <truncate>, <variable>

Context:

<extendedTextInteraction>

Description: Interaction that allows the candidate to supply an extended free-text response.

Context:

See:

Attributes:

Elements:

<feedbackBlock>

Description: A structural part of the item body whose visibility can be conditionally controlled by the current outcomes.

Context:

See:

Attributes:

Elements:

feedbackElement.ElementGroup

Description: Elements whose visibility can be conditionally controlled depending on the current outcomes.

Group members: <feedbackBlock>, <feedbackInline>

Context:

Not applicable.

<feedbackInline>

Description: A span of text (or equivalent) whose visibility can be conditionally controlled by the current outcomes.

Context:

See:

Attributes:

Elements:

<feedbackIntegrated>

Description: Profile flag for the integrated feedback feature.

Context:

<feedbackModal>

Description: Profile flag for the modal feedback feature.

Context:

<feedbackType>

Context:

Content: a value of type feedbackType.Type.

feedbackType.Type

One of the following symbolic values:

<fieldValue>

Description: An expression that extracts a single field value from a record container.

Context:

See:

Attributes:

Elements:

float.Type

A trivial restriction of xsd:float.

flow.ElementGroup

Description: A group of elements that can appear in contexts where either further structure or spans of text are allowed.

Group members: <a>, <abbr>, <acronym>, <address>, <associateInteraction>, <b>, <big>, <blockquote>, <br>, <choiceInteraction>, <cite>, <code>, <customInteraction>, <dfn>, <div>, <dl>, <drawingInteraction>, <em>, <endAttemptInteraction>, <extendedTextInteraction>, <feedbackBlock>, <feedbackInline>, <gapMatchInteraction>, <graphicAssociateInteraction>, <graphicGapMatchInteraction>, <graphicOrderInteraction>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <hotspotInteraction>, <hottext>, <hottextInteraction>, <hr>, <i>, <img>, <inlineChoiceInteraction>, <kbd>, <m:math>, <matchInteraction>, <object>, <ol>, <orderInteraction>, <p>, <pre>, <printedVariable>, <q>, <rubricBlock>, <samp>, <selectPointInteraction>, <sliderInteraction>, <small>, <span>, <strong>, <sub>, <sup>, <table>, <templateBlock>, <templateInline>, <textEntryInteraction>, <tt>, <ul>, <uploadInteraction>, <var>

Context:

See:

flowStatic.ElementGroup

Description:A group of elements that can appear in contexts where either further structure or spans of text are allowed excluding interactions.

Group members: <a>, <abbr>, <acronym>, <address>, <b>, <big>, <blockquote>, <br>, <cite>, <code>, <dfn>, <div>, <dl>, <em>, <feedbackBlock>, <feedbackInline>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <hottext>, <hr>, <i>, <img>, <kbd>, <m:math>, <object>, <ol>, <p>, <pre>, <printedVariable>, <q>, <rubricBlock>, <samp>, <small>, <span>, <strong>, <sub>, <sup>, <table>, <templateBlock>, <templateInline>, <tt>, <ul>, <var>

Context:

See:

<gap>

Description: Defines the position of a gap in the text for gap-filling tasks.

Context:

See:

Attributes:

gapChoice.ElementGroup

Description: A group of elements that can be used to define choices for gap-filling tasks.

Group members: <gapImg>, <gapText>

Context:

<gapImg>

Description: An image that can be used to fill a gap.

Context:

See:

Attributes:

Elements:

<gapMatchInteraction>

Description: An interaction in which the candidate fills gaps in a passage of text from a set of predefined choices.

Context:

See:

Attributes:

Elements:

<gapText>

Description: A simple run of text that can be used to fill a gap.

Context:

See:

Attributes:

<graphicAssociateInteraction>

Description: Interaction in which the candidate associates pairs of pre-defined hotspots on an image.

Context:

See:

Attributes:

Elements:

<graphicGapMatchInteraction>

Description: Interaction in which the candidate fills gaps within a given image, e.g., through drag-and-drop.

Context:

See:

Attributes:

Elements:

graphicInteraction.ElementGroup

Description: A group of elements for describing image-based tasks.

Group members: <graphicAssociateInteraction>, <graphicGapMatchInteraction>, <graphicOrderInteraction>, <hotspotInteraction>, <selectPointInteraction>

Context:

See:

<graphicOrderInteraction>

Description: Interaction in which the candidate orders a set of predefined hotspots on an image.

Context:

See:

Attributes:

Elements:

<gt>

Description: An expression for testing the greater-than relation between two numbers.

Context:

See:

Elements:

<gte>

Description: An expression for testing the greater-than-or-equal relation between two numbers.

Context:

See:

Elements:

<h1>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<h2>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<h3>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<h4>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<h5>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

<h6>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

hotspot.ElementGroup

Description: A group of elements that define hot areas of a graphic.

Group members: <associableHotspot>, <hotspotChoice>

Context:

Not applicable.

<hotspotChoice>

Description: An element that defines a hot area of a graphic for simple area selection tasks.

Context:

Attributes:

<hotspotInteraction>

Description: Interaction in which the candidate selects pre-defined hotspots on an image.

Context:

See:

Attributes:

Elements:

<hottext>

Description: Defines an area of hottext for hottext selection tasks.

Context:

See:

Attributes:

Elements:

<hottextInteraction>

Description: Interaction in which the candidate selects pre-defined hot areas within the text.

Context:

See:

Attributes:

Elements:

<hr>

Description: Defined by XHTML

Context:

See:

Attributes:

<hypertextElement>

Description: Profile flag for the XHTML hypertext element.

Context:

<i>

Description: Defined by XHTML

Context:

See:

Attributes:

Elements:

identifier.Type

A trivial restriction of xsd:NMTOKEN.

<imageElement>

Description: Profile flag for the XHTML image element.

Context:

<imageType>

Description: Profile element for identifying a specific image mime-type.

Context:

<img>

Description: Defined by XHTML

Context:

See:

Attributes:

<imsmd>

Description: Profile flag for IMS meta-data.

Context:

<imsqtimd>

Description: Profile flag for IMS QTI meta-data.

Context:

<index>

Description: An expression that extracts a single value from an ordered container.

Context:

See:

Attributes:

Elements:

inline.ElementGroup

Description: The group of elements that behave like spans of text.

Group members: <a>, <abbr>, <acronym>, <b>, <big>, <br>, <cite>, <code>, <dfn>, <em>, <endAttemptInteraction>, <feedbackInline>, <gap>, <hottext>, <i>, <img>, <inlineChoiceInteraction>, <kbd>, <m:math>, <object>, <printedVariable>, <q>, <samp>, <small>, <span>, <strong>, <sub>, <sup>, <templateInline>, <textEntryInteraction>, <tt>, <var>

Context:

<inlineChoice>

Description: A string of text that can be used to fill a gap.

Context:

Attributes:

<inlineChoiceInteraction>

Description: An interaction that allows a single gap in the text to be filled from a set of predefined strings.

Context:

See:

Attributes:

Elements:

inlineInteraction.ElementGroup

Description: The group of interactions that behave like spans of text.

Group members: <endAttemptInteraction>, <inlineChoiceInteraction>, <textEntryInteraction>

Context:

See:

inlineStatic.ElementGroup

Description: A group of elements that behave like spans of text excluding interactions.

Group members: <a>, <abbr>, <acronym>, <b>, <big>, <br>, <cite>, <code>, <dfn>, <em>, <feedbackInline>, <gap>, <hottext>, <i>, <img>, <kbd>, <m:math>, <object>, <printedVariable>, <q>, <samp>, <small>, <span>, <strong>, <sub>, <sup>, <templateInline>, <tt>, <var>

Context:

See: