| # 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:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- href (required).
  Data type = uri.Type
- type (optional).
  Data type = mimeType.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <abbr>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <acronym>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <adaptive>

Description: Profile flag for the adaptive items feature.

Context:

- Occurs [1] within contentProfile

## <address>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <and>

Description: An expression that performs a boolean and.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <anyN>

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

Context:

See:

- expression.ElementGroup

Attributes:

- min (required).
  Data type = integer.Type
- max (required).
  Data type = integer.Type

Elements:

- Members of expression.ElementGroup

## <areaMapEntry>

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

Context:

- Occurs [1..*] within areaMapping

Attributes:

- shape (required).
  Data type = shape.Type
- coords (required).
  Data type = coords.Type
- mappedValue (required).
  Data type = float.Type

## <areaMapping>

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

Context:

- Occurs [0..1] within responseDeclaration

Attributes:

- lowerBound (optional).
  Data type = float.Type
- upperBound (optional).
  Data type = float.Type
- defaultValue (required).
  Data type = float.Type

Elements:

- <areaMapEntry>

## <assessmentItem>

Description: The root element for QTI items

Context:

Can be the root element of an XML document.

Attributes:

- identifier (required).
  Data type = string.Type
- title (required).
  Data type = string.Type
- label (optional).
  Data type = string256.Type
- xml:lang (optional).
- adaptive (required).
  Data type = boolean.Type
- timeDependent (required).
  Data type = boolean.Type
- toolName (optional).
  Data type = string256.Type
- toolVersion (optional).
  Data type = string256.Type

Elements:

- <responseDeclaration>
- <outcomeDeclaration>
- <templateDeclaration>
- <templateProcessing>
- <stylesheet>
- <itemBody>
- <responseProcessing>
- <modalFeedback>

## 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:

- Occurs [1..*] within graphicAssociateInteraction
- Occurs [1..*] within graphicGapMatchInteraction

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- identifier (required).
  Data type = identifier.Type
- fixed (optional).
  Data type = boolean.Type
- matchGroup (optional).
  Data type = list of identifier.Type
- shape (required).
  Data type = shape.Type
- coords (required).
  Data type = coords.Type
- hotspotLabel (optional).
  Data type = string256.Type
- matchMax (required).
  Data type = integer.Type

## <associateInteraction>

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

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- shuffle (required).
  Data type = boolean.Type
- maxAssociations (required).
  Data type = integer.Type

Elements:

- <prompt>
- <simpleAssociableChoice>

## 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:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

## atomicInline.ElementGroup

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

Group members: <br>, <img>

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

## <b>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <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:

- <usageDataVocabulary>
- <metadataProfile>
- Elements from other namespaces

## baseType.Type

One of the following symbolic values:

- boolean
- directedPair
- duration
- file
- float
- identifier
- integer
- pair
- point
- string
- uri

## <baseValue>

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

Context:

See:

- expression.ElementGroup

Attributes:

- baseType (required).
  Data type = baseType.Type

## <big>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## 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:

- Occurs [*] within itemBody
- Occurs [*] within members of simpleBlock.ElementGroup

## 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:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

## 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:

- Occurs [1..*] within gapMatchInteraction
- Occurs [1..*] within hottextInteraction
- Occurs [*] within templateBlock

See:

- block.ElementGroup

## <blockquote>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- cite (optional).
  Data type = uri.Type

Elements:

- Members of block.ElementGroup

## 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:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

## <caption>

Description: Defined by XHTML

Context:

- Occurs [0..1] within table

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## cardinality.Type

One of the following symbolic values:

- multiple
- ordered
- record
- single

## <categorizedStatistic>

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

Context:

See:

- itemStatistic.ElementGroup

Attributes:

- name (required).
  Data type = identifier.Type
- glossary (optional).
  Data type = uri.Type
- context (required).
  Data type = uri.Type
- caseCount (optional).
  Data type = integer.Type
- stdError (optional).
  Data type = float.Type
- stdDeviation (optional).
  Data type = float.Type
- lastUpdated (optional).
  Data type = date.Type

Elements:

- <targetObject>
- <mapping>

## 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:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- shuffle (required).
  Data type = boolean.Type
- maxChoices (required).
  Data type = integer.Type

Elements:

- <prompt>
- <simpleChoice>

## <cite>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <code>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <col>

Description: Defined by XHTML

Context:

- Occurs [*] within colgroup
- Occurs [*] within table

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

## <colgroup>

Description: Defined by XHTML

Context:

- Occurs [*] within table

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- <col>

## <composite>

Description: Profile flag for the composite items feature.

Context:

- Occurs [1] within contentProfile
- Occurs [0..1] within qtiMetadata

## <contains>

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

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <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:

- <composite>
- <adaptive>
- <timeDependent>
- <templates>
- <textElements>
- <listElements>
- <objectElements>
- <objectType>
- <presentationElements>
- <tableElements>
- <imageElement>
- <imageType>
- <hypertextElement>
- <mathElement>
- <mathVariable>
- <feedbackIntegrated>
- <feedbackModal>
- <rubric>
- <printedVariables>
- <interactionType>
- <responseRules>
- <rpTemplate>
- <rounding>
- <regexp>
- <metadataProfile>
- Elements from other namespaces

## coords.Type

A trivial restriction of xsd:string.

## <correct>

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

Context:

See:

- expression.ElementGroup

Attributes:

- identifier (required).
  Data type = identifier.Type

## <correctResponse>

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

Context:

- Occurs [0..1] within responseDeclaration

Attributes:

- interpretation (optional).
  Data type = string.Type

Elements:

- <value>

## <customInteraction>

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

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- Attributes from other namespaces

Elements:

- Elements from any namespace

