Known restrictions and bugs

There are following common restrictions and known bugs:

XML loader restrictions

The value of xml:space is ignored: whitespaces are normalized (all consecutive whitespaces are replaced by a single space) in text nodes as if the value of the attribute was default. CDATASection nodes and attributes are not whitespace-normalized.

No attribute can have same namespace as its owner element.

XInclude is not supported - all includes are fully resolved when loading the document.

Schema restrictions

There must not be two rules, such that:

  • the intersection of their nameclass is non-empty, and
  • the tree, generated by first rule is a subtree of the tree generated by second rule
In other words, it means:
  • For each element in the XML file, EuroMath must be able to guess the correct rule from the element placement and contents, and
  • If we insert some content into the element then the rule generating this element must not change.
No element nor attribute schema rule can accept infinite number of localnames. This is because of the autocompletion feature: when inserting new elements/attributes, EuroMath2 must offer list of allowable names. If there was infinite number of local QNames, this list will have unlimited items and it couldn't be displayed. There can't be no rule that can generate element OR it can generate attribute. There can't even be rule that can generate attribute OR another attribute. So, presence of attribute must not allow/disallow presence of other attributes and/or elements. Rule <concur> in TREX and similar rules in another schema languages are not supported and probably never will be.

MSV doesn't support default values, so EuroMath doesn't support them either. Please see this page for explanation, why default values shouldn't be defined by external schema. Internal DTD definition is currently unsupported.