Suggestion: Freeze and standardize public ids in Mozilla's DTD catalog

Henri Sivonen <[email protected]> Sat, 22 Mar 2008 12:28:30 +0200
Newsgroups gmane.comp.mozilla.devel.xml
Message-ID <hsivonen-C05DD6.12282922032008__43116.0998567522$1206181861$gmane$org@news.mozilla.giganews.com>
Considering that

 * The XML spec doesn't guarantee that an external DTD is processed, 
which makes DTDs inherently unreliable in a system where the author 
doesn't control the clients (like on the Web).

 * When authors do use character entities, authors need the entities to 
work reliably--certainly not causing the YSoD.

 * Legacy pages assume the public ids in Gecko's current DTD catalog to 
map to something that makes character entities work. This has already 
caused grief for Opera and Safari.

 * Making browsers fetch DTDs is not feasible, so the set of DTDs that 
"work" cannot really be dynamic.

...I think it follows that it is bad if the availability of character 
entities with a given DTD public id is not 100% predictable across 
browsers and browsers versions.

The only way for the mapping to be predictable across browsers and 
browser versions is freezing the mappings and standardizing them as a 
grandfathered legacy, to rely on straight UTF-8 for anything that the 
frozen mappings don't cover and to migrate to DTDless XML 1.0 over time 
and perhaps later to XML5 if that ever goes somewhere.

I, therefore, suggest freezing the set of magic public ids Gecko knows 
about at Firefox 3, documenting Gecko's magic pseudo-DTD catalog and 
offering the documentation to the W3C HTML WG and WHATWG for suggested 
inclusion as part of UA requirements for processing XHTML5.

Opinions?

Background:
https://bugzilla.mozilla.org/show_bug.cgi?id=289938#c16
https://bugzilla.mozilla.org/show_bug.cgi?id=289938#c20
http://www.w3.org/blog/systeam/2008/02/08/w3c_s_excessive_dtd_traffic
http://hsivonen.iki.fi/no-dtd/

-- 
Henri Sivonen
[email protected]
http://hsivonen.iki.fi/