## <customOperator>

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

Context:

See:

- expression.ElementGroup

Attributes:

- class (optional).
  Data type = identifier.Type
- definition (optional).
  Data type = uri.Type
- Attributes from other namespaces

Elements:

- Members of expression.ElementGroup

## date.Type

A trivial restriction of xsd:date.

## <dd>

Description: Defined by XHTML

Context:

See:

- dlElement.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of flow.ElementGroup
- PCDATA

## <default>

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

Context:

See:

- expression.ElementGroup

Attributes:

- identifier (required).
  Data type = identifier.Type

## <defaultValue>

Description: Defines the default value for an item variable.

Context:

- Occurs [0..1] within members of variableDeclaration.ElementGroup

Attributes:

- interpretation (optional).
  Data type = string.Type

Elements:

- <value>

## <delete>

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

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <dfn>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <div>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of flow.ElementGroup
- PCDATA

## <divide>

Description: An expression for dividing one number by another.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <dl>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of dlElement.ElementGroup

## dlElement.ElementGroup

Description: Elements that can appear within <dl>.

Group members: <dd>, <dt>

Context:

- Occurs [*] within dl

## <drawingInteraction>

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

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type

Elements:

- <prompt>
- <object>

## <dt>

Description: Defined by XHTML

Context:

See:

- dlElement.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <durationGTE>

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

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <durationLT>

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

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <em>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <endAttemptInteraction>

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

Context:

See:

- flow.ElementGroup
- inline.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- title (required).
  Data type = string.Type

## <equal>

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

Context:

See:

- expression.ElementGroup

Attributes:

- toleranceMode (required).
  Data type = toleranceMode.Type
- tolerance (optional).
  Data type = list of float.Type

Elements:

- Members of expression.ElementGroup

## <equalRounded>

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

Context:

See:

- expression.ElementGroup

Attributes:

- roundingMode (required).
  Data type = roundingMode.Type
- figures (required).
  Data type = integer.Type

Elements:

- Members of expression.ElementGroup

## <exitResponse>

Description: A response rule that terminates response processing immediately.

Context:

See:

- responseRule.ElementGroup

## <exitTemplate>

Description: A template rule that terminates template processing immediately.

Context:

See:

- templateRule.ElementGroup

## 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:

- Occurs [1..*] within and
- Occurs [1..*] within anyN
- Occurs [2] within contains
- Occurs [*] within customOperator
- Occurs [2] within delete
- Occurs [2] within divide
- Occurs [2] within durationGTE
- Occurs [2] within durationLT
- Occurs [2] within equal
- Occurs [2] within equalRounded
- Occurs [1] within fieldValue
- Occurs [2] within gt
- Occurs [2] within gte
- Occurs [1] within index
- Occurs [1] within inside
- Occurs [2] within integerDivide
- Occurs [2] within integerModulus
- Occurs [1] within integerToFloat
- Occurs [1] within isNull
- Occurs [2] within lt
- Occurs [2] within lte
- Occurs [2] within match
- Occurs [2] within member
- Occurs [*] within multiple
- Occurs [1] within not
- Occurs [1..*] within or
- Occurs [*] within ordered
- Occurs [1] within patternMatch
- Occurs [2] within power
- Occurs [1..*] within product
- Occurs [1] within random
- Occurs [1] within responseElseIf
- Occurs [1] within responseIf
- Occurs [1] within round
- Occurs [1] within setCorrectResponse
- Occurs [1] within setDefaultValue
- Occurs [1] within setOutcomeValue
- Occurs [1] within setTemplateValue
- Occurs [2] within stringMatch
- Occurs [2] within substring
- Occurs [2] within subtract
- Occurs [1..*] within sum
- Occurs [1] within templateElseIf
- Occurs [1] within templateIf
- Occurs [1] within truncate

## <extendedTextInteraction>

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

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- base (optional).
  Data type = integer.Type
- stringIdentifier (optional).
  Data type = identifier.Type
- expectedLength (optional).
  Data type = integer.Type
- patternMask (optional).
  Data type = string.Type
- placeholderText (optional).
  Data type = string.Type
- maxStrings (optional).
  Data type = integer.Type
- expectedLines (optional).
  Data type = integer.Type

Elements:

- <prompt>

## <feedbackBlock>

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

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- outcomeIdentifier (required).
  Data type = identifier.Type
- showHide (required).
  Data type = showHide.Type
- identifier (required).
  Data type = identifier.Type
- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of block.ElementGroup

## 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:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- outcomeIdentifier (required).
  Data type = identifier.Type
- showHide (required).
  Data type = showHide.Type
- identifier (required).
  Data type = identifier.Type
- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <feedbackIntegrated>

Description: Profile flag for the integrated feedback feature.

Context:

- Occurs [1] within contentProfile

## <feedbackModal>

Description: Profile flag for the modal feedback feature.

Context:

- Occurs [1] within contentProfile

## <feedbackType>

Context:

- Occurs [0..1] within qtiMetadata

Content: a value of type feedbackType.Type.

## feedbackType.Type

One of the following symbolic values:

- adaptive
- nonadaptive
- none

## <fieldValue>

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

Context:

See:

- expression.ElementGroup

Attributes:

- fieldIdentifier (required).
  Data type = identifier.Type

Elements:

- Members of expression.ElementGroup

## 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:

- Occurs [*] within dd
- Occurs [*] within div
- Occurs [*] within li
- Occurs [*] within members of tableCell.ElementGroup

See:

- objectFlow.ElementGroup

## 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:

- Occurs [*] within modalFeedback
- Occurs [*] within simpleAssociableChoice
- Occurs [*] within simpleChoice

See:

- flow.ElementGroup
- objectFlow.ElementGroup

