I already said OPML is crap, right? I had to hack through another reminder today.

So today I tried to import OPML (yeah, that very OPML) into Findory (see last entry). The OPML is based on what I originally exported from Lektora and has been through all my feed experiments. A sample entry:

<outline url="http://www.parand.com/say/index.php/feed/" text="Parand Tony Darugar" type="link"/>

What does Findory tell me? 97 feeds rejected for "invalid source". Great. Now I actually have to get my hands dirty in OPML again. I check the spec. Of course there's no useful information there. I eventually found this Wiki of OPML conventions. I saw the type='rss' convention, but that didn't seem to make a difference. I also tried xmlUrl rather than url, like so:

<outline xmlUrl="http://www.parand.com/say/index.php/feed/" text="Parand Tony Darugar" type="link"/>

This time the Findory import works.

But not only do several of the feed readers I use have url rather than xmlUrl, but the XBEL to URL XSLT I've found assumes that name as well. The conventions page also mentions title versus text as a way to provide formatting in some vague way, but I've seen OPML feeds use only title and nary a text to be seen anywhere. Besides, what's wrong with the XML way of allowing formatting: elements rather than attributes. It's enough to boil the brain.

Speaking of XBEL, that's actually how I'm managing my feeds now, as I'll discuss further in the next entry. Now that Web feeds have become important to me I'll be using a sane format to manage them, thank you very much. I'll do the XSLT thing to export OPML for all the different tools that insist on tag soup. That is, of course, if I can figure out what precise shade of OPML each tool insists on. Today's adventure with feed URL attributes makes me wonder whether there is any escaping the chaos.

[Uche Ogbuji]

via Copia
5 responses
we probably need two things- some competition for the spec, to firm it up, like RSS evolution, but also possibly an OPML clearing house a la feedburner. that would solve some of the issues
Liferea takes the brute force approach to sticking the text, I mean, the description, I mean, the title into the blogroll – it puts a copy of it into all three of these attributes.

There’s also a htmlUrl for the weblog which the feed belongs to.

Another point of chaos: what value do things put in type attribute when it’s an Atom feed? Liferea uses “pie” in that case. That seems to work fine with the tools I tried the files on – probably because they ignore the type attribute anyway and just look for xmlUrl. Would it fail if you use “rss” as the type value? Probably not.

It’s a marvel that anything to do with this format works at all.
The OPML spec needs so much work that it might as well just die in favor of something more sane, such as XBEL or XOXO.  Sure I know that OPML has plenty of mind-share right now, but I will do what little I can to encourage people not to use it.  It is fundamentally broken.
Hi, Uche.  Sorry about the hassle with that.  We tried to make our OPML import as tolerant as we could.

Unfortunately, you're right that there's essentially no OPML spec.  The various tools that export OPML all appear to do their own thing for field labels.

However, they do tend to converge on the same labels.  Most OPML uses the label "url" for the URL of the source (the HTML page for the weblog), not the URL for the feed (the XML, usually RSS, with the weblog feed).

This does create problems for the exports that do something different. It sure would be nice to have a more rigorous standard.

Again, sorry for the hassle.

I understand.  OPML is the most widely known format for the purpose, so everyone has to support it, but since there is no rigorous spec, there is bound to be divergence.  I certainly was venting more at OPML than Findory.