OPML Export is Invalid

DEVONthink’s OPML export is non-standard and incorrect. According to the OPML spec:

Yet, DT seems to have invented its own variation of OPML in which the title attribute is used for node titles and the text attribute is used for notes. If there’s just a title, without a note, DT omits the text attribute.

The result, when importing a DT OPML export into pretty much any other application, is that any node which doesn’t contain a note, comes in completely blank. Any node which contains a note, uses the note as the title. Why? Because in standard OPML, the text attribute represents the title. Depending on the type attribute, the text attribute may ALSO represent a note. Here’s an example:

Let’s say we have a structure containing a parent node with just a title and two child nodes, each containing both a title and a note. DT would represent it like this:


The CORRECT structure would be:

It would be great if you guys could correct this, so that DT OPML exports could actually be imported into other applications. I realize that SOME applications, like OmniOutliner will import this non-standard format, as it’s still valid XML. Since OO uses a spreadsheet presentation, it doesn’t care about the specifics; it just creates a column for every attribute. However, any mind-mapping application will be totally confused by this format and you’ll end up with a mess after importing.

DEVONthink tries to be compatible to both outliners and RSS readers (e.g. feeds can be im/exported via OPML) and uses OPML 1.0. However, an upcoming release will probably change this.