## <gap>

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

Context:

See:

- inline.ElementGroup
- inlineStatic.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- identifier (required).
  Data type = identifier.Type
- fixed (optional).
  Data type = boolean.Type
- matchGroup (optional).
  Data type = list of identifier.Type

## gapChoice.ElementGroup

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

Group members: <gapImg>, <gapText>

Context:

- Occurs [1..*] within gapMatchInteraction

## <gapImg>

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

Context:

- Occurs [1..*] within graphicGapMatchInteraction

See:

- gapChoice.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- identifier (required).
  Data type = identifier.Type
- fixed (optional).
  Data type = boolean.Type
- matchGroup (optional).
  Data type = list of identifier.Type
- matchMax (required).
  Data type = integer.Type
- objectLabel (optional).
  Data type = string.Type

Elements:

- <object>

## <gapMatchInteraction>

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

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- shuffle (required).
  Data type = boolean.Type

Elements:

- <prompt>
- Members of gapChoice.ElementGroup
- Members of blockStatic.ElementGroup

## <gapText>

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

Context:

See:

- gapChoice.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- identifier (required).
  Data type = identifier.Type
- fixed (optional).
  Data type = boolean.Type
- matchGroup (optional).
  Data type = list of identifier.Type
- matchMax (required).
  Data type = integer.Type

## <graphicAssociateInteraction>

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

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- maxAssociations (required).
  Data type = integer.Type

Elements:

- <prompt>
- <object>
- <associableHotspot>

## <graphicGapMatchInteraction>

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

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type

Elements:

- <prompt>
- <object>
- <gapImg>
- <associableHotspot>

## graphicInteraction.ElementGroup

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

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

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

## <graphicOrderInteraction>

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

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type

Elements:

- <prompt>
- <object>
- <hotspotChoice>

## <gt>

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

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <gte>

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

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <h1>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <h2>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <h3>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <h4>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <h5>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <h6>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## 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:

- Occurs [1..*] within graphicOrderInteraction
- Occurs [1..*] within hotspotInteraction

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- identifier (required).
  Data type = identifier.Type
- fixed (optional).
  Data type = boolean.Type
- shape (required).
  Data type = shape.Type
- coords (required).
  Data type = coords.Type
- hotspotLabel (optional).
  Data type = string256.Type

## <hotspotInteraction>

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

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- maxChoices (required).
  Data type = integer.Type

Elements:

- <prompt>
- <object>
- <hotspotChoice>

## <hottext>

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

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- identifier (required).
  Data type = identifier.Type
- fixed (optional).
  Data type = boolean.Type

Elements:

- Members of inlineStatic.ElementGroup
- PCDATA

## <hottextInteraction>

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

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- maxChoices (required).
  Data type = integer.Type

Elements:

- <prompt>
- Members of blockStatic.ElementGroup

## <hr>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

## <hypertextElement>

Description: Profile flag for the XHTML hypertext element.

Context:

- Occurs [1] within contentProfile

## <i>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## identifier.Type

A trivial restriction of xsd:NMTOKEN.

## <imageElement>

Description: Profile flag for the XHTML image element.

Context:

- Occurs [1] within contentProfile

## <imageType>

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

Context:

- Occurs [*] within contentProfile

## <img>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- src (required).
  Data type = uri.Type
- alt (required).
  Data type = string256.Type
- longdesc (optional).
  Data type = uri.Type
- height (optional).
  Data type = length.Type
- width (optional).
  Data type = length.Type

## <imsmd>

Description: Profile flag for IMS meta-data.

Context:

- Occurs [1] within metadataProfile

## <imsqtimd>

Description: Profile flag for IMS QTI meta-data.

Context:

- Occurs [1] within metadataProfile

## <index>

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

Context:

See:

- expression.ElementGroup

Attributes:

- n (required).
  Data type = integer.Type

Elements:

- Members of expression.ElementGroup

## 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:

- Occurs [*] within members of atomicBlock.ElementGroup
- Occurs [*] within caption
- Occurs [*] within dt
- Occurs [*] within members of simpleInline.ElementGroup

## <inlineChoice>

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

Context:

- Occurs [1..*] within inlineChoiceInteraction

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- identifier (required).
  Data type = identifier.Type
- fixed (optional).
  Data type = boolean.Type

## <inlineChoiceInteraction>

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

Context:

See:

- flow.ElementGroup
- inline.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- shuffle (required).
  Data type = boolean.Type

Elements:

- <inlineChoice>

## inlineInteraction.ElementGroup

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

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

Context:

See:

- flow.ElementGroup
- inline.ElementGroup
- objectFlow.ElementGroup

## 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:

- Occurs [*] within hottext
- Occurs [*] within prompt
- Occurs [*] within templateInline

See:

- inline.ElementGroup

## <inside>

Description: An expression for testing if a point is inside a given area.

Context:

See:

- expression.ElementGroup

Attributes:

- shape (required).
  Data type = shape.Type
- coords (required).
  Data type = coords.Type

Elements:

- Members of expression.ElementGroup

## integer.Type

A trivial restriction of xsd:integer.

## <integerDivide>

Description: An expression for performing integer-division.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <integerModulus>

Description: An expression for calculating the remainder following integer-division.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <integerToFloat>

Description: An expression for converting an integer to the corresponding value of float base-type.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## interaction.ElementGroup

Description:The group of elements that allow the candidate to interact with the item, setting or updating the values of the response variables.

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

Context:

Not applicable.

## <interactionType>

Context:

- Occurs [*] within contentProfile
- Occurs [*] within qtiMetadata

Content: a value of type interactionType.Type.

## interactionType.Type

One of the following symbolic values:

