Skip to content

Changelog

Version 0.5.0 (in development)

XML Namespace

  • ⚠️ Changed the XML namespace from http://mint-kolleg.kit.edu/edML to https://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 element tests of the variant element (instead of the navigation) and can be referenced in the navigation using the to attribute of the ref element.
  • Added new feedback attribute to the test 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 the test 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 the clonecontainer 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 new feedback element in tests to react to the users input values.

Input fields

  • ⚠️ Renamed the items subelement of the order input value to orderitems in order to be consistent with the structure of the matching input value.
  • ⚠️ Changes the effect of the reveal attribute of the input element: This attribute now effects an associated solutionhint 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 and affinespace.
  • 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 the testmode attribute to verbatim.
  • Changes to the vector input element:
  • ⚠️ Removed unnecessary attributes minsizehints and maxsizehints.
  • Added default value auto to defaultsize attribute.
  • Changes to the matrix input element:
  • ⚠️ Removed unnecessary attributes minrowshints, maxrowshints, mincolumnshints and maxcolumnshints.
  • ⚠️ Change the meaning of the default value auto of the attributes defaultrows and defaultcolumns: 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 the reaction element by two new attributes fixed on the elements products and educts. These can now be specified separately.
  • ⚠️ Removed support for expression elements as children of quantity and removed accidental significant 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 the booleangroup element which turns boolean input fields into toggleable regions.
  • ⚠️ Changes to node types in the attributes of expression element: Renamed faculty to factorial and added more functions such as sin, cos and log.
  • ⚠️ Changed the default value of the reveal attribute from 0 to 1.
  • Added a reveal attribute to the booleangroup element. The user can now link solution hints to booleangroup elements.
  • Added optional check attribut to the input elements input, inputblock and booleangroup. By settings this attribute to false 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 value continuous of the step attribute to none 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 to calc.
  • Added new simplify and numberformat attributes to the calc element.
  • The calc element now automatically outputs its result as LaTeX code when it appears inside an m element.

Table formatting

  • ⚠️ Moved maxheight attribute from row to table element.
  • Added optional sortable attribute to the table 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 the colspec 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 the valign attribute.

Other formatting changes

  • Added new optional numbered attribute to the m and figureblock elements for controling whether or not these elements should be numbered.
  • ⚠️ Removed the attribute values flexstart, flexend, baseline and normal in flex attributes as they are either outdated or too special for our purposes.
  • Added minwidth and maxwidth attributes to the flexitem element.

Flipcards

  • Added new view flipcardview that allows the user to flip between two text boxes.

Theorems and proofs

  • Added new optional of attribute to proofbox to enable course authors to link proofs to theorems.
  • Added predefined values for the subtype attribute in the theorembox 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 in course 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 the variant 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 the settings element. There are also some more attributes on the boxes themselves.

Buttons

  • Added a new inline element button that works similar to a ref element, but visually appears as a button.

Bug fixes and small improvements

  • Added missing unit ex to the regex pattern of LengthPercentage values.
  • ⚠️ Removed unused attributes maxusage, maxusage and shuffle from matching element. One should use the corresponding attributes on the dropitems and dragitems elements added in the last version instead.
  • Fixed type of prefixes attribute in the unit element.
  • Navigation items are now allowed to contain a title element instead of a ref or link 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 and externmedia elements.
  • Added new optional showlearnpathinfo attribute to the navitem element.
  • Documented a new \md LaTeX macro that can be used in the m 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.