September 28, 2002
RSS, XML, and Namespaces - Oh My!
Dave writes that the use of namespaces is fundamentally flawed because the hasty introduction of namespaces into RSS 2.0 generated problems with several aggregators:
If this is true, we can't design using namespaces until:
1. All the parsers are fixed, or
2. Users/content providers expect and accept this kind of breakage (I don't want to be the one delivering that bit of bad news, got burned not only by the users, but by developers too, people generally don't know about this problem, or if they do know are not being responsible with the info).
Anyway it looks to me like there's a big problem in the strategy of formats that intend to organize around namespaces.
Sam Ruby writes:
I thererefore must change my opinon. Where I previously thought that RSS 2.0 suffered from a simple omission, now I must consider RSS 2.0 fundamentally busted.
My oh my oh my oh my.
Dave, saying that the problem you experienced with the hasty rollout of RSS 2.0 is because namespace implementation in XML is flawed, is about the same as me saying that MySQL and PHP aren't working correctly on my system because the theories behind relational databases and web application script engines are fundamentally flawed.
Damn PHP and MySql for mucking up my system, anyway. Bad boys.
Update: I think Dave's essay was deliberate bait. I think he was having fun with us when he wrote it: pulling our legs, yanking our chains, getting a rise out of our choleric reactions. Why, if he really believes in what he wrote, I'll eat Jonathon's hat.
Update Two: Lovely posting on this by I. M. Orchard. More fodder over at Ben's. Now, 'scuse me, I have to find work to do.
Posted by Bb at September 28, 2002 12:13 PM
Trackback Count
(0)
Is the problem with parsers that handle XML namespaces correctly or parsers that don't have a concept of what namespaces are?
If the former then there is something wrong with the RSS2 specs or the UserLand implementation.
If the latter then why is it an issue if RSS2 is set as the default namespac? It would be almost similar to RSS 0.9x just the rss tag would have one extra attribute and there might be some extra tags in the document.
Is this even a wide spread problem? The aggregators that I use have no problems with RSS2. Are there any widely used systems that are breaking or is it systems created by one person for personal use?
Shelley, of course I meant everything I said this morning. I never write anything that I believe is incorrect. One of the lessons I've learned in 47 years is when someone accuses you of a deceit, there's a pretty good chance the accuser practices that form of deceit, and a reasonable chance that they're doing it as they point the finger.
Anyway when the dust settles on this, we'll have a widely deployed spec that uses namespaces. I will feel proud of that accomplishment Shelley. I don't expect any thanks from you -- you'll probably claim to have done all the heavy-lifting. It's happened before.
I think I'm starting to realize Dave's sinister plan..
He is plotting to say too many stupid fucking things so that we simply can't keep up with the bullshit, and, ignore him instead of counting his random acts of idiocy.
Hey yes please more of the tech stuff! It seems to bring out the best in everyone.
Tomas, I rather wish you wouldn't do the nasty. Sorry, Dave, but though I was joking a bit with my updated comment, I really am boggled at your essay. Takes a lot for my jaw to drop with a resounding "Say what?!", but that one did.
You sure have a weird way of saying that Shelley. Why don't you roll up your sleeves and do some work instead of taking cheap shots from the sidelines.
Here's the deal:
Previously, the RSS 0.9x branch had no namespace declarations, which is equivalent to xmlns="".
When the namespace declaration in ScriptingNews' feed was added, it now says xmlns="something" - this is a *change*, as all the "core" element now live in another namespace.
Now, the use of other namespaces, such as Dublin Core with xmlns:dc="http://purl.org/dc/elements/1.1/", does not change the default namespace declaration for the "core" elements.
Thus, to preserve backwards compatibility and allow for other elements, the spec should simply state that the default (i.e. empty) namespace still applies to the "core" elements, whether declared or not.
However, since the major version number is upgraded, it is not unreasonable to introduce a specific namespace for the core elements, hence the confusion.
BTW, the problem has been only with correct XML implementations - any feed-reader that hasn't had problems with the namespace change is actually broken!
While walking along the cliff path, Carla found the body of a man who was born without toes, stuffed with Cheerios and wrapped thickly in pink Saran Wrap. But, having neither milk nor strawberries, she walked on. Some time later, she came upon a badger who spoke to her in a long-forgotten language. But, not having a universal translation device, she walked on. Then she came upon the yolks of three eggs, which had been left in an enigmatic arrangement some days previous by a seclusive group that manufactured breakfast cereals.
What work, Dave? Work on my books? On my weblogs? The kind of work that I need to find to pay the bills? What work, Dave? No, really, I want to know.
Plurp, well you stopped me dead there for a second and that's for sure. And is whatever it is for sale on the open market?
Hey Shelley, same problem here -- no one even thanks me for all the work I do for RSS, much less pays me. One of these days you're going to grow a heart and start being a mensch. I'm so sick of your childish pranks.
As Shannon would say, Dave: smoochies.
Dave, I have to side with Shelley on this one. While admittedly a newbie in this RSS/RDF/RSS-RDF/XRSS/jeezmancantwejustworktogether crap...
YOU rammed this RSS 2.0 through. I seem to recall some comments on Scripting News to the point of saying you will not slow down for anything or anyone. (Of course, you also backed off but appearantly not enough on that.)
Shelley meanwhile explained how things could remain simple enough yet move forward. She DID "roll up her sleeves" and was pretty much shut down by YOU.
Being a long time reader here - and coming from a much different political camp - I can tell you that she may have been rightfully smiling and even chuckling while posting this... YOU definitely stepped into it this time... but you know, if she wanted to really slam you you'd know it. She was genly chiding you. Nothing more.
Shelley, as it is your blog I apologize for getting "nasty".
Let's see, what constructive yet not nasty can be said when Dave Winer has declared XML to be broken? Hmm.. Nah, can't think of anything.
The problem isn't that some parsers don't understand namespaces, the problem is that some do!
Take an XSLT based parser. Since RSS0.91 has a namespace of "" and RSS2.0 has a namespace of "http://backend.userland.com/rss2" then the XSLT will consider the element in one to be completely different to the element in the other. That's the point! It's also why this version should be called 2.0 and not 0.94.
The parsers that don't understand namespaces won't realise you are using then and continue to work. The parsers that do will need to be upgraded either directly (by changing the code to accept both elements from both "http://backend.userland.com/rss2" and the null namespace) or indirectly (by putting in a RSS2.0 -> RSS0.9x filter)