- associateInteraction
- choiceInteraction
- customInteraction
- drawingInteraction
- endAttemptInteraction
- extendedTextInteraction
- gapMatchInteraction
- graphicAssociateInteraction
- graphicGapMatchInteraction
- graphicOrderInteraction
- hotspotInteraction
- hottextInteraction
- inlineChoiceInteraction
- matchInteraction
- orderInteraction
- positionObjectInteraction
- selectPointInteraction
- sliderInteraction
- textEntryInteraction
- uploadInteraction

## <isNull>

Description: An expression that tests for the NULL value.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <itemBody>

Description: Describes the body of an item, the text, graphics and interactions that are presented to the candidate.

Context:

- Occurs [0..1] within assessmentItem

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of block.ElementGroup

## itemStatistic.ElementGroup

Description: A group of elements used to define item statistics.

Group members: <categorizedStatistic>, <ordinaryStatistic>

Context:

- Occurs [*] within usageData

## <itemTemplate>

Description: A meta-data flag indicating that the item is a template.

Context:

- Occurs [0..1] within qtiMetadata

## <kbd>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## language.Type

A trivial restriction of xsd:string.

## length.Type

A trivial restriction of xsd:string.

## <li>

Description: Defined by XHTML

Context:

- Occurs [*] within ol
- Occurs [*] within ul

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of flow.ElementGroup
- PCDATA

## <listElements>

Description: Profile flag for the XHTML list elements.

Context:

- Occurs [1] within contentProfile

## <lomMetadata>

Description: Profile flag for LOM meta-data.

Context:

- Occurs [1] within metadataProfile

## <lt>

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

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <lte>

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

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <mapEntry>

Description: Defines a mapping from a single value, the key, onto a real number.

Context:

- Occurs [1..*] within mapping

Attributes:

- mapKey (required).
  Data type = xsd:string
- mappedValue (required).
  Data type = float.Type

## <mapResponse>

Description: An expression for mapping the value(s) of a response variable onto a real number using the declared mapping.

Context:

See:

- expression.ElementGroup

Attributes:

- identifier (required).
  Data type = identifier.Type

## <mapResponsePoint>

Description: An expression for mapping the value(s) of a point-type response variable onto a real number using the declared area-mapping.

Context:

See:

- expression.ElementGroup

Attributes:

- identifier (required).
  Data type = identifier.Type

## <mapping>

Description: Defines a mapping from a source set of values onto real numbers.

Context:

- Occurs [1] within categorizedStatistic
- Occurs [0..1] within responseDeclaration

Attributes:

- lowerBound (optional).
  Data type = float.Type
- upperBound (optional).
  Data type = float.Type
- defaultValue (required).
  Data type = float.Type

Elements:

- <mapEntry>

## <match>

Description: An expression for testing if two values are identical.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <matchInteraction>

Description: Interaction in which the candidate must identify pairs of choices between two distinct sets.

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- shuffle (required).
  Data type = boolean.Type
- maxAssociations (required).
  Data type = integer.Type

Elements:

- <prompt>
- <simpleMatchSet>

## <m:math>

Externally defined.

## <mathElement>

Description: Profile flag for the MathML math element.

Context:

- Occurs [1] within contentProfile

## <mathVariable>

Description: Profile flag for the mathVariable feature.

Context:

- Occurs [1] within contentProfile

## <member>

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

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <metadataProfile>

Description: An element for describing the capabilities or requirements of a system with respect to meta-data.

Context:

- Occurs [1] within bankProfile
- Occurs [1] within contentProfile

Elements:

- <imsmd>
- <lomMetadata>
- <imsqtimd>

## mimeType.Type

A trivial restriction of xsd:string.

## <modalFeedback>

Description:Feedback conditionally shown to the candidate directly following response processing depending on the value of the given outcome variable.

Context:

- Occurs [*] within assessmentItem

Attributes:

- outcomeIdentifier (required).
  Data type = identifier.Type
- showHide (required).
  Data type = showHide.Type
- identifier (required).
  Data type = identifier.Type
- title (optional).
  Data type = string.Type

Elements:

- Members of flowStatic.ElementGroup
- PCDATA

## <multiple>

Description: An expression that aggregates sub-expressions into a single unordered container.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <not>

Description: An expression that performs boolean negation.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <null>

Description: A simple expression that returns the NULL value.

Context:

See:

- expression.ElementGroup

## <object>

Description: Defined by XHTML

Context:

- Occurs [1] within drawingInteraction
- Occurs [1] within gapImg
- Occurs [1] within members of graphicInteraction.ElementGroup
- Occurs [1] within positionObjectInteraction
- Occurs [1] within positionObjectStage

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- data (required).
  Data type = string.Type
- type (required).
  Data type = mimeType.Type
- width (optional).
  Data type = length.Type
- height (optional).
  Data type = length.Type

Elements:

- Members of objectFlow.ElementGroup
- PCDATA

## <objectElements>

Description: Profile flag for the XHTML object element.

Context:

- Occurs [1] within contentProfile

## objectFlow.ElementGroup

Description: The group of elements that can appear within <object>.

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>, <param>, <pre>, <printedVariable>, <q>, <rubricBlock>, <samp>, <selectPointInteraction>, <sliderInteraction>, <small>, <span>, <strong>, <sub>, <sup>, <table>, <templateBlock>, <templateInline>, <textEntryInteraction>, <tt>, <ul>, <uploadInteraction>, <var>

Context:

- Occurs [*] within object

## <objectType>

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

Context:

- Occurs [*] within contentProfile

## <ol>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- <li>

## <or>

Description: An expression that performs a boolean or.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <orderInteraction>

Description: Interaction in which candidates must (re-)order a set of choices

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- shuffle (required).
  Data type = boolean.Type
