![]() |
IMS Question and Test Interoperability Information ModelVersion 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 Information Model
Revision: 24 January 2005
| Date Issued: |
24 January 2005 |
| Latest version: |
http://www.imsglobal.org/question/qti_v2p0/imsqti_infov2p0.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. |
|
An adaptive item is an Item that adapts either its appearance, its scoring (Response Processing) or both in response to each of the candidate's Attempts. For example, an adaptive item may start by prompting the candidate with a box for free-text entry but, on receiving an unsatisfactory answer, present a simple choice Interaction instead and award fewer marks for subsequently identifying the correct response. Adaptivity allows authors to create items for use in formative situations which both help to guide candidates through a given task while also providing an Outcome that takes into consideration their path, enabling better subsequent content sequencing decisions to be made.
Adaptive Tests are out of scope for this specification.
An Assessment is equivalent to a 'Test'. It contains the collection of Items that are used to determine the level of mastery, or otherwise, that a participant has on a particular subject. The Assessment contains all of the necessary instructions to enable variable sequencing of the Items and the corresponding aggregated scoring to produce the final test score. Assessments are out of scope for this document.
A system for the administration and delivery of assessments to candidates. See also Delivery Engine.
An attempt (at an Item) is the process by which the Candidate interacts with an item in one or more Candidate Sessions, possibly assigning values to or updating the associated Response Variables.
A system used by authors for creating and editing Items.
A base-type is a predefined data type that defines a value set from which values for Item Variables are drawn. These values are indivisible with respect to the runtime model described by this specification.
A basic item is an Item that contains one and only one Interaction.
A person that participates in a test, assessment or exam by answering questions. See also the actor candidate.
A period of time during which the candidate is interacting with the Item as part of an Attempt. An attempt may consist of more than one candidate session. For example, candidates that are not sure of the answer to one question may navigate to a second question in the same test and return to the first one later. When they leave the first question they terminate the candidate session but they do not terminate the Attempt. The attempt is simply suspended until a subsequent candidate session concludes it, triggering Response Processing and (possibly) Feedback.
A cloning engine is a system for creating multiple similar items (Item Clones) from an Item Template.
A composite item is an Item that contains more than one Interaction.
A container is an aggregate data type that can contain multiple values of the primitive Base-types. Containers may be empty.
The process that coordinates the rendering and delivery of the Item(s) and the evaluation of the responses to produce scores and Feedback.
Any material presented to the candidate conditionally based on the value of an Outcome Variable. See also Integrated Feedback and Modal Feedback
Interactions allow the candidate to interact with the item. Through an interaction, the candidate selects or constructs a response. See also the class interaction.
Integrated feedback is the name given to Feedback that is integrated into the item's itemBody. Unlike Modal Feedback the candidate is free to update their responses while viewing integrated feedback.
The smallest exchangeable assessment object within this specification. An item is more than a 'Question' in that it contains the question and instructions to be presented, the responseProcessing to be applied to the candidates response(s) and the Feedback that may be presented (including hints and solutions). In this specification items are represented by the assessmentItem class and the term assessment item is used interchangeably for item.
Item Clones are items created by an Item Template.
An item session is the accumulation of all the Attempts made by a candidate.
Item templates are templates that can be used for producing large numbers of similar Items. Such items are often called cloned items. Item templates can be used to produce items by a special purpose Cloning Engine or, where Delivery Engines support them, be used directly to produce a dynamically chosen clone at the start of an Item Session. Each item cloned from an item template is identical except for the values given to a set of Template Variables. An item is therefore an item template if it declares one or more template variables and a contains set of Template Processing rules for assigning them values.
A variable that records part of the state of an Item Session. The candidate's responses and any outcomes assigned by Response Processing are stored in item variables. Item variables are also used to define Item Templates. See also the class itemVariable.
Material means all static text, image or media objects that are intended for the user rather than being interpreted by a processing system. Interactions are not material.
Modal feedback is the name give to Feedback that is presented to the candidate on its own, as opposed to being integrated into the item's itemBody.
A multiple response is a Response Variable that is a Container for multiple values all drawn from the value set defined by one of the Base-types. A multiple response is processed as an unordered list of these values. The list may be empty.
An non-adaptive item is an Item that does not adapt itself in response to the candidate's Attempts.
An ordered response is a Response Variable that is a Container for multiple values all drawn from the value set defined by one of the Base-types. An ordered response is processed as an ordered list (sequence) of values. The list may be empty.
The result of an assessment. For an Item, an outcome is represented by one or more Outcome Variables.
Outcome variables are declared by outcome declarations. Their value is set either from a default given in the declaration itself or by a response rule encountered during Response Processing. See also the class outcomeVariable.
The process by which the values of Response Variables are judged (scored) and the values of Outcome Variables are assigned.
Response variables are declared by response declarations and bound to Interactions in the Item body, they record the candidate's responses. See also the class responseVariable
The part of the assessment system that handles the scoring based on the Candidate's responses and the Response Processing rules.
A single response is a Response Variable that can take a single value from the set of values defined by one of the Base-types.
A set of rules used to set the values of the Template Variables, typically involving some random process, and thereby select the specific clone to be used for an Item Session.
Template variables are declared by template declarations and used to record the values required to instantiate an item template. The values determine which clone from the set of similar items defined by an Item Template is being used for a given Item Session.
A time dependent item is an Item that records the accumulated elapsed time for the Candidate Sessions in a Response Variable that is used during Response Processing.
A time independent item is an Item that does not record the amount of time spent by the Candidate completing it. In practice, this information may be collected by a Delivery Engine but it is not used for Response Processing and the method by which it is reported is outside the scope of this specification.
Attribute : identifier [1]: string
Attribute : title [1]: string
The title of an assessmentItem is intended to enable the item to be selected in
situations where the full text of the itemBody is not
available, for example when a candidate is browsing a set of items to determine
the order in which to attempt them. Therefore, delivery engines may reveal the
title to candidates at any time but are not required to do so.
Attribute : label [0..1]: string256
Attribute : lang [0..1]: language
Attribute : adaptive [1]: boolean = false
Items are classified into
Adaptive Items and Non-adaptive Items.
Attribute : timeDependent [1]: boolean
Attribute : toolName [0..1]: string256
The tool name
attribute allows the tool creating the item to identify itself. Other processing
systems may use this information to interpret the content of application
specific data, such as labels on the elements
of the item's itemBody.
Attribute : toolVersion [0..1]: string256
The tool version
attribute allows the tool creating the item to identify its version. This value
must only be interpreted in the context of the toolName
Contains : responseDeclaration [*]
Contains : outcomeDeclaration [*]
Contains : templateDeclaration [*]
Contains : templateProcessing [0..1]
Contains : stylesheet [0..*]
Contains : itemBody [0..1]
Contains : responseProcessing [0..1]

