Bug 158310 - When exporting ODF to MML the infinity char (∞) is incorrectly exported as the Infinity html entity ∞ which is not valid XML
Summary: When exporting ODF to MML the infinity char (∞) is incorrectly exported as th...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Formula Editor (show other bugs)
Version:
(earliest affected)
7.2.0.0 alpha1+
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: bibisectNotNeeded, regression
Depends on:
Blocks:
 
Reported: 2023-11-22 07:15 UTC by sam.monsarrat
Modified: 2023-11-22 09:23 UTC (History)
0 users

See Also:
Crash report or crash signature:


Attachments
ODF file containing a ∞ char (4.81 KB, application/vnd.oasis.opendocument.formula)
2023-11-22 07:15 UTC, sam.monsarrat
Details

Note You need to log in before you can comment on or make changes to this bug.
Description sam.monsarrat 2023-11-22 07:15:09 UTC
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">&infin;</mi>

The produced file is not valid XML and will not load in a browser.
Comment 1 Mike Kaganski 2023-11-22 08:22:34 UTC
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
Comment 2 Mike Kaganski 2023-11-22 08:40:43 UTC
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.
Comment 3 Mike Kaganski 2023-11-22 08:54:04 UTC
Regression after https://gerrit.libreoffice.org/c/core/+/108354.
Comment 4 sam.monsarrat 2023-11-22 09:23:40 UTC
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