- orientation (optional).
  Data type = orientation.Type

Elements:

- <prompt>
- <simpleChoice>

## <ordered>

Description: An expression that aggregates sub-expressions into a single ordered container.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <ordinaryStatistic>

Description: An ordinary single-valued item statistic.

Context:

See:

- itemStatistic.ElementGroup

Attributes:

- name (required).
  Data type = identifier.Type
- glossary (optional).
  Data type = uri.Type
- context (required).
  Data type = uri.Type
- caseCount (optional).
  Data type = integer.Type
- stdError (optional).
  Data type = float.Type
- stdDeviation (optional).
  Data type = float.Type
- lastUpdated (optional).
  Data type = date.Type

Elements:

- <targetObject>
- <value>

## orientation.Type

One of the following symbolic values:

- horizontal
- vertical

## <outcomeDeclaration>

Description: Declares an outcome variable.

Context:

- Occurs [*] within assessmentItem

Attributes:

- identifier (required).
  Data type = identifier.Type
- cardinality (required).
  Data type = cardinality.Type
- baseType (optional).
  Data type = baseType.Type
- interpretation (optional).
  Data type = string.Type
- longInterpretation (optional).
  Data type = uri.Type
- normalMaximum (optional).
  Data type = float.Type

Elements:

- <defaultValue>

## <p>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <param>

Description: Defined by XHTML

Context:

See:

- objectFlow.ElementGroup

Attributes:

- name (required).
  Data type = string.Type
- value (required).
  Data type = string.Type
- valuetype (required).
  Data type = paramType.Type
- type (optional).
  Data type = mimeType.Type

## paramType.Type

One of the following symbolic values:

- DATA
- REF

## <patternMatch>

Description: An expression for testing two string values using regular expressions.

Context:

See:

- expression.ElementGroup

Attributes:

- pattern (required).
  Data type = string.Type

Elements:

- Members of expression.ElementGroup

## <positionObjectInteraction>

Description: Interaction in which the candidate must position objects over an existing image.

Context:

- Occurs [1..*] within positionObjectStage

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- centerPoint (optional).
  Data type = list of integer.Type
- maxChoices (required).
  Data type = integer.Type

Elements:

- <object>

## <positionObjectStage>

Description: Defines the background image to be used for positioning object tasks.

Context:

See:

- block.ElementGroup

Elements:

- <object>
- <positionObjectInteraction>

## <power>

Description: An expression for raising one number to the power of another.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <pre>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <presentationElements>

Description: Profile flag for the XHTML presentation elements.

Context:

- Occurs [1] within contentProfile

## <printedVariable>

Description: An element used to insert the value of an item variable into the item body.

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- identifier (required).
  Data type = identifier.Type
- format (optional).
  Data type = string256.Type
- base (optional).
  Data type = integer.Type

## <printedVariables>

Description: Profile flag for the printedVariable feature.

Context:

- Occurs [1] within contentProfile

## <product>

Description: An expression for calculating the product of a group of numbers.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <prompt>

Description: An optional prompt for an interaction.

Context:

- Occurs [0..1] within members of blockInteraction.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inlineStatic.ElementGroup
- PCDATA

## <q>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- cite (optional).
  Data type = uri.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <qtiMetadata>

Description: The root element for QTI-specific meta-data. Typically used within a manifest file in an IMS content package.

Context:

Can be the root element of an XML document.

Elements:

- <itemTemplate>
- <timeDependent>
- <composite>
- <interactionType>
- <feedbackType>
- <solutionAvailable>
- <toolName>
- <toolVersion>
- <toolVendor>

## <random>

Description: An expression that extracts a random value from a container.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <randomFloat>

Description: An expression that returns a random float from the specified range.

Context:

See:

- expression.ElementGroup

Attributes:

- min (required).
  Data type = float.Type
- max (required).
  Data type = float.Type

## <randomInteger>

Description: An expression that returns a random integer from the specified range.

Context:

See:

- expression.ElementGroup

Attributes:

- min (required).
  Data type = integer.Type
- max (required).
  Data type = integer.Type
- step (optional).
  Data type = integer.Type

## <regexp>

Description: Profile flag for the regular-expression feature.

Context:

- Occurs [1] within contentProfile

## <responseCondition>

Description:A response rule that contains groups of sub-rules which are followed conditionally based on the value of one or more expressions.

Context:

See:

- responseRule.ElementGroup

Elements:

- <responseIf>
- <responseElseIf>
- <responseElse>

## <responseDeclaration>

Description: Declares a response variable.

Context:

- Occurs [*] within assessmentItem

Attributes:

- identifier (required).
  Data type = identifier.Type
- cardinality (required).
  Data type = cardinality.Type
- baseType (optional).
  Data type = baseType.Type

Elements:

- <defaultValue>
- <correctResponse>
- <mapping>
- <areaMapping>

## <responseElse>

Description:A final group of rules to be followed unconditionally if all previous groups have been skipped for the containing response condition.

Context:

- Occurs [0..1] within responseCondition

Elements:

- Members of responseRule.ElementGroup

## <responseElseIf>

Description: A conditional group of rules to be considered if all previous groups have been skipped for the containing response condition.

Context:

- Occurs [*] within responseCondition

Elements:

- Members of expression.ElementGroup
- Members of responseRule.ElementGroup

## <responseIf>

Description: The first part of a response condition.

Context:

- Occurs [1] within responseCondition

Elements:

- Members of expression.ElementGroup
- Members of responseRule.ElementGroup

## <responseProcessing>

Description: Defines the rules used to process the candidate's responses.

Context:

- Occurs [0..1] within assessmentItem

Can be the root element of an XML document.

Attributes:

- template (optional).
  Data type = uri.Type
