markup-validator icon indicating copy to clipboard operation
markup-validator copied to clipboard

warning: failed to load external entity "http://www.w3.org/TR/MathML2/dtd/isonum.ent"

Open malaterre opened this issue 3 years ago • 8 comments

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/>

malaterre avatar Jan 26 '22 10:01 malaterre

@davidcarlisle I'd would really appreciate your help here. Thanks much.

malaterre avatar Jan 26 '22 11:01 malaterre

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

davidcarlisle avatar Jan 26 '22 11:01 davidcarlisle

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.

vinc17fr avatar Jan 26 '22 13:01 vinc17fr

@scop Could you please comment on the above post from @vinc17fr. I fail to understand how this catalog.xml is being "auto" generated. Thanks

malaterre avatar Feb 07 '22 09:02 malaterre

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.

scop avatar Feb 07 '22 16:02 scop

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 avatar Mar 16 '22 05:03 tillea

@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.

davidcarlisle avatar Mar 16 '22 08:03 davidcarlisle

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.

vinc17fr avatar Apr 01 '22 22:04 vinc17fr