OPML

Last updated

OPML
Opml-icon.svg
Filename extension
.opml
Internet media type
application/xml, text/xml, text/x-opml
Uniform Type Identifier (UTI) org.opml.opml
UTI conformationpublic.xml
Developed by UserLand
Type of format Outliner
Extended from XML
Website dev.opml.org

OPML (Outline Processor Markup Language) is an XML format for outlines (defined as "a tree, where each node contains a set of named attributes with string values" [1] ). Originally developed by UserLand Software as a native file format for the outliner application in its Radio UserLand product, it has since been adopted for other uses, the most common being to exchange lists of web feeds between web feed aggregators. [2]

Contents

The OPML specification defines an outline as a hierarchical, ordered list of arbitrary elements. The specification is fairly open which makes it suitable for many types of list data.

Support for importing and exporting RSS feed lists in OPML format is available in Mozilla Thunderbird [3] and in most other RSS reader web sites and applications. [2]

XML format

The XML elements in an OPML document are:

<opml version="1.0">
This is the root element. It must contain the version attribute and one head and one body element.
<head>
Contains metadata. May include any of these optional elements: title, dateCreated, dateModified, ownerName, ownerEmail, expansionState, vertScrollState, windowTop, windowLeft, windowBottom, windowRight. Each element is a simple text element. dateCreated and dateModified contents conform to the date-time format specified in RFC   822. expansionState contains a comma-separated list of line numbers that should be expanded on display. The windowXXX elements define the position and size of the display window. An OPML processor may ignore all the head sub-elements. If the outline is opened inside another outline then the processor must ignore the window elements.
<body>
Contains the content of the outline. Must have at least one outline element.
<outline>
Represents a line in the outline. May contain any number of arbitrary attributes. Common attributes include text and type. The outline element may contain any number of outline sub-elements.

Criticism

  1. The RFC 822 date format is considered obsolete, and amongst other things permits the representation of years as two digits. (RFC 822 has been superseded by RFC 2822 then RFC 5322.) In general, date and time formats should be represented according to RFC 3339.
  2. Due to the semantics of the "expansionState" attribute:
    • The expansion state of the children of collapsed nodes cannot be stored
    • When an outline element is expanded, collapsed, added, deleted or moved, the expansion state of all elements below it must be recalculated
  3. Due to the arbitrary nature of the "type" attribute, and the acceptance of arbitrary attributes on "outline" elements, interoperability of OPML documents relies almost entirely on the undocumented conventions of content producers.
  4. MIME types aren't clear; text/xml usually merely identifies the document as having XML content, while text/x-opml does not specify that the document is XML since it lacks the +xml suffix.

[4]

Validation

Dave Winer, the founder and CEO of Userland, has made a request for comments on a proposal for validating OPML and released a beta OPML validator.

Katy Ginger[ clarification needed ] from DLESE[ clarification needed ] has published an XML Schema Document for validating OPML 2.0. There is also a DTD available for OPML 1.0.

Alternative specifications

Alternative specifications have been proposed, notably these include OML, XOXO and XBEL.

See also

Related Research Articles

A document type definition (DTD) is a specification file that contains set of markup declarations that define a document type for an SGML-family markup language. The DTD specification file can be used to validate documents.

<span class="mw-page-title-main">HTML</span> HyperText Markup Language

HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScript.

<span class="mw-page-title-main">Standard Generalized Markup Language</span> Markup language

The Standard Generalized Markup Language is a standard for defining generalized markup languages for documents. ISO 8879 Annex A.1 states that generalized markup is "based on two postulates":

<span class="mw-page-title-main">XML</span> Markup language by the W3C for encoding of data

Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The World Wide Web Consortium's XML 1.0 Specification of 1998 and several other related specifications—all of them free open standards—define XML.

<span class="mw-page-title-main">RSS</span> Family of web feed formats

RSS is a web feed that allows users and applications to access updates to websites in a standardized, computer-readable format. Subscribing to RSS feeds can allow a user to keep track of many different websites in a single news aggregator, which constantly monitor sites for new content, removing the need for the user to manually check them. News aggregators can be built into a browser, installed on a desktop computer, or installed on a mobile device.