- templateLocation (optional).
  Data type = uri.Type

Elements:

- Members of responseRule.ElementGroup

## responseRule.ElementGroup

Description: A group of elements that define rules to be followed during response processing.

Group members: <exitResponse>, <responseCondition>, <setOutcomeValue>

Context:

- Occurs [*] within responseElse
- Occurs [*] within responseElseIf
- Occurs [*] within responseIf
- Occurs [*] within responseProcessing

## <responseRules>

Description: Profile flag for the general response processing feature.

Context:

- Occurs [1] within contentProfile

## <round>

Description: An expression for rounding a real number to an integer.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <rounding>

Context:

- Occurs [1] within contentProfile

## roundingMode.Type

One of the following symbolic values:

- decimalPlaces
- significantFigures

## <rpTemplate>

Description: Profile element for identifying a specific response processing template.

Context:

- Occurs [*] within contentProfile

## <rubric>

Description: Profile flag for the rubric feature.

Context:

- Occurs [1] within contentProfile

## <rubricBlock>

Description:A structural part of the item body whose visibility depends on the role of the person viewing the item, typically containing instructions to a specific actor.

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- view (required).
  Data type = list of view.Type

Elements:

- Members of block.ElementGroup

## <samp>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <selectPointInteraction>

Description: Interaction in which the candidate selects one or more points on an image.

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- maxChoices (required).
  Data type = integer.Type

Elements:

- <prompt>
- <object>

## <setCorrectResponse>

Description: A template rule that sets the correct value of a response variable.

Context:

See:

- templateRule.ElementGroup

Attributes:

- identifier (required).
  Data type = identifier.Type

Elements:

- Members of expression.ElementGroup

## <setDefaultValue>

Description: A template rule that sets the default value of an item variable.

Context:

See:

- templateRule.ElementGroup

Attributes:

- identifier (required).
  Data type = identifier.Type

Elements:

- Members of expression.ElementGroup

## <setOutcomeValue>

Description: A response rule that sets the value of an outcome variable.

Context:

See:

- responseRule.ElementGroup

Attributes:

- identifier (required).
  Data type = identifier.Type

Elements:

- Members of expression.ElementGroup

## <setTemplateValue>

Description: A template rule that sets the value of a template variable.

Context:

See:

- templateRule.ElementGroup

Attributes:

- identifier (required).
  Data type = identifier.Type

Elements:

- Members of expression.ElementGroup

## shape.Type

One of the following symbolic values:

- circle
- default
- ellipse
- poly
- rect

## showHide.Type

One of the following symbolic values:

- hide
- show

## sign.Type

A trivial restriction of xsd:string.

## <simpleAssociableChoice>

Description: The element used to describe the choices in simple association or matching tasks.

Context:

- Occurs [1..*] within associateInteraction
- Occurs [*] within simpleMatchSet

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- identifier (required).
  Data type = identifier.Type
- fixed (optional).
  Data type = boolean.Type
- matchGroup (optional).
  Data type = list of identifier.Type
- matchMax (required).
  Data type = integer.Type

Elements:

- Members of flowStatic.ElementGroup
- PCDATA

## simpleBlock.ElementGroup

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

Group members: <blockquote>, <feedbackBlock>, <rubricBlock>

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

## <simpleChoice>

Description: The element used to describe the choices in simple selection or ordering tasks.

Context:

- Occurs [1..*] within choiceInteraction
- Occurs [1..*] within orderInteraction

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- identifier (required).
  Data type = identifier.Type
- fixed (optional).
  Data type = boolean.Type

Elements:

- Members of flowStatic.ElementGroup
- PCDATA

## simpleInline.ElementGroup

Description: A group of elements that both behave as and contain things that behave like spans of text.

Group members: <a>, <abbr>, <acronym>, <b>, <big>, <cite>, <code>, <dfn>, <em>, <feedbackInline>, <i>, <kbd>, <q>, <samp>, <small>, <span>, <strong>, <sub>, <sup>, <tt>, <var>

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

## <simpleMatchSet>

Description: Describes a set of choices for use in a matching task.

Context:

- Occurs [2] within matchInteraction

Elements:

- <simpleAssociableChoice>

## <sliderInteraction>

Description: Interaction in which the candidate uses a slider to enter a constrained numeric response.

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- lowerBound (required).
  Data type = float.Type
- upperBound (required).
  Data type = float.Type
- step (optional).
  Data type = integer.Type
- stepLabel (optional).
  Data type = boolean.Type
- orientation (optional).
  Data type = orientation.Type
- reverse (optional).
  Data type = boolean.Type

Elements:

- <prompt>

## <small>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <solutionAvailable>

Description: A meta-data flag indicating that the item contains a solution.

Context:

- Occurs [0..1] within qtiMetadata

## <span>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## string.Type

A trivial restriction of xsd:string.

## string256.Type

A trivial restriction of xsd:string.

## stringInteraction.ElementGroup

Description: A group of interactions that allow text-based responses to be entered by the user.

Group members: <extendedTextInteraction>, <textEntryInteraction>

Context:

Not applicable.

## <stringMatch>

Description: An expression for testing two string values.

Context:

See:

- expression.ElementGroup

Attributes:

- caseSensitive (required).
  Data type = boolean.Type
- substring (required).
  Data type = boolean.Type

Elements:

- Members of expression.ElementGroup

## <strong>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## styleclass.Type

A trivial restriction of xsd:string.

## <stylesheet>

Description: Associates a stylesheet with an item.

Context:

- Occurs [0..*] within assessmentItem

Attributes:

- href (required).
  Data type = uri.Type
- type (required).
  Data type = mimeType.Type
- media (optional).
  Data type = string.Type
- title (optional).
  Data type = string.Type

