Common Elements
All of the common elements used within this specification are described in this Document. Common elements include the data types, and their properties used in this specificaiton.

Cardinality

All the variables in the specification will have a cardinality. The cardinality attribute defines the number of values allowed for the variable and whether the variables are ordered.
Supported types of cardinality are:
  • single: only one value is allowed for the variable
  • multiple: one or more values are allowed for the variable
  • ordered: ordered list of values are allowed for the variable

Data Types

string

String data types should be used to represent string literal values.

integer

Integer data types should be used to represent numbers without a fractional part.

float

Float data types should be used to represent numbers with a fractional part.

boolean

Boolean data types should be used to represent values with two states: true or false.

uri

URI data types should be used to represent Uniform Resource Identifier (URI) reference values.

map

Map data type should be used for variables whose values are key-value pairs. Map is a non-primitive data type with the following attributes.
Attribute
Schema
Description
key
dataType: string, required: true
a map cannot contain duplicate keys and each key can map at most one value
value
dataType: any, required: false, defaultValue: NULL
value can be of any other data type defined in QuML. value is optional and is by default set to NULL, if not provided

coordinate

Coordinate data type should be used to represent coordinates (x and y) of a single point in a canvas.
Attribute
Schema
Description
x
dataType: float, required: true
x-coordinate value of the point
y
dataType: float, required: true
y-coordinate value of the point

points

Points data type should be used for variables whose values represent an area on a canvas. Points are made up of a shape and the coordinates that define the boundary of the area.
Attribute
Schema
Description
shape
dataType: string, required: true, range: “point”, “circle”, “ellipse”, “poly”, “rect”
represents the shape of points. it must be equal one of the predefined values defined in the range
coordinates
dataType: list of coordinate objects, required: true
Coordinates should have at least one coordinate object. The number of coordinates depend on the shape.

media

Media data type should be used for representing a single media file. Media are re-usable to create assets which are used in questions and/or tests.
Attribute
Schema
Description
id
dataType: string, required: true
identifier of the media object
mimeType
dataType: string, required: true
technical mime type of the asset used by QuML players to understand the format of the asset. Supported types are image/png, audio/mp3, video/mp4, and video/webm
mediaType
dataType: string, required: true
type of the asset. this should be auto-derived from the mimeType value, current supported types are image, audio and video
src
dataType: string, required: true
path of the media file. QuML players will use this value to load all the media used in a question/test
baseUrl
dataType: string, required: false
baseUrl of the server where the media is stored. Base URL can be used by QuML players to load media in a browser without CORS issues. this is achieved by QuML server proxying path to the provided base url.