Item Sessions
itemSession is an abstract class to help illustrate the requirements on Delivery Engines when delivering to candidates items that conform to this specification.
Associated with : assessmentItem [1]
An
itemSession is associated with one and only one assessmentItem.
Attribute : completionStatus [1]: identifier
Delivery Engines must maintain the value of the built-in
outcome variable completionStatus as part of the session
state. It starts with the reserved value "not_attempted". At the start of the
first attempt it changes the to the reserved value "unknown". It remains with
this value for the duration of the item session unless set to a different value
by a setOutcomeValue rule in responseProcessing. There are four permitted values:
completed, incomplete, not_attempted and
unknown. Any one of these values may be set during response processing,
for definitions of the meanings see [CMI]. If an Adaptive Item sets completionStatus to complete then the
session must be placed into the closed state, however, an itemSession is
not required to wait for the complete signal before
terminating, it may terminate in response to a direct request from the
candidate, through running out of time or through some other exceptional
circumstance. Similarly, Non-adaptive Items are not
required to set a value for completionStatus, however, Adaptive Items must maintain a suitable value and should set
completionStatus to "complete" to indicate when the cycle of interaction,
response processing and feedback must stop. Delivery Engines
are encouraged to use the value of completionStatus when communicating using
[CMI]. See the accompanying integration guide for more
details.
Attribute : duration [0..1]: float
Systems that support
Time Dependent Items must record the duration of the
session. The duration is defined as being the accumulated time (in seconds) of
all Candidate Sessions for all Attempts. In
other words the time between the beginning and the end of the itemSession
minus any time the itemSession was in the suspended state. The
resolution of the duration must be at least 1s and should be 0.1s or smaller. If
the resolution is denoted by epsilon then each value of duration
represents the range of values [duration,duration+epsilon). In other
words, duration values are truncated. For items that are not time dependent
duration must not be used.
Contains : itemVariable [*]
The itemSession keeps track of
the current values assigned to all itemVariables. The
values of completionStatus and duration are treated as special item variables. They share
the same namespace as the item variables explicitly declared through
variableDeclarations.
Contains : sessionContext [1]
An
itemSession is also associated with a sessionContext which
provides information about the candidate, when and where the session took place
and so on.
The following diagram illustrates the user-perceived states of the itemSession. Not all states will apply to every scenario, for example feedback may not be provided for an item or it may not be allowed in the context in which the item is being used. Similarly, the candidate may not be permitted to review their responses and/or examine a model solution. In practice, systems may support only a limited number of the indicated state transitions and/or support other state transitions not shown here.
For system developers, an important first step in determining which requirements apply to their system is to identify which of the user-perceived states are supported in their system and to match the state transitions indicated in the diagram to their own event model.

