Core RSS 1.0 is not backwardly compatible with the DTD-based 0.91 (although it is through a 0.91 namespace module). However, it is compatible with version 0.9 as it is based upon RDF and namepaces on which 0.9 was based. Developers can therefore update their RSS 0.91 feeds to 1.0 since most applications understand both 0.91 and 0.9. RSS 0.92+ is forwardly compatible with 0.91; all 0.91 files are valid 0.92 files. 0.92 is not backwardly compatible with 0.9.[From The Evolution of RSS via Sam Ruby]
This is just wrong. It might be humorous if I wasn't trying to write a news aggregator. XML was designed around avoiding problems like this.
To be honest the problems listed above only arise if you use a validating parser. All of these file are just XML and if you do not try to validate them against a specific DTD then you can process them pretty generically. That is, all of the files have a general structure of:
where the
<channel>
<title/>
<link/>
<description/>
<item>
<title/>
<link/>
<description/>
</item>
</channel>
item element may appear any number of times. Processing any of these file types just for the above information is easy as long as you are robust to handling missing elements. For example, the title and link elements in the channel element may or may not exist in a Radio news feed. They appear if you turn on titles for your posts in Radio. Similarly researchbuzz does not have a description element in their items. Oh yes, you also have to skip the extra elements if the different formats you aren't interested in.
Just because there is a way to work around the problem doesn't make it acceptable. To have this level of incompatiblity with differing versions of the same format is troubling. I think this type of thing is atypical, but it makes me wonder if problems like this could arise in other areas where XML is used.