Changelog
Version 0.5.0 (in development)
XML Namespace
- ⚠️ Changed the XML namespace from
http://mint-kolleg.kit.edu/edML
tohttps://edml.mint-kolleg.kit.edu
. This must be changed on all documents that use the new schema.
Tests
- ⚠️ Moved the
tests
elements: They are now in a separate child elementtests
of thevariant
element (instead of the navigation) and can be referenced in the navigation using theto
attribute of theref
element. - Added new
feedback
attribute to thetest
element. This can be used to control the amount of scoring information the users gets shown after completing a test. - Added new
feedback
element to thetest
element. This can be used to specify content that should be shown to the user after completing the test. - Added some minor attributes to the test elements.
Cloning containers
- Added a new element
clonecontainer
that can be used anywhere where a container can be inserted. This element clones the content of a container (view or box) and puts it in the position where theclonecontainer
appears.
Decision element
- Added new
decision
element which can be used to formulate content that depends on the evaluation of parameters and input values. This can be especially useful in the newfeedback
element in tests to react to the users input values.
Input fields
- ⚠️ Renamed the
items
subelement of theorder
input value toorderitems
in order to be consistent with the structure of thematching
input value. - ⚠️ Changes the effect of the
reveal
attribute of theinput
element: This attribute now effects an associatedsolutionhint
element and can be used to only show the solution after a given number of failed attempts. The solution value stored in the input field will no longer be shown to the user directly, as it was before. - Added two new input elements
linearspan
andaffinespace
. - Added new
stringgroup
element that allows course authors to show the solutions to string input fields as a list of draggable boxes below the input fields. - ⚠️ Removed support for
string
elements in matrices and vectors. Only numbers and expressions are allowed here. - Changes to the
expression
input element: - Added new
testmode
attribute that controls how the user expression is compared with the solution expression. - ⚠️ Removed the
verbatim
attribute. This feature can now be achieved by setting thetestmode
attribute toverbatim
. - Changes to the
vector
input element: - ⚠️ Removed unnecessary attributes
minsizehints
andmaxsizehints
. - Added default value
auto
todefaultsize
attribute. - Changes to the
matrix
input element: - ⚠️ Removed unnecessary attributes
minrowshints
,maxrowshints
,mincolumnshints
andmaxcolumnshints
. - ⚠️ Change the meaning of the default value
auto
of the attributesdefaultrows
anddefaultcolumns
: This now means that the respective sizes will be as in the first matrix written as solution in the input value element. - ⚠️ Replaced the
fixed
attribute of thereaction
element by two new attributesfixed
on the elementsproducts
andeducts
. These can now be specified separately. - ⚠️ Removed support for
expression
elements as children ofquantity
and removed accidentalsignificant
attribute on this element which has now been moved to other elements in the last version. - Added a new
label
element that can be linked to an inline input field. This allows to make the text next to a boolean input field clickable to change the field value. - Added new attribute
toggle
to thebooleangroup
element which turns boolean input fields into toggleable regions. - ⚠️ Changes to node types in the attributes of
expression
element: Renamedfaculty
tofactorial
and added more functions such assin
,cos
andlog
. - ⚠️ Changed the default value of the
reveal
attribute from0
to1
. - Added a
reveal
attribute to thebooleangroup
element. The user can now link solution hints tobooleangroup
elements. - Added optional
check
attribut to the input elementsinput
,inputblock
andbooleangroup
. By settings this attribute tofalse
one can prevent the player from checking the correctness of the inputs.
Audio
- Added new
audio
inline element for playing audio files in the course.
Custom extensions
- Added new
objectblock
block element. This element defines an extension point for a custom block element. A user scripts can perform operations on such an element, such as drawing 3D molecules from JSON data or rendering GeoGebra files.
Exercise randomization
- ⚠️ Changes to the
range
element: Renamed the valuecontinuous
of thestep
attribute tonone
to have fewer special attribute values. - Added new
parametergroup
element that allows to enforce constraints, such as numbers being pairwise distinct, between random parameters. - ⚠️ Renamed
calculate
element tocalc
. - Added new
simplify
andnumberformat
attributes to thecalc
element. - The
calc
element now automatically outputs its result as LaTeX code when it appears inside anm
element.
Table formatting
- ⚠️ Moved
maxheight
attribute fromrow
totable
element. - Added optional
sortable
attribute to thetable
element. When this attribute is enabled, the user can sort the table by a column of his or her choice. - Added optional
sortedby
attribute to thecolspec
element. With this attribute, a course author can specify a default column by which the table should be sorted. - Added
baseline
as a valid value of thevalign
attribute.
Other formatting changes
- Added new optional
numbered
attribute to them
andfigureblock
elements for controling whether or not these elements should be numbered. - ⚠️ Removed the attribute values
flexstart
,flexend
,baseline
andnormal
in flex attributes as they are either outdated or too special for our purposes. - Added
minwidth
andmaxwidth
attributes to theflexitem
element.
Flipcards
- Added new view
flipcardview
that allows the user to flip between two text boxes.
Theorems and proofs
- Added new optional
of
attribute toproofbox
to enable course authors to link proofs to theorems. - Added predefined values for the
subtype
attribute in thetheorembox
element. This will allow to mark theorems as lemmas, corollaries or propositions uniformly among different courses.
Settings
- Added new
navsettings
element for specifying course-wide default settings of navigation items and navigation lists. - Made the
settings
element incourse
element optional. - ️⚠️ Replaced the optional
defaultvariant
child element of the course settings element by an attribute with the same name. - Added a new optional
settings
element in thevariant
element. This can be used to specify variant specific settings, which will overwrite the respective course settings. - Added the ability to specify settings for boxes in the
containers
subelement of thesettings
element. There are also some more attributes on the boxes themselves.
Buttons
- Added a new inline element
button
that works similar to aref
element, but visually appears as a button.
Bug fixes and small improvements
- Added missing unit
ex
to the regex pattern ofLengthPercentage
values. - ⚠️ Removed unused attributes
maxusage
,maxusage
andshuffle
frommatching
element. One should use the corresponding attributes on thedropitems
anddragitems
elements added in the last version instead. - Fixed type of
prefixes
attribute in theunit
element. - Navigation items are now allowed to contain a
title
element instead of aref
orlink
element. Such navigation items link to the next child item with a reference or link. - Improved the regex pattern to match chemical formulas: We now allow square brackets in addition to round brackets.
- Added
navlist
as a possible root element to simplify XInclude usage. - Added
xml:id
attribute on root elements to simplify XInclude usage. - Added the option to add metadata to
exercise
elements andexternmedia
elements. - Added new optional
showlearnpathinfo
attribute to thenavitem
element. - Documented a new
\md
LaTeX macro that can be used in them
element.
Version 0.4.0
- Matching and order inputs:
- The "item" element now expects block content instead of inline content. This means that a "p" element must now be used to put simple text into them, but more content elements are allowed inside them.
- Moved the "dragusage" and "dropusage" attributes from the "matching" element to its child elements "dragitems" and "dropitems" and renamed them to "maxuse".
- Moved the "shuffle" attribute from "matching" to "dragitems" and "dropitems". It is now possible to specify this setting separately for the drag and drop items.
- Numeric inputs:
- Moved the "significant" attribute from "quantity" to "number". The attribute is now also available on the "mantissa" and "exponent" elements.
- Added new "significancecheck" attribute to the elements "number", "mantissa" and "exponent".
- Added "scientific" and "engineering" attributes to the "exponential" element.
- Tables:
- Added new optional "headrow" element to "table" element. This can be used instead of the "row" element to label the first row of a table as head row.
- Added new optional "fixed" attribute to the "colspec" and the new "headrow" elements. This can be used to fix a row or column when scrolling through the table.
- Added new required "column" attribute to the "colspec" element. The column number is no longer automatically deduced. It instead now has to be specified by this attribute.
- Added new "striped" attribute to the "table" element. This allows to make tables with striped backgrounds.
- Other input fields:
- Added new "expanded" and "verbatim" attributes to the "expression" input element. The functionality of these attributes and the "simplified" attribute has changed and is now better documented.
- Added new "type" attribute to vector input element to distinguish column vectors from row vectors.
- Added new "expectedselection" attribute to "booleangroup" element. This allows to make exercises where only a certain number of correct fields must be selected.
- Tests: Added definition of a new "test" element in the navigation of a course variant.
- Small fixes:
- Fixed the regex pattern for the "style" element.
- Fixed the definition of the "note" element: This element now allows mixed content as intended.
Version 0.3.0
Breaking changes
- The "edmlversion" attribute on the "course" element is now required.
- The "help" element is now a block element instead of an inline element.
- Removed the "integers" attribute on the "reaction" element. The coefficients entered by the user must now always be integers. Instead, there is now a new "reduced" attribute on this element.
- Renamed "codeenvironment" element to "sourcecode" to better match the naming scheme of the other input value elements.
- Renamed "autostepafter" attribute on "carouselview" to "autostep".
- Renamed child elements of "exponential" input value element to "mantissa" and "exponent". This makes it possible to specify settings for these in a better way in the input model settings.
- Restricted the values of length-valued attributes such as "minwidth", "maxheight", "width" and "columngap": These now accept either a length with certain units or a percentage. The value ranges are compatible with CSS4.
- Restricted the allowed values of the "lang" attribute on the "code" and "codelisting" elements to "xml", "java" and "cpp". For programming exercises, only "java" is allowed currently.
- Documented whitespace behavior: Whitespace in elements "string", "code" and "content" is now documented to be significant. Whitespace in these elements will not be trimmed.
- Added regex patterns that check the validity of the content of molecular formulars and units.
- Removed "uncheck" attribute from "booleangroup" as we do not plan to support unchecking boolean input fields.
- Removed default values in the attributes of input value element such as "number" or "string. Their values are now taken from the input model if the attribute is not set.
- Moved "significant" attribute from the "number" element to the "quantity" element.
- Renamed the attribute "maxcredits" to "maxtotalcredits" and "maxpenalty" to "maxtotalpenalty" in the "booleangroup" element for more clarity.
- Changed the default penalty of boolean input fields to one. The default penalty can be changed by putting boolean input fields in booleangroup elements.
Backwards compatible changes
- Added new "autoref" inline element for references to parts of the course with automatically generated text content.
- Added options to change the table formatting (alignment, width, height):
- Added an optional "colspecs" element to the "table" element that can be used to specify the formatting of all cells in a column.
- Added formatting attributes on "cell" and "row" elements.
- Added new "trim" attribute to "string" input value.
- Added new "allowrefresh" attribute to the "poolview" element.
- Added new "fixed" attribute to the "reaction" element.
- Added new "markexternal" attribute to the "link" element.
- Added new "preferredforms" attribute to the "unit" input value element.
- Added the ability to highlight code fragments in the "codelisting" element:
- New attribute "highlight" on "codelisting" can be used to highlight whole lines.
- New element "spotlight" in "codelisting" can be used to highlight only some part of a line.
- Added new "indicator" attribute to the "carouselview" element.
- Added default values for some attributes:
- lang="plaintext" for the elements "codelisting" and "code"
- width="auto" for the "input" element
- Added accidentally missing "difficulty" attribute to "groupview" elements that are subelements of "accordionview" elements.
- Added new "open" attribute on "accordion" and "accordionview" elements.
- Added new "feedback" attribute on "booleangroup" element.
- Added new "reveal" attribute on "input" and "inputblock" elements.
- Added new "align" attribute to "inputblock" element.
- Added new units "min" (minutes), "h" (hours), "d" (days) and "B" (Bell).
- Added new "shuffle" attribute to the "poolview" element with default value "true".
- Added new "radixpoint" attribute to the "variant" element.
- Added new "note" inline element for footnotes.
Technical improvements to the schema and its documentation: - Regex-Patterns are now shown in the schema documentation. - Added some new schematron rules. These are also shown in the schema documentation under "Rules". - Removed Pandoc writer script from the language repository. Pandoc related tools are now in another repository.
Version 0.2.2
- Renamed "terms" and "definitions". We now use the new terms "dragitems" and "dropitems".
- Removed the "maxoccurs" attributes on "terms" and "definitions". There are now two replacement attributs on "matching" called "dragusage" and "dropusage".
- Renamed the "items" subelement of the "order" element to "orderitems".
- All indices in "matching" and "order" input values now start with one instead of zero.
Version 0.2.1:
- Added optional "edmlversion" attribute to "course" element. If present, the value of this attribute must match the schema version.
- Fixed a bug in the schema: The "rowgap" and "columngap" attributes now accept strings instead of only numbers.
- Added empty schematron file.
Version 0.2.0:
- Reworked the "attribution" element:
- The element is now called "metadata" instead of "attribution".
- The "license" attribute of the old "attribution" element is now a child element of "metadata".
- Renamed "author" child element to "creator" (in order to use the same names as Dublin Core).
- Renamed "info" child element to "description" (in order to use the same names as Dublin Core, and because we already have another "info" element).
- Added a new "url" attribute to "creator", "description", "source" and "license" elements.
- The "date" element now accepts only valid values of the XSD type xs:date.
- Added new "fixedheight" attribute to the "carouselview" element: This allows to change how the height of the carousel is calculated.
- Added new "indent" and "fullnumbering" attributes to the "navigation" and "list" elements.
- Added new "preview" and "autoload" attributes to the "video" and "externmedia" elements.
- Added new "difficulty" attribute to "groupview".
- Added "variant" and "page" elements as possible roots of the XML document. This helps when authors want to split their documents into multiple files and combine them using XInclude.
- Renamed "inputblock" to "booleangroup". The "inputblock" element now has a new meaning as a container for block-style input elements.
- The new "order" input value is only allowed in "inputblock" and can be used for ordering assignments.
- The new "reaction" input value is only allowed in "inputblock" and can be used for chemical reaction assignments.
- Removed the previous "orderquiz" element. The new "order" input value should be used instead.
- Changed "codeenvironment" element to be only allowed 43243223333tgfd hg,n bvcxmn bvcxy71inside of the new "inputblock" element.
- Replaced "checklive" attribute by individual boolean hints attributes, such as "maxlengthhints" or "prefixeshints".
- Added new "subtype" attribute to all boxes to further describe their content (for example: subtype="lemma" in theorembox).
- Changed allowed values of "minwidth" and "maxwidth" attributes to be CSS units instead of pixels.
- Changed "title" element to support inline content instead of just text.
- Removed "width" attribute of the "string" input value element.
- Changed "width" attribute of the "input" element to accept CSS values instead of pixels.
- Added new "applicationbox" element that can be used to describe applications of course content.
- Added a Pandoc writer script to convert documents into the language using Pandoc.
- Added possibility to mark inline content with roles and define CSS style properties for roles in the course.
- Added new "role" attribute to the "mark" inline element.
- Added new "style" and "styles" elements to the global "settings" element of the course.
- Added new "strikeout" inline element for text parts with a horizontal line through their content.
- Renamed inline elements to better express their semantic meaning instead of just their formatting effect:
- "b" has been renamed to "strong"
- "i" has been renamed to "emph"
- "u" has been renamed to "underline"
- Minor changes to existing input value elements:
- We now allow expressions and strings as solution values inside the "matrix" and "vector" input values.
- We now allow inline content instead of just text in the "option" subelement of the "choice" input value.
- Matrix and Vector dimensions must now be at least one. We currently do not want to support empty matrices or vectors.
- Added "intervalofexpressions" and "intervalofnumbers" as valid values for the "of" attribute of "set".
- Removed "flipped" attribute from "interval" element.
- Changes to the "flex" and "flexitem" elements:
- Dimension values in the attributes of these elements are now expected to be in CSS units instead of a fixed unit.
- Formalized more of the legal attribute values in the schema.
- Reworked views:
- Split "poolview" into "poolview" and a new "carouselview" element.
- We now allow arbitrary containers in "optionalview".
- The "groupview" container is allowed to appear in more places.
- Renamed "panelview" element to "groupview".
- Changed type of attribute "fixclosure" of "interval" element to boolean.
- Reworked "parameter" element:
- Identifier is now an attribute instead of a subelement.
- Renamed "start" and "end" elements both to "value".
- We now also allow strings as parameter values.
- Replaced "closed" attribute of "interval" element with a new "closure" attribute.
- Removed "equation" block element and instead added "display" attribute to the "m" inline element.
- The equation elements should be replaced by "m" elements with "display" set to "block".
- Added "align" attribute to "m" element to support non-centered math formulas.