GNOME Bugzilla – Bug 743161
xmllint should not download the DTD from the web
Last modified: 2015-01-19 16:39:19 UTC
Hello. I'm on Mageia 4 KDE. Before I installed the packages w3c-markup-validator and w3c-markup-validator-libs, using BlueFish tools → Outputbox → xmllint XML checker to check my XHTML files used to produce systematically a "failed to load external entity http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" error message. BlueFish should not try to download these public DTDs. Please see http://www.w3.org/blog/systeam/2008/02/08/w3c_s_excessive_dtd_traffic In other words, the W3C's DTDs should probably be included in Bluefish or in libxml2, and Bluefish call of libxml2 should use a local copy of the DTD. Thank you.
Hi. Bluefish doesn't download anything. Xmllint is trying to get a DTD by its public or system identifier. Often the online resources are used in XML documents to declare them, because local paths can differ between machines and the online resources are unique. This is useful and necessary. It won't be useful to bundle all DTDs, RNGs, entitity declarations etc. Consider that e.g. Docbook alone AFAIK has four major versions and between them also subversions, release candidates, beta version etc. Further it would make us responsible to keep track on all these files and possible bugs in them. For this usually every Linux distribution provides separate packages. E.g. on Debian Linux there is docbook, docbook-xml, docbook5-xml, w3c*dtd ... So bundling this stuff is a no-go. To reduze the traffic there is an XML catalog system, which rewrites the online location to the local path, where the DTD can be found. This catalog also is shipped with the package on (almost?) all Linux distributions. The solution to your issue is to either make use of this system or to customize the xmllint command in Bluefish and add the --nonet switch. In the latter case you'll loose the ability to check an XML document against a DTD if you don't have the DTDs, entity declarations etc. in a local path or if you have them, but don't use the catalog system. HTH