## <sub>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <substring>

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

Context:

See:

- expression.ElementGroup

Attributes:

- caseSensitive (required).
  Data type = boolean.Type

Elements:

- Members of expression.ElementGroup

## <subtract>

Description: An expression for subtracting one number from another.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <sum>

Description: An expression for calculating the sum of a group of numbers.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <sup>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <table>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- summary (optional).
  Data type = string.Type

Elements:

- <caption>
- <col>
- <colgroup>
- <thead>
- <tfoot>
- <tbody>

## tableCell.ElementGroup

Description: Elements that can appear within a row of a table.

Group members: <td>, <th>

Context:

- Occurs [1..*] within tr

## tableCellScope.Type

One of the following symbolic values:

- col
- colgroup
- row
- rowgroup

## <tableElements>

Description: Profile flag for the XHTML table element.

Context:

- Occurs [1] within contentProfile

## <targetObject>

Description: A reference to the object, such as an assessment item, or a sub-part of the object, to which an item statistic relates.

Context:

- Occurs [1..*] within members of itemStatistic.ElementGroup

Attributes:

- identifier (required).
  Data type = string.Type
- partIdentifier (optional).
  Data type = identifier.Type

## <tbody>

Description: Defined by XHTML

Context:

- Occurs [1..*] within table

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- <tr>

## <td>

Description: Defined by XHTML

Context:

See:

- tableCell.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- headers (optional).
  Data type = list of identifier.Type
- scope (optional).
  Data type = tableCellScope.Type
- abbr (optional).
  Data type = string.Type
- axis (optional).
  Data type = string.Type
- rowspan (optional).
  Data type = integer.Type
- colspan (optional).
  Data type = integer.Type

Elements:

- Members of flow.ElementGroup
- PCDATA

## <templateBlock>

Description: A structural part of the item body whose visibility is conditionally controlled by a template variable.

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- templateIdentifier (required).
  Data type = identifier.Type
- showHide (required).
  Data type = showHide.Type
- identifier (required).
  Data type = identifier.Type

Elements:

- Members of blockStatic.ElementGroup

## <templateCondition>

Description:A template rule that contains groups of sub-rules which are followed conditionally based on the value of one or more expressions.

Context:

See:

- templateRule.ElementGroup

Elements:

- <templateIf>
- <templateElseIf>
- <templateElse>

## <templateDeclaration>

Description: Declares a template variable.

Context:

- Occurs [*] within assessmentItem

Attributes:

- identifier (required).
  Data type = identifier.Type
- cardinality (required).
  Data type = cardinality.Type
- baseType (optional).
  Data type = baseType.Type
- paramVariable (required).
  Data type = boolean.Type
- mathVariable (required).
  Data type = boolean.Type

Elements:

- <defaultValue>

## templateElement.ElementGroup

Description: Elements whose visibility is conditionally controlled by a template variable.

Group members: <templateBlock>, <templateInline>

Context:

Not applicable.

## <templateElse>

Description:A final group of rules to be followed unconditionally if all previous groups have been skipped for the containing template condition.

Context:

- Occurs [0..1] within templateCondition

Elements:

- Members of templateRule.ElementGroup

## <templateElseIf>

Description: A conditional group of rules to be considered if all previous groups have been skipped for the containing template condition.

Context:

- Occurs [*] within templateCondition

Elements:

- Members of expression.ElementGroup
- Members of templateRule.ElementGroup

## <templateIf>

Description: The first part of a template condition.

Context:

- Occurs [1] within templateCondition

Elements:

- Members of expression.ElementGroup
- Members of templateRule.ElementGroup

## <templateInline>

Description: A span of text (or equivalent) whose visibility is conditionally controlled by a template variable.

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- templateIdentifier (required).
  Data type = identifier.Type
- showHide (required).
  Data type = showHide.Type
- identifier (required).
  Data type = identifier.Type

Elements:

- Members of inlineStatic.ElementGroup
- PCDATA

## <templateProcessing>

Description: Defines the rules used for calculating the values of the template variables.

Context:

- Occurs [0..1] within assessmentItem

Elements:

- Members of templateRule.ElementGroup

## templateRule.ElementGroup

Description: A group of elements that define rules to be followed during template processing.

Group members: <exitTemplate>, <setCorrectResponse>, <setDefaultValue>, <setTemplateValue>, <templateCondition>

Context:

- Occurs [*] within templateElse
- Occurs [*] within templateElseIf
- Occurs [*] within templateIf
- Occurs [1..*] within templateProcessing

## <templates>

Description: Profile flag for the item template feature.

Context:

- Occurs [1] within contentProfile

## <textElements>

Description: Profile flag for the XHTML text elements.

Context:

- Occurs [1] within contentProfile

## <textEntryInteraction>

Description: Interaction that allows the candidate to supply a span of text to fill a gap.

Context:

See:

- flow.ElementGroup
- inline.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- base (optional).
  Data type = integer.Type
- stringIdentifier (optional).
  Data type = identifier.Type
- expectedLength (optional).
  Data type = integer.Type
- patternMask (optional).
  Data type = string.Type
- placeholderText (optional).
  Data type = string.Type

## <tfoot>

Context:

- Occurs [0..1] within table

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- <th>

## <th>

Description: Defined by XHTML

Context:

- Occurs [1..*] within tfoot

See:

- tableCell.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- headers (optional).
  Data type = list of identifier.Type
- scope (optional).
  Data type = tableCellScope.Type
- abbr (optional).
  Data type = string.Type
- axis (optional).
  Data type = string.Type
- rowspan (optional).
  Data type = integer.Type
- colspan (optional).
  Data type = integer.Type

Elements:

- Members of flow.ElementGroup
- PCDATA

