intertwingly

It’s just data

Relative References


I feel strongly that Atom processors need to be able to process relative references in a consistent manner.  But, for now, I’ve restored the use of absolute URIs in my Atom feed, and I will keep it that way for a minimum of 90 days.

Looking at Common Feed Errors, it is clear that there is a strong demand for relative references.  Between InvalidFullLink and ContainsRelRef, on average one person per hour, every hour, 24 hours a day, seven days a week, clicks on the extended help to see that the Feed Validator discourages — or declares outright invalid — RSS feeds which contain such references.

Outlawing relative references simply doesn’t work.  People continue to produce such feeds.

And various RSS aggregators cope with this reality.  Differently.  Non interoperably.

The alternative is to ensure that processors deal with relative references consistently.  That’s the approach Atom takes.

By default, all relative references in an Atom feed are defined to be relative to the document itself.  This can be overridden with Content Location and/or Location headers.  As well as by explicit xml:base attributes.  These rules are not materially different from the ones for HTML, albeit potentially more granular.

This is particularly important in scenarios where feeds are spliced.

Off list, I’ve gotten some email that leads me to be optimistic that the situation will improve.

At some point in the future, I’ll return to using relative URIs.  But not for at least 90 days.

Meanwhile, I’ll find other boundaries to push.