Netscape Blog

To DTD or not to DTD

This post originally appeared on the Netscape Blog.

Over the weekend, the tech community noticed that a file crucial to the operation of certain RSS readers was MIA. This file, the DTD for RSS 0.91, had been hosted at my.netscape.com, and its purpose was essentially to explain the structure of RSS 0.91 documents and to provide definitions for a set of character entities that could be used in such documents.

Theoretically, RSS readers load this file when parsing an RSS 0.91 feed. However, In practice, most readers (including those built into Firefox and Internet Explorer) either just ignore the file or load their own cached copy.

my.netscape.com is undergoing a redesign, and when we announced the redesign about 10 days ago, the DNS entry for my.netscape.com was changed to point to the new server where My Netscape will be living. This had the effect of making anything under the old my.netscape.com unavailable, since the only thing public on the new server is a splash page. So, ipso facto, the DTD was no longer available.

The unavailability of this file had the effect of causing certain feed readers – Microsoft’s Live.com RSS gadget, for one – to refuse to display RSS 0.91 feeds. This is what we call in the technical community “not good.” So, we’ve restored the file (along with the DTD for RSS 0.9) for the time being, but this experience has raised a few important questions: should feed readers be relying on the availability of a static document on a third-party Web server (and thus a connection to the Internet)? Is it truly necessary to request this document every time an RSS 0.91 feed is being parsed? (The RSS 0.91 DTD is requested over four million times per day – that’s a lot of wasted bandwidth for a file that won’t ever change.) In our opinion, the answer to both of these questions is no.

So until July 1, 2007, the DTDs for RSS 0.9 and 0.91 will be available via my.netscape.com. If you are a software developer, use this time to ensure that your RSS software is capable of displaying RSS feeds even if the DTD is unavailable, or have a backup copy cached locally for your parser to use in the absence of the specified DTD. If you are a content provider, either update your feeds to point to another copy of the DTD, or accept the fact that your feed may not be available through feed readers that don’t have a backup plan in the case of a missing DTD.

Standard

Leave a Reply

Your email address will not be published.