## <thead>

Context:

- Occurs [0..1] within table

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- <tr>

## <timeDependent>

Description: Profile flag for the time-dependence feature.

Context:

- Occurs [1] within contentProfile
- Occurs [0..1] within qtiMetadata

## toleranceMode.Type

One of the following symbolic values:

- absolute
- exact
- relative

## <toolName>

Description: A meta-data element containing the name of the tool used to create the object.

Context:

- Occurs [0..1] within qtiMetadata

## <toolVendor>

Description: A meta-data element containing the name of the company that produced the tool used to create the object.

Context:

- Occurs [0..1] within qtiMetadata

## <toolVersion>

Description: A meta-data element containing the version of the tool used to create the object.

Context:

- Occurs [0..1] within qtiMetadata

## <tr>

Description: Defined by XHTML

Context:

- Occurs [1..*] within tbody
- Occurs [1..*] within thead

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of tableCell.ElementGroup

## <truncate>

Description: An expression for truncating a real number to an integer.

Context:

See:

- expression.ElementGroup

Elements:

- Members of expression.ElementGroup

## <tt>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <ul>

Description: Defined by XHTML

Context:

See:

- block.ElementGroup
- blockStatic.ElementGroup
- flow.ElementGroup
- flowStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- <li>

## <uploadInteraction>

Description: Interaction in which the candidate uploads a file representing their response.

Context:

See:

- block.ElementGroup
- flow.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type
- responseIdentifier (required).
  Data type = identifier.Type
- type (optional).
  Data type = mimeType.Type

Elements:

- <prompt>

## uri.Type

A trivial restriction of xsd:anyURI.

## <usageData>

Description: The root element of a usage data XML document instance. Usage data are also referred to as item statistics.

Context:

Can be the root element of an XML document.

Attributes:

- glossary (optional). The default glossary in which the names of the itemStatistics are defined.
  Data type = uri.Type

Elements:

- Members of itemStatistic.ElementGroup

## <usageDataVocabulary>

Description: Profile flag for usage-data files.

Context:

- Occurs [*] within bankProfile

## <value>

Description: A single data value from one of the base-types.

Context:

- Occurs [1..*] within correctResponse
- Occurs [1..*] within defaultValue
- Occurs [1] within ordinaryStatistic

Attributes:

- fieldIdentifier (optional).
  Data type = identifier.Type
- baseType (optional).
  Data type = baseType.Type

## <var>

Description: Defined by XHTML

Context:

See:

- flow.ElementGroup
- flowStatic.ElementGroup
- inline.ElementGroup
- inlineStatic.ElementGroup
- objectFlow.ElementGroup

Attributes:

- id (optional).
  Data type = identifier.Type
- class (optional).
  Data type = list of styleclass.Type
- xml:lang (optional).
- label (optional).
  Data type = string256.Type

Elements:

- Members of inline.ElementGroup
- PCDATA

## <variable>

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

Context:

See:

- expression.ElementGroup

Attributes:

- identifier (required).
  Data type = identifier.Type

## variableDeclaration.ElementGroup

Group members: <outcomeDeclaration>, <responseDeclaration>, <templateDeclaration>

Context:

Not applicable.

## view.Type

One of the following symbolic values:

- author
- candidate
- proctor
- scorer
- tutor

## About This Document

Title | IMS Question and Test Interoperability XML Binding
Editor | Steve Lay (University of Cambridge)
Version | 2.0
Version Date | 24 January 2005
Status | Final Specification
Summary | This document describes the QTI XML Binding specification.
Revision Information | 24 January 2005
Purpose | This document has been approved by the IMS Technical Board and is made available for adoption.
Document Location | http://www.imsglobal.org/question/qti_v2p0/imsqti_bindv2p0.html

To register any comments or questions about this specification please visit: http://www.imsglobal.org/developers/ims/imsforum/categories.cfm?catid=23

### List of Contributors

The following individuals contributed to the development of this document:

Name | Organization | Name | Organization
--- | --- | --- | ---
Niall Barr | CETIS | Joshua Marks | McGraw-Hill
Sam Easterby-Smith | Canvas Learning | David Poor | McGraw-Hill
Jeanne Ferrante | ETS | Greg Quirus | ETS
Pierre Gorissen | SURF | Niall Sclater | CETIS
Regina Hoag | ETS | Colin Smythe | IMS
Christian Kaefer | McGraw-Hill | GT Springer | Texas Instruments
John Kleeman | Question Mark | Colin Tattersall | OUNL
Steve Lay | UCLES | Rowin Young | CETIS
Jez Lord | Canvas Learning |  |

## Revision History

Version No. | Release Date | Comments
--- | --- | ---
Base Document 2.0 | 09 March 2004 | The first version of the QTI Item v2.0 specification.
Public Draft 2.0 | 07 June 2004 | The Public Draft version 2.0 of the QTI Item Specification.
Final 2.0 | 24 January 2005 | The Final version 2.0 of the QTI specification.

IMS Global Learning Consortium, Inc. ("IMS/GLC") is publishing the information contained in this IMS Question and Test Interoperability XML Binding ("Specification") for purposes of scientific, experimental, and scholarly collaboration only.
IMS/GLC makes no warranty or representation regarding the accuracy or completeness of the Specification.
This material is provided on an "As Is" and "As Available" basis.
The Specification is at all times subject to change and revision without notice.
It is your sole responsibility to evaluate the usefulness, accuracy, and completeness of the Specification as it relates to you.
IMS/GLC would appreciate receiving your comments and suggestions.
Please contact IMS/GLC through our website at http://www.imsglobal.org
Please refer to Document Name: IMS Question and Test Interoperability XML Binding Revision: 24 January 2005