markup-validator
markup-validator copied to clipboard
warning: failed to load external entity "http://www.w3.org/TR/MathML2/dtd/isonum.ent"
Dear all,
I am trying to understand the following issue in Debian:
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1003933
If I understand correctly w3-dtd-mathml
package did install a catalog such that:
<rewriteSystem systemIdStartString="http://www.w3.org/TR/MathML2/dtd/" rewritePrefix="./"/>
This is not the case for the catalog.xml file at:
- https://github.com/w3c/markup-validator/blob/master/htdocs/sgml-lib/catalog.xml
Could someone please confirm what is the status of http://www.w3.org/TR/MathML2
namespace ? Is it supposed to be working ?
For simplicity, I'm copy/pasting the original code here:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE test [
<!ENTITY % ent-isonum
PUBLIC "-//W3C//ENTITIES Numeric and Special Graphic for MathML 2.0//EN"
"http://www.w3.org/TR/MathML2/dtd/isonum.ent">
%ent-isonum;
<!ENTITY % ent-mmlalias
PUBLIC "-//W3C//ENTITIES Aliases for MathML 2.0//EN"
"http://www.w3.org/TR/MathML2/dtd/mmlalias.ent">
%ent-mmlalias;
]>
<test/>
@davidcarlisle I'd would really appreciate your help here. Thanks much.
I don't have access to TR space but... W3C blocked non browser access to the DTD for many years to avoid load on its servers so you always needed a catalogue to point to a local copy. The file under MathML2 seems to have gone altogether now which I wasn't aware of.
The entity file is maintained as part of the xml entity specification at
https://www.w3.org/2003/entities/2007/isonum.ent
or in github source linked from
https://w3c.github.io/xml-entities/isonum.html
https://w3c.github.io/xml-entities/2007/isonum.ent
I hope that helps
Concerning isonum.ent
, the catalog.xml
file for sgml-lib contains:
<public publicId="-//W3C//ENTITIES Numeric and Special Graphic//EN" uri="REC-MathML3-20101021/isonum.ent" />
<system systemId="http://www.w3.org/Math/DTD/mathml3/isonum.ent" uri="REC-MathML3-20101021/isonum.ent" />
and
<public publicId="-//W3C//ENTITIES Numeric and Special Graphic//EN//XML" uri="REC-xml-entity-names-20100401/isonum.ent" />
<system systemId="http://www.w3.org/2003/entities/2007/isonum.ent" uri="REC-xml-entity-names-20100401/isonum.ent" />
but no such lines for MathML 2.0, which is rather surprising.
@scop Could you please comment on the above post from @vinc17fr. I fail to understand how this catalog.xml
is being "auto" generated. Thanks
Wow, I think it's been about a decade since I've done anything to the markup validator :)
Anyway it's being "auto" generated by a tool that one needs to run either directly, or through the file-specific or default (all
) Makefile target.
I guess "really auto" updating it could be implemented in pre-commit or CI if desired.
Any progress on solving this issue? I need to admit I fail to understand it but a couple of Debian packages are depending from some solution and it would be really great if it could be solved in the near future. Thanks a lot, Andreas.
@tillea tha seems odd, W3C needs to fix its own catalog file so a validator hosted there works but in the debian system a reference to http://www.w3.org/TR/MathML2/dtd/isonum.ent will resolve to whatever the default catalog used by xmllint references for that, which can be anywhere on the local system where it installs the entity files. So it should be fixable on the debian side with no change required at W3C.
Even when the isonum.ent was under the MathML2 rec, the W3C blocked non browser http access to it so you still needed a catalog to reference some alternative place for robots and validators etc.
That said, the simplest way to restore the old URL would be for W3C to add a http redirect from
http://www.w3.org/TR/MathML2/dtd
to
http://www.w3.org/Math/DTD/mathml2
so that
http://www.w3.org/TR/MathML2/dtd/isonum.ent
in the original report resolves to
http://www.w3.org/Math/DTD/mathml2/isoamsb.ent
which works still.
pinging @bert-github the W3C contact for the Math Working group to ask if that can be added.
I don't see how a http redirect would solve the issue since there should be no network connection (for instance, I think I may need to do hundreds of references to isonum.ent
in a row). A network connection would be very inefficient and impossible offline.