Changelog
Version 0.6.0 (in development)
Changes to sets input element
- ⚠️ Strings are no longer allowed in sets. This makes parsing of set input values easier.
 
Extra features for lists
- Added new optional attributes 
prefixandpostfixto thelistelement. This can be used to put text before or after the enumerator of an ordered list. 
Changes to the credits system
- ⚠️ The credit attribute of child input values (such as 
numberinput values inside avectorinput value) are now interpreted as relative weights. More details can be found in documentation of the credits attribute e.g. in thesetelement. 
Rework of the sourcecode element
- ⚠️ Added a new sub element 
sourcefilein thesourcecodeelement. With this element, the task can be divided into several files. - ⚠️ Removed the 
typeattribute onsourcecode. - ⚠️ Renamed the element 
initialcontenttoinitialcodeandsolutioncontenttosolutioncode. 
Improvements to references
- Added new allowed child element 
refnumberto therefelement. This can be used to insert the number of the referenced content into the text. 
Reworking of box titles
- ⚠️ Removed the 
titlechild element on all boxes excepttextboxandproofbox. Moreover, the olddescriptorandlabelattributes have been removed on boxes. - The title of these boxes can now be controlled by three new elements 
enumerator,descriptorandsubtitle. These also replace the old corresponding attributes. 
Interactions
- Added a new block-level element 
interactionfor content that can change dynamically based on input from the user. This element is only allowed on the top-level of boxes. 
Other minor additions
- Added new possible value 
modalin themodeattribute of thesolutionhintelement. - Added new predefined plugin identifier 
tikzin theobjectblockelement. This is meant for a plugin displaying TikZ pictures in the browser. - Added new 
editedproperty on input elements that can be used to check if the input field has been edited by the user. - Added new 
firstlinenumberattribute tocodelisting. This can be used to start the displayed line numbers with a number other than one. - Added new 
openattribute to thenavlistelement. This element can be used to change the default open/collapsed behavior of navigation lists. - Added new child element 
solutioncontentto thesourcecodeelement. This element can be used to specify a solution in the form of code. - Added new attribute 
powerbaseto theexponentialelement that allows to change the base used for the power operation in the calculation. 
Unsorted
- Added a new default value 
autoto the attributedefaultvariant. When the attribute is set to this value, the player tries to automatically detect the preferred client browser language. - We now allow the elements 
refandautorefinside themelement to make references inside math formulars. These will be replaced by\hrefLaTeX macros. 
Cleaned up box types
- ⚠️ Removed the 
experimentboxelement. One should use anapplicationboxwithsubtype="experiment"instead. 
Bug fixes
- ⚠️ Changed the name of the unit property of the 
quantityelement tounit(wasvaluebefore). - The 
groupviewchild elements ofcarouselviewelements do not require a title anymore. 
Version 0.5.0
XML Namespace
- ⚠️ Changed the XML namespace from 
http://mint-kolleg.kit.edu/edMLtohttps://edml.mint-kolleg.kit.edu. This must be changed on all documents that use the new schema. 
Tests
- ⚠️ Moved the 
testselements: They are now in a separate child elementtestsof thevariantelement (instead of the navigation) and can be referenced in the navigation using thetoattribute of therefelement. - Added new 
feedbackattribute to thetestelement. This can be used to control the amount of scoring information the users gets shown after completing a test. - Added new 
feedbackelement to thetestelement. 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 
clonecontainerthat 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 theclonecontainerappears. 
Decision element
- Added new 
decisionelement which can be used to formulate content that depends on the evaluation of parameters and input values. This can be especially useful in the newfeedbackelement in tests to react to the users input values. 
Input fields
- ⚠️ Renamed the 
itemssubelement of theorderinput value toorderitemsin order to be consistent with the structure of thematchinginput value. - ⚠️ Changes the effect of the 
revealattribute of theinputelement: This attribute now effects an associatedsolutionhintelement 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  
linearspanandaffinespace. - Added new 
stringgroupelement 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 
stringelements in matrices and vectors. Only numbers and expressions are allowed here. - Changes to the 
expressioninput element: - Added new 
testmodeattribute that controls how the user expression is compared with the solution expression. - ⚠️ Removed the 
verbatimattribute. This feature can now be achieved by setting thetestmodeattribute toverbatim. - Changes to the 
vectorinput element: - ⚠️ Removed unnecessary attributes 
minsizehintsandmaxsizehints. - Added default value 
autotodefaultsizeattribute. - Changes to the 
matrixinput element: - ⚠️ Removed unnecessary attributes 
minrowshints,maxrowshints,mincolumnshintsandmaxcolumnshints. - ⚠️ Change the meaning of the default value 
autoof the attributesdefaultrowsanddefaultcolumns: This now means that the respective sizes will be as in the first matrix written as solution in the input value element. - ⚠️ Replaced the 
fixedattribute of thereactionelement by two new attributesfixedon the elementsproductsandeducts. These can now be specified separately. - ⚠️ Removed support for 
expressionelements as children ofquantityand removed accidentalsignificantattribute on this element which has now been moved to other elements in the last version. - Added a new 
labelelement 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 
toggleto thebooleangroupelement which turns boolean input fields into toggleable regions. - ⚠️ Changes to node types in the attributes of 
expressionelement: Renamedfacultytofactorialand added more functions such assin,cosandlog. - ⚠️ Changed the default value of the 
revealattribute from0to1. - Added a 
revealattribute to thebooleangroupelement. The user can now link solution hints tobooleangroupelements. - Added optional 
checkattribut to the input elementsinput,inputblockandbooleangroup. By settings this attribute tofalseone can prevent the player from checking the correctness of the inputs. 
Audio
- Added new 
audioinline element for playing audio files in the course. 
Custom extensions
- Added new 
objectblockblock 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 
rangeelement: Renamed the valuecontinuousof thestepattribute tononeto have fewer special attribute values. - Added new 
parametergroupelement that allows to enforce constraints, such as numbers being pairwise distinct, between random parameters. - ⚠️ Renamed 
calculateelement tocalc. - Added new 
simplifyandnumberformatattributes to thecalcelement. - The 
calcelement now automatically outputs its result as LaTeX code when it appears inside anmelement. 
Table formatting
- ⚠️ Moved 
maxheightattribute fromrowtotableelement. - Added optional 
sortableattribute to thetableelement. When this attribute is enabled, the user can sort the table by a column of his or her choice. - Added optional 
sortedbyattribute to thecolspecelement. With this attribute, a course author can specify a default column by which the table should be sorted. - Added 
baselineas a valid value of thevalignattribute. 
Other formatting changes
- Added new optional 
numberedattribute to themandfigureblockelements for controling whether or not these elements should be numbered. - ⚠️ Removed the attribute values 
flexstart,flexend,baselineandnormalin flex attributes as they are either outdated or too special for our purposes. - Added 
minwidthandmaxwidthattributes to theflexitemelement. 
Flipcards
- Added new view 
flipcardviewthat allows the user to flip between two text boxes. 
Theorems and proofs
- Added new optional 
ofattribute toproofboxto enable course authors to link proofs to theorems. - Added predefined values for the 
subtypeattribute in thetheoremboxelement. This will allow to mark theorems as lemmas, corollaries or propositions uniformly among different courses. 
Settings
- Added new 
navsettingselement for specifying course-wide default settings of navigation items and navigation lists. - Made the 
settingselement incourseelement optional. - ️⚠️ Replaced the optional 
defaultvariantchild element of the course settings element by an attribute with the same name. - Added a new optional 
settingselement in thevariantelement. 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 
containerssubelement of thesettingselement. There are also some more attributes on the boxes themselves. 
Buttons
- Added a new inline element 
buttonthat works similar to arefelement, but visually appears as a button. 
Bug fixes and small improvements
- Added missing unit 
exto the regex pattern ofLengthPercentagevalues. - ⚠️ Removed unused attributes 
maxusage,maxusageandshufflefrommatchingelement. One should use the corresponding attributes on thedropitemsanddragitemselements added in the last version instead. - Fixed type of 
prefixesattribute in theunitelement. - Navigation items are now allowed to contain a 
titleelement instead of areforlinkelement. 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 
navlistas a possible root element to simplify XInclude usage. - Added 
xml:idattribute on root elements to simplify XInclude usage. - Added the option to add metadata to 
exerciseelements andexternmediaelements. - Added new optional 
showlearnpathinfoattribute to thenavitemelement. - Documented a new 
\mdLaTeX macro that can be used in themelement. - Added new optional attribute 
modeto solutionhint that changes the way the individual steps of the solution are displayed. - Added predefined subtype 
learningobjectiveto theinfoboxelement. 
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.