As I demonstrated with my blogroll, OPML has its uses. I went further and built John Gï¿½tze’s OPML Directory Browser, which is an OPML-driven directory browser for browsing loosely coupled OPML-files from my own GotzeLinked. The OPML-browser is based on Austin Marshall‘s PHP-OPML toolkit. Thanks to Austin for creating this nice tool.
I wanted to use a semi-large directory (GotzeLinked has more than 1000 links with descriptions) to demonstrate an architectural principle, loosely coupling, in practice. Rather than having one large file with all data, I use a meta-OPML-file (“father”) and a set of individual, thematic (category-based) OPML-files (“siblings”). I created a new (?) attribute called opmlurl, with which I in the father-file points to the OPML-files of each sibling.
In terms of interoperability, OPML sucks. It is not “real” XML – it’s more like HTML on steroids actually, using non-standard attributes to store important data, rendering it very difficult to work with in the modern XML-world. That, together with the fact that the OPML specification is closed (Dave Winer has the IPR on the spec), and non-specific about attributes, makes it virually impossible to make OPML-systems interoperable. Some use “url” to describe everything available on an URL, while others use “htmlurl”, “xmlurl”, or “opmlurl” (like I do) to distinguish between various formats.
the reason I decided to go forward with OML, is that as the number of applications using an outline XML format increase, with the current extension mechanism in place, it is going to be very difficult for these applications to interoperate. Not only is there nothing that specifies the names of the most common attributes, but the fact that there can be any number of varying attributes in the outline element, is in the opinion of many, a big problem.
Hence, OML is less attribute-oriented than OPML, and instead uses a number of well-defined outline-attributes, text, created, etc, but also differs form OPML in using two important data-bearing elements, data and item.
I’m tempted to shift to OML … on the other hand, I don’t really give OML much of a chance. I don’t know Grieselhuber’s real mission, but I would bet he’d be aiming at getting OPML to embrace the OML spec. That would IMO be the best solution. Please don’t repeat the RSS-history.