Created attachment 190953 [details] ODF file containing a ∞ char MathML is meant to be valid XML. In certain conditions LibreOffice Math exports the infinity char (∞) as the Infinity html entity ∞ which is not valid XML rendering the prodiced MML file useless. Consider the attached formula.odf file. When LibreOffice exports it to MML : * line 9 of content.xml : <mi mathvariant="normal">∞</mi> * is exported as <mi mathvariant="normal">∞</mi> The produced file is not valid XML and will not load in a browser.
This is not a bug. MathML is not only a "valid XML"; it also references the MathML specification. Namely: MathML spec. chapter 7 section 7.3 "Entity Declarations" [1] tells: > The MathML DTD references the combined HTML MathML entity set defined in [Entities] The "combined HTML MathML entity set" [2] references, among others, "xhtml1-symbol" set. The latter is defined in "Entities" [3] as [4]. And there, the 'infin' entity is defined. It is incorrect to expect parsing of MathML without the respective DTD. [1] https://www.w3.org/TR/MathML3/chapter7.html#chars.entities [2] http://www.w3.org/2003/entities/2007/htmlmathml.ent [3] https://www.w3.org/TR/xml-entity-names/ [4] https://www.w3.org/TR/xml-entity-names/xhtml1-symbol.html
OTOH: > every fragment using entity references must use a DOCTYPE declaration which > specifies the MathML DTD, or a DTD that at least declares any entity reference > used in the MathML instance NEW.
Regression after https://gerrit.libreoffice.org/c/core/+/108354.
Why then does the internal MathML in content.xml not use them ? Why produce an MML file that no browser can parse ? The produced MML cannot be displayed by mozilla or chromium browsers. This problem is not present on LibreOffice 6.4.7.2