UserPreferences

OpmlSpec


What is OPML?

XML format from DaveWiner, former CEO of Userland

OPML stands for "Outline Processor Markup Language" and is used in a number of applications, foremost of which are ManilaApp and RadioUserland.

Some links

How is it used?

In ManilaApp, OPML can be used to represent slides and outlines that can be rendered into HTML. For a while, I was editing my Manila sites via RadioUserland, creating my entries as outlines that then get rendered into HTML. I stopped doing that because I sometimes wanted to edit my entries through a browser -- and editing XML through a browser is not usually a fun thing to do.

OPML is getting more interesting because it's being used outside of Userland to present blog subscription lists and BlogRolls. RadioUserland generates a subscription list

List of [WWW]Tools that support OPML -- the list doesn't list SharpReader at this point.

Crosswalk work with OPML

[WWW]Uchida scrapbook in OPML, [WWW]rendered in my blog rendered as a "Manila directory"

Problems with OPML

I want to use OPML because it is something understood by the a number of tools including [WWW]BlogRolling.com, etc. However, the format has problems. First of all, it's not tightly defined enough to keep people from creating mutually incompatible data they all call OPML but might not be OPML.

MarkPilgrim's [WWW]Investigating OPML provides a good critique of OPML:

Part of the problem is that there doesn't seem to be an official DTD. Is [WWW]OPML DTD an official one? How about [WWW]this one (with its [WWW]accompanying docs)?

There probably isn't one because if my memory serves me correctly, DaveWiner doesn't believe in DTDs for his XML specifications.

Even if there is a DTD, another problem is that OPML is supposed to allow for arbitrary attribute names in the outline element. As [WWW]Megnut shows in [WWW]No Extends! , this causes a lot of possible/actual confusion among developers wanting to use OPML.

I'm starting to see this problem. SharpReader inputs and outputs subscription lists as OPML. I exported mine and copied it to my wiki as RyRssSubscriptionList. However, when I try to render the OPML list with

{opmlBlogroll("http://raymondyee.net/wiki/RyRssSubscriptionList?action=raw",cssPrefix:"blogroll",recentlyUpdatedLinkPrefix:"",recentlyUpdatedLinkSuffix:"")}

I get the following Manila error:

[Macro error: Can't get the "version" attribute because the table doesn't an attribute with that name.]

Problem: [WWW]Manila's opmlBlogroll macro is expecting a version attribute in the opml element -- but SharpReader doesn't generate one. Who's fault is that? I guess SharpReader's since according to the OPML 1.0 spec, "<opml> is an XML element, with a single required attribute, version; a <head> element and a <body> element, both of which are required."

Another issue is that SharpReader uses a title attribute to list a blog entries -- which seems fine. But if I want to render my subscription list, using [WWW]OPML and XSLT and the W3XsltService to get [WWW]HTML with no text. If I transform the output from SharpReader to duplicate the text from the title attribute to the text attribute, then I can get the outline rendered. (Alternatively, I can edit the XSLT to get show the title attribute info.)

Furthermore, what is version 1.1 of OPML anyhow? As of 2003.10.07, that spec isn't on the Userland OPML site, as [WWW]noted by Rogers Cadenhead.

Another [WWW]good analysis of OPML and its problems on the AtomProject wiki

Useful OPML related resources

[WWW]OPML and XSLT by [WWW]Joshua Allen is an incredibly useful resource. (Actually, is Netcrucible gone? I'm using InternetArchive to pull up [WWW]old version of documentation on OPML XSLT and [WWW]archived version of XSLT

[WWW]SlideML to OPML XSLT

Archiving Joshua Allen's XSLT, etc

Today (2003-10-10 17:15:00), when I tried to reach [WWW]OPML and XSLT, the pages were gone. Maybe this is temporary, but I'm going to archive some key pages by using InternetArchive.

Alternatives

[WWW]OML: Outline Markup Language (OML)

Why have a specialized language anyways says [WWW]Simon Fell