XSD, a recommendation of the World Wide Web Consortium (W3C), specifies how to formally describe the elements in an Extensible Markup Language (XML) document. It can be used by programmers to verify each piece of item content in a document, to assure it adheres to the description of the element it is placed in.

<span class="mw-page-title-main">Outliner</span> Type of software to organize texts

An outliner is a specialized type of text editor used to create and edit outlines, which are text files which have a tree structure, for organization. Textual information is contained in discrete sections called "nodes", which are arranged according to their topic–subtopic (parent–child) relationships, like the members of a family tree. When loaded into an outliner, an outline may be collapsed or expanded to display as few or as many levels as desired.

YAML(see § History and name) is a human-readable data serialization language. It is commonly used for configuration files and in applications where data is being stored or transmitted. YAML targets many of the same communications applications as Extensible Markup Language (XML) but has a minimal syntax that intentionally differs from Standard Generalized Markup Language (SGML). It uses Python-style indentation to indicate nesting and does not require quotes around most string values.

<span class="mw-page-title-main">Atom (web standard)</span> Web standards

The name Atom applies to a pair of related Web standards. The Atom Syndication Format is an XML language used for web feeds, while the Atom Publishing Protocol is a simple HTTP-based protocol for creating and updating web resources.

XML Linking Language, or XLink, is an XML markup language and W3C specification that provides methods for creating internal and external links within XML documents, and associating metadata with those links.

In web development, "tag soup" is a pejorative for HTML written for a web page that is syntactically or structurally incorrect. Web browsers have historically treated structural or syntax errors in HTML leniently, so there has been little pressure for web developers to follow published standards. Therefore there is a need for all browser implementations to provide mechanisms to cope with the appearance of "tag soup", accepting and correcting for invalid syntax and structure where possible.

OML is an XML format for outlines. It was originally proposed by Ray Grieselhuber. The specification is designed to build upon the concepts found in OPML, with the goal of fixing some of its limitations.

<span class="mw-page-title-main">Web feed</span> Data format

On the World Wide Web, a web feed is a data format used for providing users with frequently updated content. Content distributors syndicate a web feed, thereby allowing users to subscribe a channel to it by adding the feed resource address to a news aggregator client. Users typically subscribe to a feed by manually entering the URL of a feed or clicking a link in a web browser or by dragging the link from the web browser to the aggregator, thus "RSS and Atom files provide news updates from a website in a simple form for your computer."

An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself. These constraints are generally expressed using some combination of grammatical rules governing the order of elements, Boolean predicates that the content must satisfy, data types governing the content of elements and attributes, and more specialized rules such as uniqueness and referential integrity constraints.

Microformats (μF) are a set of defined HTML classes created to serve as consistent and descriptive metadata about an element, designating it as representing a certain type of data. They allow software to process the information reliably by having set classes refer to a specific type of data rather than being arbitrary. Microformats emerged around 2005 and were predominantly designed for use by search engines, web syndication and aggregators such as RSS.

XOXO for web syndication is an XML microformat for outlines built on top of XHTML. Developed by several authors as an attempt to reuse XHTML building blocks instead of inventing unnecessary new XML elements/attributes, XOXO is based on existing conventions for publishing outlines, lists, and blogrolls on the Web.

The XML Bookmark Exchange Language (XBEL), is an open XML standard for sharing Internet URIs, also known as bookmarks.

FicML is an XML format for fictional stories. Originally conceived of by multiple contributors, it is an initiative and is in the process of forming its first specification.

Extensible HyperText Markup Language (XHTML) is part of the family of XML markup languages which mirrors or extends versions of the widely used HyperText Markup Language (HTML), the language in which Web pages are formulated.

References

  1. "OPML 2.0 Specification" . Retrieved 18 March 2014.
  2. 1 2 Fisher, Tim (12 March 2022). "How to Open, Edit, and Convert OPML Files". Lifewire . Retrieved 5 July 2023.
  3. "How to Subscribe to News Feeds and Blogs | Thunderbird Help". support.mozilla.org. Retrieved 11 June 2019.
  4. "RFC 5322". RFC editor. Retrieved 21 September 2023.