It’s great to see that Dave Winer is working on an OPML Validator – this is a big help to aggregator developers who wish to ensure OPML import/export compatibility with each other, so my thanks to Dave for investing his time in this.
I have to confess that validating FeedDemon’s OPML export has been an eye-opener. Although FeedDemon’s OPML can be imported by every aggregator I’ve tested with, it still contained a few problems (all of which will be corrected in the next build).
I also tested FeedDemon’s OPML import with the OPML exported by a wide array of other aggregators, and here are the most common problems I’ve found (some of which FeedDemon is also guilty of):
- Using the
title
rather thantext
attribute for folder<outline>
nodes (see first observation below) - Failing to include a
<head>
section - Unescaped ampersands (
&
instead of&
) in thetext
ortitle
attributes - Failing to include
type="rss"
on subscription list<outline>
nodes - Using
xmlurl
(lowercase ‘u’) instead ofxmlUrl
(uppercase ‘U’) - Likewise for
htmlUrl
Observations:
- Several aggregators expect
title
rather thantext
as the identifying attribute on<outline>
nodes. For this reason, aggregators may wish to include both of these attributes in their OPML export for compatibility, even though doing so would cause the OPML to fail validation. - The OPML Validator accepts XML that contains unescaped ampersands (test case).
- The OPML Validator accepts
<outline>
nodes that come after a closed<body/>
element (test case). - The OPML Validator treats unknown attributes as an error, but I believe they should be permitted if they’re correctly namespaced. It would be nice to see namespaces “officially” supported, since an aggregator may wish to include per-feed information in its OPML export which isn’t part of the spec but may be of use to other aggregators (ex: number of times the feed has been visited, the update frequency, unique ID in a service such as NewsGator or Bloglines, name and version of the aggregator which exported the OPML, etc.)
Update: The OPML validation guidelines have been updated to accommodate the observation about duplicating text/title.