Lifecycle of an Item Session
A delivery system notionally creates an instance of an itemSession object when it first becomes eligible for delivery to the candidate. The itemSession's state is then maintained and updated in response to the actions of the candidate until the session is over. At this point the state of the session is turned into a session report (or thrown away). A delivery system may also allow a session report from a past session to be used to re-create the session in order to allow a candidate's responses to be seen in the context of the item itself (and possibly compared to a solution).
The initial state of an itemSession represents the state after it has been determined that the item will be delivered to the candidate but before the delivery has taken place.
In a typical non-Adaptive Test the items are selected in advance and the candidate's interaction with all items is reported at the end of the test session, regardless of whether or not the candidate actually attempted all the items. In effect, itemSessions are created in the initial state for all items at the start of the test and are maintained in parallel. In an Adaptive Test the items that are to be presented are selected during the session based on the responses and outcomes associated with the items presented so far. Items are selected from a large pool and the delivery engine only reports the candidate's interaction with items that have actually been selected.
A candidate's interaction with an item is broken into 0 or more attempts. During each attempt the candidate interacts with the item through one or more candidate sessions. At the end of a candidate session the item is placed into the suspended state ready for the next candidate session. During a candidate session the itemSession is in the interacting state. Once an attempt has ended response processing takes place, after response processing a new attempt may be started.
For non-adaptive items, response processing may only be invoked a limited number of times, typically once. For adaptive items, no such limit is required because the response processing adapts the values it assigns to the outcome variables based on the path through the item. In both cases, each invocation of response processing indicates the end of an attempt. The appearance of the item's body, and whether any modal feedback is shown, is determined by the values of the outcomeVariables.
When no more attempts are allowed the itemSession passes into the closed state. Once in the closed state the values of the response variables are fixed. A delivery system or reporting tool may still allow the item to be presented after it has reached the closed state. This type of presentation takes place in the review state, summary feedback may also be visible at this point if response processing has taken place and set a suitable outcomeVariable.
Finally, for systems that support the display of solutions, the itemSession may pass into the solution state. In this state, the candidate's responses are temporarily replaced by the correct values supplied in the corresponding responseDeclarations (or NULL if none was declared).
The details of sessionContext will be application specific and are therefore outside the scope of this document. Applications that handle result reports using [RR] should consider the limits of the data model imposed on the context element in that specification.

