Sustainability of Digital Formats: Planning for Library of Congress Collections |
|
| Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact | |


| Full name | Outline Processor Markup Language (OPML) 2.0 |
|---|---|
| Description |
Outline Processor Markup Language (OPML) is an XML-based format, specifically XML 1.0, for outlines where each node contains a set of named attributes with string values. An outline, in this context, is "a tree, where each node contains a set of named attributes with string values." The OPML specification, which is open, is developed and maintained by Dave Winer at opml.org. The current version, covered in this document, is version 2.0. See History for information about previous versions. Structure of OPML OPML is a hierarchical, ordered list of elements:
Subscription lists, especially RSS or Really Simple Syndication feeds, are identified as sub-element of the body element with a node of type rss or an outline element that contains nodes of type rss. Uses of OPML According to the specification, the goals of OPML are "to provide a way to exchange information between outliners and Internet services that can be browsed or controlled through an outliner"; serve as a "file format for an outliner application, which is why OPML files may contain information about the size, position and expansion state of the window the outline is displayed in"; and, as a "format for exchanging subscription lists between feed readers and aggregators" especially RSS feeds. opml.org includes sample files for various uses. Issues with OPML Wikidata lists some criticisms of OPML including issues with the requirement that syntax in date-time elements must conform to the outdated RFC 822 specification which has been long superseded by RFC 5322, issues with the "expansionState" attribute, and general potential interoperability issues because "OPML documents relies almost entirely on the undocumented conventions of content producers." Issues with the OPML specification are included on the opml.org GitHub repo. |
| Production phase | Middle state as an exchange platform. The purpose of this format is to provide a way to exchange information between outliners and Internet services that can be browsed or controlled through an outliner, especially for RSS feeds. |
| Relationship to other formats | |
| Defined via | XML, Extensible Markup Language (XML) |
| Has earlier version | OPML 1.0. Specification published September 15, 2000. Not described separately at this time. See Notes for more information. |
| Has earlier version | OPML 1.1. Information about version updates published January 24, 2005. Not described separately at this time. See Notes for more information. |

| LC experience or existing holdings | None. |
|---|---|
| LC preference | See the Recommended Formats Statement for the Library of Congress format preferences for textual works. |

| Disclosure | Fully documented and open specification. Developed and maintained by Dave Winer at opml.org. The specification declares "it's an open format, meaning that other outliner and service developers are welcome to use the format to be compatible with Radio UserLand, the OPML Editor, or for any other purpose." |
|---|---|
| Documentation | OPML 2.0 specification which is frequently updated. The opml.org GitHub repository backs up the opml.org website. In addition to the specification, there is an XML schema for validating OPML 2.0 developed by the Digital Library for Earth System Eduction (DLESE) Program Office (link via Internet Archive). There is also a DTD for OPML version 1. |
| Adoption | According to Renée Christian in What are OPML Files, and How Do You Open, Edit, and Use Them? from August 2022, "the hierarchical structure of OPML facilitates the accurate exchange between software applications of large volumes of data, regardless of the operating system used. This makes them a high-utility file type that is used in a wide range of applications... Most programs that handle RSS feed data are able to import or export OPML files." OPML implementers include the aggregator Feedly, Mozilla Thunderbird, Microsoft Outlook starting with Outlook 2007, even Sony PlayStation legacy system 1000, 2000, 3000 and N1000 models to "to collectively register multiple channels that are stored in the file"; AntennaPod open source podcast player; Firefox browser bookmarks; and many more. opml.org maintains a list of OPML compatible applications. |
| Licensing and patents | No known license or patent concerns for generation and use of the format. |
| Transparency | XML is human-readable and designed for straightforward automatic parsing. For the contents to be understood, a well-documented DTD, XML Schema, or other specification is needed. Human-comprehensible element tags are advantageous for transparency. |
| Self-documentation | Well-defined XML structure include declaration of the OPML version (in the version attribute) as well as information about the title, creation dates and more in the head, body and outline elements. |
| External dependencies | None. |
| Technical protection considerations | None. |

| Text | |
|---|---|
| Normal rendering | See XML. |
| Integrity of document structure | See XML. |
| Integrity of layout and display | See XML. |
| Support for mathematics, formulae, etc. | See XML. |
| Functionality beyond normal rendering | See XML. |

| Tag | Value | Note |
|---|---|---|
| Filename extension | opml |
See https://file.org/extension/opml . |
| Internet Media Type | text/x-opml |
See https://mimeapplication.net/text-x-opml. Not registered at IANA. |
| Internet Media Type | See related format. | See XML. |
| Magic numbers | See related format. | See XML. |
| Indicator for profile, level, version, etc. | 2.0 |
For OPML 2.0, the required version attribute in the top level opml element is opml version="2.0". For OPML versions 1.0 and 1.1, the attribute values are 1.0 and 1.1 respectively. See OPML specification. |
| Pronom PUID | See note. | PRONOM has no corresponding entry as of December 2022. |
| Wikidata Title ID | Q836370 |
See https://www.wikidata.org/wiki/Q836370. Note that Wikidata does not specify versions. |

| General | The difference between version 2.0 and 1.0 is the "text" attribute, which is optional in version 1.0. The difference between version 1.0 and version 1.1 is less clear and in fact, in a post on opml.gov from January 24, 2005 titled About OPML 1.1, specification author Dave Winer explains that the addition of an optional cloud element to the OPML head element was under consideration because cloud was added to RSS in version 0.92. He explains that "this allows a server to implement update-notification, a lightweight publish-subscribe mechanism that works over various Internet protocols." However, due to changes in priorities and personal reasons, the cloud element was never actually added to OPML. He states "if you see an OPML 1.1 file, you should treat it like an OPML 1.0 file. That's it. Enjoy!" |
|---|---|
| History |
According to Renée Christian in What are OPML Files, and How Do You Open, Edit, and Use Them?, "OPML was developed by a US-based software company called UserLand in 2000. UserLand used OPML as a native file format for Radio UserLand, an RSS aggregator and blogging tool." Dave Winer, the designer of the OPML format , founded UserLand in 1988. The current version of OPML is 2.0. The first version, version 1.0, was published in 2000. Version 1.1 was never formally finalized or published although a version 1.1 sample file is available and displays the version number in the header metadata. |

|
|