I have been working with some of the media aggregator people out there who suggested that maybe Drupal publishes an incorrect RSS form for many aggregators in the world. Specifically, in this case, I cannot get the prefab feeds from Drupal to conform to the FireANT format.

FireANT:
http://getfireant.com/

The Issue:
http://help.antisnottv.net/index.php/How_to_make_Drupal_RSS_feeds_work_i...

There might be potential for solving this before the next version gets released? Does this look like a reasonable fix?

Sean

Comments

morbus iff’s picture

These folks don't know what they're talking about. The DOCTYPE has nothing to do with RSS - it's an XML capability (remember, RSS is XML and, as such, an RSS reader should also be an XML reader that supports the XML format). The definitive source on RSS validation is feedvalidator.org, and Drupal feeds validate just fine there (ignoring, of course, incorrect user content such as manually-entered relative URLs).

The purpose of this particular DOCTYPE flag is to allow support for HTML entities that are not normally defined in XML, such as ", © and so on and so forth. You can see similar definitions (and thus, an admission that they're a-ok) in well-defined RSS specs, such as RSS 1.0. (Yes, Drupal spits out RSS 2.0, but the principle is the same; again, this is an XML feature, and really has nothing to do with RSS, per se).

So, in short, FireANT is wrong.

http://www.disobey.com/
http://www.gamegrene.com/

sepeck’s picture

Perhaps someone who knows can edit their wiki page with some links to RSS standards?

-sp
---------
Test site, always start with a test site.
Drupal Best Practices Guide -|- Black Mountain

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide

morbus iff’s picture

seaneffel’s picture

However, that note they made on their wiki did 100% solve the problem I had with submitting the drupal generated RSS 2.0 feed to FireANT, iTunes, iPodderX, etc. They have something going for them and there must be some truth in their comment there.

See for yourself: http://www.cctvcambridge.org/videofeed

Sean

morbus iff’s picture

If that's true, I submit there are a lot of broken RSS clients out there who aren't following XML standards (I should know - I wrote one of the first back in 2001 and it did all sorts of crazy retarded things). Which, yes, is deliciously and typically passing the blame, but I'm not sure which other documents or validators you'd like me to show you before convincing you that it's a perfectly valid line to have an XML format, of which RSS is one.

http://www.disobey.com/
http://www.gamegrene.com/

morbus iff’s picture

In fact, that appears to be the case: since additional doctype declarations are an optional feature in XML, a large number of RSS readers have opt'd not to support them (even though the RSS 1.0 spec, which I'm sure all of them have read, right? Right?! gives a clear as day example, and even recommendation, to include entity declaration) . A refusal of the feed, however, would seem to occur if the reader is actually attempting to validate the RSS data they download. Do you happen to know if FireAnt attempts to validate (not just parse, but validate) the XML they receive?

http://www.disobey.com/
http://www.gamegrene.com/

morbus iff’s picture

I still have some testing to do, but it appears that we can remove this item for core - since & is automatically encoded into & in the XML (test by adding © into one of your items), that satisifies the requirement for handling of HTML entities.

http://www.disobey.com/
http://www.gamegrene.com/

seaneffel’s picture

Mostly what you're saying is greek to me, and all I can say is that with this DOCTYPE line included in the node.module the FireANT application cannot parse the feed and gives me an error. Removing the that line makes it work.

Let me also point out that this is an RSS feed constructed by another module that we haven't mentioned called video.module. A few developers on that project just recently built in properly formed RSS just for submission to media RSS.

http://drupal.org/node/25230

Maybe something they have done in that module supercedes the change in the node.module. You would know better then me, I am not an expert.

Sean
http://www.cctvcambridge.org

morbus iff’s picture

I've included a patch for this here. You'll want to watch that Issue to see if the change makes it into 4.7.

http://www.disobey.com/
http://www.gamegrene.com/

morbus iff’s picture

I know nothing about video.module, but looking at their latest code, my patch would correct the issue for them too. I actually don't see that they've worked around the DOCTYPE specifically - just that they added support for the [enclosure] tag. Don't hesistate to point any of your contacts at video.module to this topic as well as the Issue.

http://www.disobey.com/
http://www.gamegrene.com/

sepeck’s picture

Evidently it made it into 4.7. and Dries mentioned some other modules that may need attention :).

Mostly what you're saying is greek to me, and all I can say is that with this DOCTYPE line included in the node.module the FireANT application cannot parse the feed and gives me an error. Removing the that line makes it work.

To clarify, Morbus indicates what Drupal does is per standard. The FireAnt application chose not to implement this optional capability and also they have no error handling for Standards Compliant RSS feeds using this capability. In short, everyone is playing by the rules, but the client lacks a capability it could have and has no method to avoid isssue's when a feed offers additional capabilities. That they're saying it's a Drupal issue is incorrect. :) And their client is not broken, just doesn't support an optional feature of the standards.

Ahhh, standards, what fun.

-sp
---------
Test site, always start with a test site.
Drupal Best Practices Guide -|- Black Mountain

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide

dave_b’s picture

FYI ... this was also an issue with IE7 beta 2, which reports "Internet Explorer does not support feeds with DTDs" when trying to load a Drupal feed. This patch resolves the issue.

morbus iff’s picture

seaneffel’s picture

Is this of value? Could this change be tested and included in the standard install of Drupal as well?

http://drupal.org/node/41413

Sean
Cambridge Community Television
http://www.cctvcambridge.org

boris mann’s picture

Short version: RSS has no notion of order whatsoever, so stickies make no sense.

Microsoft has proposed an extension to RSS which *does* have ordered lists, but that is a separate standard, which again, will have to be supported by client applications: http://msdn.microsoft.com/windowsvista/building/rss/simplefeedextensions/