OPML is a file format that can be used to exchange subscription lists between programs that read RSS files, such as feed readers and aggregators. This site, feeds.scripting.com, uses OPML as an input format, it's how members tell us what feeds they're subscribed to; and it's how we communicate what the community is subscribed to. We'll be using OPML as a two-way format for other applications, currently in development.
OPML was created as the file format for UserLand's outliner application, and has become popular as a format for exchanging data between other outliners and server programs, such as Manila, that use outlines to specify directories and slide presentations. As a side-effect, subscription lists can be edited and organized using any OPML-compatible outliner.
There is a simple specification for OPML, with a timeline and examples, that explains in a general way, the rules for correctly formed OPML documents. The rest of this document explains how we use OPML to exchange subscription lists.
Using OPML to exchange subscription lists
This section is an RFC. Please post comments in the discussion group.
A subscription list is a valid OPML document.
Each <outline> element in a subscription list has, at minimum, the following attributes: text and xmlUrl. Text is the name of the feed, usually derived from the <title> element of the RSS <channel>. xmlUrl is the Web address of the feed.
Subscription lists may contain hierarchy. Processors must preserve hierarchy, even if they don't use it, so that lists that contained hierarchy on import contain the hierarchy when exported. When hierarchy is used, the outline elements designating a category must have a text attribute and must not have an xmlUrl attribute.