Variable Declarations
Item variables are declared by variable declarations. All variables must be declared except for the built-in session variables referred to below which are declared implicitly. The purpose of the declaration is to associate an identifier with the variable and to identify the runtime type of the variable's value. At runtime (i.e., during an itemSession) the value of the variable is notionally represented by a class derived from itemVariable
Attribute : identifier [1]: identifier
The identifiers of
the built-in session variables are reserved. They are completionStatus and duration. All item variables declared in an item share the
same namespace. Different items have different namespaces.
Attribute : cardinality [1]: cardinality
Each variable is
either single valued or multi-valued. Multi-valued variables are referred to as
containers and come in ordered, unordered and record
types. See cardinality for more information.
Attribute : baseType [0..1]: baseType
The value space from
which the variable's value can be drawn (or in the case of containers, from
which the individual values are drawn) is identified with a baseType. The baseType selects one of a small set of predefined types
that are considered to have atomic values within the runtime data model. Variables with record
cardinality have no base-type.
Contains : defaultValue [0..1]
An optional
default value for the variable. The point at which a variable is set to its
default value varies depending on the type of item variable.
outcomeVariable, responseVariable, templateVariableitemSessionAssociated with : variableDeclaration [1]
At runtime, item variables are created in the
itemSession each corresponding to a variableDeclaration in the corresponding assessmentItem.
Attribute : identifier [1]: identifier
The purpose of an itemVariable is to
associate the runtime value of the variable with the variable's identifier and
declaration. At runtime the variable has the cardinality and baseType given in the associated declaration
Contains : value [*]
An itemVariable may have no
value at all, in which case it is said to have the special value NULL. For
example, if the candidate has not yet had an opportunity to respond to an
interaction then any associated responseVariable will have a NULL value.
Empty containers and empty strings are always treated as
NULL values.
A class that can represent a single value of any baseType in variable declarations. The base-type is defined by the baseType attribute of the declaration except in the case of variables with record cardinality.
Attribute : fieldIdentifier [0..1]: identifier
This attribute is used for specifying the field identifier for a value that
forms part of a record.
Attribute : baseType [0..1]: baseType
This
attribute is used for specifying the base-type of a value that forms part of a
record.
Attribute : interpretation [0..1]: string
A human readable
interpretation of the default value.
Contains : value [1..*]
An expression or itemVariable can either be single-valued or multi-valued. A multi-valued expression (or variable) is called a container. A container contains a list of values, this list may be empty in which case it is treated as NULL. All the values in a multiple or ordered container are drawn from the same value set, however, containers may contain multiple occurrences of the same value. In other words, [A,B,B,C] is an acceptable value for a container. A container with cardinality multiple and value [A,B,C] is equivalent to a similar one with value [C,B,A] whereas these two values would be considered distinct for containers with cardinality ordered. When used as the value of a responseVariable this distinction is typified by the difference between selecting choices in a multi-response multi-choice task and ranking choices in an order objects task. In the language of [ISO11404] a container with multiple cardinality is a "bag-type", a container with ordered cardinality is a "sequence-type" and a container with record cardinality is a "record-type".
The record container type is a special container that contains a set of independent values each identified by its own identifier and having its own base-type. This specification does not make use of the record type directly however it is provided to enable customInteractions to manipulate more complex responses and customOperators to return more complex values.
identifier
The set of identifier values is the same as the set of
values defined by the identifier class
boolean
The set of boolean values is the same as the set of values
defined by the boolean class.
integer
The set of integer values is the same as the set of values
defined by the integer class.
float
The set of float values is the same as the set of values defined
by the float class.
string
The set of string values is the same as the set of values
defined by the string class.
duration
A duration value specifies a distance (in time) between two
time points. In other words, a time period as defined by [ISO8601]. Durations are measured in seconds and may have a fractional part.
file
A file value is any sequence of octets (bytes) qualified by a
content-type and an optional filename given to the file (for example, by the
candidate when uploading it as part of an interaction).
The content type of the file is one of the MIME types defined by [RFC2045].
uri
A URI value is a Uniform Resource Identifier as defined by [URI].
A special class used to create a mapping from a source set of any baseType to a single float. When mapping containers the result is the sum of the mapped values from the target set. See mapResponse for details.
Attribute : lowerBound [0..1]: float
The lower bound for
the result of mapping a container. If unspecified there is no lower-bound.
Attribute : upperBound [0..1]: float
The upper bound for
the result of mapping a container. If unspecified there is no upper-bound.
Attribute : defaultValue [1]: float = 0
The default
value from the target set to be used when no explicit mapping for a source value
is given.
Contains : mapEntry [1..*]
The map is defined
by a set of mapEntries, each of which maps a single value from the source set
onto a single float.
Attribute : mapKey [1]: value
The source value
Attribute : mappedValue [1]: float
The mapped value
Class : responseDeclaration (variableDeclaration)
assessmentItemResponse variables are declared by response declarations and bound to interactions in the itemBody.
itemSession defines one built-in pre-bound response variable: duration.
Contains : correctResponse [0..1]
A
response declaration may assign an optional correctResponse. This value may
indicate the only possible value of the response variable to be considered
correct or merely just a correct value. For responses that are
being measured against a more complex scale than
correct/incorrect this value should be set to the (or an) optimal value. Finally, for responses for
which no such optimal value is defined the correctResponse must be omitted.
If a delivery system supports the display of a solution then it should
display the correct values of responses (where defined) to the candidate.
When correct values are displayed they must be clearly distinguished from
the candidate's own responses (which may be hidden completely if necessary).
Contains : mapping [0..1]
The mapping
provides a mapping from the set of base values to a set of numeric values
for the purposes of response processing. See mapResponse for information on how to use the mapping.
Contains : areaMapping [0..1]
The
areaMapping, which may only be present in declarations of variables with
baseType point, provides an alternative form of
mapping which tests against areas of the coordinate space instead of mapping
single values (i.e., single points).
Attribute : interpretation [0..1]: string
A human
readable interpretation of the correct value.
Contains : value [1..*]
A special class used to create a mapping from a source set of point values to a target set of float values. When mapping containers the result is the sum of the mapped values from the target set. See mapResponsePoint for details. The attributes have the same meaning as the similarly named attributes on mapping.
Attribute : lowerBound [0..1]: float
Attribute : upperBound [0..1]: float
Attribute : defaultValue [1]: float = 0
Contains : areaMapEntry [1..*] {ordered}
The map is defined by a set of areaMapEntries, each of
which maps an area of the coordinate space onto a single float. When mapping
points each area is tested in turn, with those listed first taking priority
in the case where areas overlap and a point falls in the intersection.
Attribute : shape [1]: shape
The shape of the area.
Attribute : coords [1]: coords
The size and position of the area,
interpreted in conjunction with the shape.
Attribute : mappedValue [1]: float
The mapped value
At runtime, response variables are instantiated as part of an itemSession. Their values are always initialized to NULL (no value) regardless of whether or not a default value is given in the declaration. A response variable with a NULL value indicates that the candidate has not offered a response, either because they have not attempted the item at all or because they have attempted it and chosen not to provide a response.
If a default value has been provided for a response variable then the variable is set to this value at the start of the first attempt. If the candidate never attempts the item, in other words, the itemSession passes straight from the initial state to the closed state without going through the interacting state, then the response variable remains NULL and the default value is never used.
Implementors of Delivery Engine's should take care when implementing user interfaces for items with default response variable values. If the associated interaction is left in the default state (i.e., representing the default value) then it is important that the system is confident that the candidate intended to submit this value and has not simply failed to notice that a default has been provided. This is especially true if the candidate's attempt ended due to some external event, such as running out of time. The techniques required to distinguish between these cases are an issue for user interface design and are therefore out of scope for this specification.
Class : outcomeDeclaration (variableDeclaration)
assessmentItemOutcome variables are declared by outcome declarations. Their value is set either from a default given in the declaration itself or by a responseRule during responseProcessing.
itemSession defines one built-in outcome variable: completionStatus.
Attribute : interpretation [0..1]: string
A human
interpretation of the variable's value.
Attribute : longInterpretation [0..1]: uri
An optional
link to an extended interpretation of the outcome variable's value.
Attribute : normalMaximum [0..1]: float
The normalMaximum attribute optionally defines the maximum
magnitude of numeric outcome variables, it must be a positive
value. If given, the outcome's value can be divided by normalMaximum and
then truncated (if necessary) to obtain a normalized score in the range
[-1.0,1.0]. normalMaximum has no affect on responseProcessing or the values that the outcome variable itself
can take.
Outcome variables are instantiated as part of an itemSession. Their values may be initialized with a default value and/or set during responseProcessing. If no default value is given in the declaration then the outcome variable is initialized to NULL unless the outcome is of a numeric type (integer or float) in which case it is initialized to 0.
For Non-adaptive Items, the values of the outcome variables are reset to their default values prior to each invocation of responseProcessing. For Adaptive Items the outcome variables retain the values that were assigned to them during the previous invocation of response processing. For more information, see Response Processing.
Class : itemBody (bodyElement)
assessmentItemContains : block [*]
The item body contains the text, graphics, media objects and interactions that describe the item's content and information about how it is structured. The body is presented by combining it with stylesheet information, either explicitly or implicitly using the default style rules of the delivery or authoring system.
The body must be presented to the candidate when the associated itemSession is in the interacting state. In this state, the candidate must be able to interact with each of the visible interactions and therefore set or update the values of the associated responseVariables. The body may be presented to the candidate when the item session is in the closed or review state. In these states, although the candidate's responses should be visible, the interactions must be disabled so as to prevent the candidate from setting or updating the values of the associated response variables. Finally, the body may be presented to the candidate in the solution state, in which case the correct values of the response variables must be visible and the associated interactions disabled.
The content model employed by this specification uses many concepts taken directly from [XHTML]. In effect, this part of the specification defines a profile of XHTML. Only some of the elements defined in XHTML are allowable in an assessmentItem and of those that are, some have additional constraints placed on their attributes. Finally, this specification defines some new elements which are used to represent the interactions and to control the display of Integrated Feedback and content restricted to one or more of the defined content views.
atomicBlock, atomicInline, caption, choice, col, colgroup, div, dl, dlElement, hr, interaction, itemBody, li, object, ol, printedVariable, prompt, simpleBlock, simpleInline, table, tableCell, tbody, templateElement, tfoot, thead, tr, ulThe root class of all content objects in the item content model is the bodyElement. It defines a number of attributes that are common to all elements of the content model.
Attribute : id [0..1]: identifier
The id of a body element
must be unique within the item.
Attribute : class [*]: styleclass
Classes
can be assigned to individual body elements. Multiple class names can be given.
These class names identify the element as being a member of the listed classes.
Membership of a class can be used by authoring systems to distinguish between
content objects that are not differentiated by this specification. Typically,
this information is used to apply different formatting based on definitions in
an associated stylesheet.
Attribute : lang [0..1]: language
The main
language of the element. This attribute is optional and will usually be
inherited from the enclosing element.
Attribute : label [0..1]: string256
The label attribute
provides authoring systems with a mechanism for labeling elements of the
content model with application specific data. If an item uses labels then values
for the associated toolName and
toolVersion attributes must also be provided.
flow, paramobjectElements that can appear within an object.
inlineInteraction, inlineStaticsimpleInline, dt, caption, atomicBlockElements that behave as spans of text, such as the contents of paragraphs.
blockInteraction, blockStatic, customInteraction, positionObjectStageitemBody, simpleBlockElements that provide structure to the text, such as paragraphs, tables etc. Most elements are either inline or block elements.
Abstract class : flow (objectFlow)
blockInteraction, customInteraction, flowStatic, inlineInteractiontableCell, div, dd, liElements that can appear inside list items, table cells, etc. which includes block-type and inline-type elements.
Abstract class : inlineStatic (inline)
atomicInline, gap, hottext, math, object, printedVariable, simpleInline, templateInline, textRunhottext, prompt, templateInlineA sub-class of inline that excludes interactions.
Abstract class : blockStatic (block)
atomicBlock, div, dl, hr, math, ol, simpleBlock, table, templateBlock, ultemplateBlock, gapMatchInteraction, hottextInteractionA sub-class of block that excludes interactions.
Abstract class : flowStatic (flow)
atomicBlock, atomicInline, div, dl, hottext, hr, math, object, ol, printedVariable, simpleBlock, simpleInline, table, templateBlock, templateInline, textRun, ulsimpleAssociableChoice, modalFeedback, simpleChoiceA sub-class of flow that excludes interactions.
The following classes define a small number of common element types used by XHTML.
Abstract class : simpleBlock (blockStatic, bodyElement, flowStatic)
blockquote, feedbackBlock, rubricBlockContains : block [*]
A text run is simply a run of characters. Unlike all other elements in the content model it is not a sub-class of bodyElement. To assign attributes to a run of text you must use the span element instead.
The structural elements of the content model that are taken from [XHTML] are documented in groups according to their suggested classification in [XHTML_MOD]. Only those attributes listed here may be used (including attributes inherited from parent classes). By default, elements and attributes have the same interpretation and restrictions as the corresponding elements and attributes in [XHTML].
Although pre inherits from atomicBlock it must not contain, either directly or indirectly, any of the following objects: img, object, big, small, sub, sup.
Contains : flow [*]
Class : object (bodyElement, flowStatic, inlineStatic)
drawingInteraction, positionObjectInteraction, positionObjectStage, graphicInteraction, gapImgContains : objectFlow [*]
Attribute : data [1]: string
The
data attribute provides a URI for locating the data associated with the object.
Attribute : type [1]: mimeType
Attribute : name [1]: string
The name of the parameter, as
interpreted by the object.
Attribute : value [1]: string
The value to pass to
the object for the named parameter. This value is subject to template
variable expansion. If the value is the name of a template variable that
was declared with the paramVariable set to true then the
template variable's value is passed to the object as the value
for the given parameter.
When expanding a template variable as a parameter value, types other than identifiers, strings and uris must be converted to strings. Numeric types are converted to strings using the "%i" or "%G" formats as appropriate (see printedVariable for a discussion of numeric formatting). Values of base-type boolean are expanded to one of the strings "true" or "false". Values of base-type point are expanded to two space-separated integers in the order horizontal coordinate, vertical coordinate, using "%i" format. Values of base-type pair and directedPair are converted to a string consisting of the two identifiers, space separated. Values of base-type duration are converted using "%G" format. Values of base-type file cannot be used in parameter expansion.
If the valuetype is REF the template variable must be of base-type uri.
Attribute : valuetype [1]: paramType = DATA
This
specification supports the use of DATA and REF but not
OBJECT.
Attribute : type [0..1]: mimeType
Used to provide a
type for values
valuetype REF.
tableContains : inline [*]
Class : colgroup (bodyElement)
tableContains : col [*]
Attribute : summary [0..1]: string
Contains : caption [0..1]
Contains : col [*]
If a table directly contains a
col then it must not contain any colgroup elements.
Contains : colgroup [*]
If a table contains a colgroup
it must not directly contain any col elements.
Contains : thead [0..1]
Contains : tfoot [0..1]
Contains : tbody [1..*]
In XHTML, table cells are represented by either th or td and these share the following attributes and content model:
Attribute : headers [*]: identifier
Attribute : scope [0..1]: tableCellScope
Attribute : abbr [0..1]: string
Attribute : axis [0..1]: string
Attribute : rowspan [0..1]: integer
Attribute : colspan [0..1]: integer
Contains : flow [*]
tableContains : tr [1..*]
tableContains : th [1..*]
tfoottableContains : tr [1..*]
Contains : tableCell [1..*]
Although a inherits from simpleInline it must not contain, either directly or indirectly, another a.
[MathML] defines a Markup Language for describing mathematical notation using XML. The primary purpose of MathML is to provide a language for embedding mathematical expressions into other documents, in particular into HTML documents.
The math class is defined externally by the MathML specification. It can behave in the item's content model as an inline, block or flow element.
It is often desirable to vary elements of a mathematical expression when creating item templates. Although it is impossible to embed objects such as printedVariable defined for that purpose within a math object the techniques described in this section can be used to achieve a similar effect.
In MathML, numbers are represented either by the <mn> or <cn> elements, for presentation or content representation respectively. Similarly, <mi> and <ci> represent identifiers. If mathVariable is set in a template variable's declaration then all instances of <mi> and <ci> that match the name of the template variable must be replaced by <mn> and <cn> respectively with the template variable's value as their content.
It is possible that this technique of expanding template variables will be extended to other elements of MathML in future.
This specification defines two methods by which the content of an assessmentItem can vary depending on the state of the itemSession.
The first method is based on the value of an outcomeVariable.
Attribute : outcomeIdentifier [1]: identifier
The
identifier of an outcome variable that must have a base-type of identifier and be of either single or multiple
cardinality. The visibility of the feedbackElement is controlled by
assigning a value (or values) to this outcome variable during responseProcessing.
Attribute : showHide [1]: showHide = show
The
showHide attribute determines how the visibility of the feedbackElement is
controlled. If set to show then the feedback
is hidden by default and shown only if the associated outcome variable
matches, or contains, the value of the identifier attribute. If set to hide then the feedback is shown by default and hidden if
the associated outcome variable matches, or contains, the value of the
identifier attribute.
Attribute : identifier [1]: identifier
The identifier
that determines the visibility of the feedback in conjunction with the
showHide attribute.
A feedback element that forms part of a Non-adaptive Item must not contain an interaction object, either directly or indirectly.
When an interaction is contained in a hidden feedback element it must also be hidden. The candidate must not be able to set or update the value of the associated responseVariable.