OPML 2.0 |
![]() |
External Processor Marking Language
|
22/11/07 DW - This is a published document that please should be implemented, OPML 2.0 format is frozen.
French translation by Denis Surot for .fr.
Specifications in English - OPML 1.0
This document describes a format for storing plans in XML 1.0 called Outline Processor Markup Language or OPML (in French, Tags de Processor de Plan).
The purpose of this format is to provide a way to exchange information between planning software and Internet services that can be accessed or controlled by planning software.
OPML is also a file format for a plan application, which explains why OPML files can contain information about the size, position, and expansion status of the window in which the plan is displayed.
OPML has also become popular as a format for exchanging subscription lists between stream readers and aggregators .
The goal of the design is to have a simple format of transparency, self-control, extensible and human readable, capable of presenting a wide variety of data that can be easily viewed and edited.
This is an open format, which means that other developers of planned software and services are invited to use this format for compatibility with Radio Userland, OPML Editor or for any other purpose.
A plane is a tree where each node contains a set of named attributes with values that are strings of characters.
<opml> is an XML element with one required version attribute; the "head" element and the "body" element, both of which are necessary.
The version attribute is a character string of form version x.y, where x and y are numeric strings.
A version value can be 1.0 if it matches a previous version of that specification published in 2000; or 2.0 if it meets this specification.
If you see a file with version 1.1, then treat it as if it were a version 1.0 file.
<head> contains 0 or more additional elements, as described below.
<title> - document title.
<dateCreated> is the date/time when the document was created.
<dateModified> is the date/time when the document was last modified.
<ownerName> is the row that owns the document.
<ownerEmail> - line, address of the document owner.
<ownerId> - the http address of a web page that contains information that allows a human reader to communicate with the author of a document by e-mail or other means. It can also be used to identify the author. Two authors cannot have the same ownerID.
<docs> is the http address of the documentation for the format used in the OPML file. It's probably a pointer on this page for people who might stumble across a file 25 years from there and wonder what it is.
<expansionState> is a comma-separated list of expanded string numbers. The line number in the list tells you which headings to develop. Order is important. For each item in the X list, starting at the first vertex, we move X times and develop. Repeat for each list item.
<greenScrollState> is a number that specifies which plan line is displayed in the first line of the window. This number is calculated taking into account the already applied state of development.
<windowsTop> - number, pixel position of the top edge of the window.
<windowsLeft> - number, pixel position of the left edge of the window.
<windowsBottom> - number, pixel position of the bottom edge of the window.
<windowsRight> - number, pixel position of the right edge of the window.
What is a " bodysuit"?
<body> contains "outline" or later.
<outline> is an XML element containing at least one required, text, and zero additional attributes. <outline> can contain zero or more <outline> sub-elements. Attributes cannot be repeated in the same <outline> element.
Each outline element must have at least one text attribute that is displayed when the OPML file is opened by plan. Missing the text attribute will render the plan display useless in the plan software. This is what the user should see - a clearly unacceptable situation.
Missing text attribute in plan is an error.
Text attributes can contain HTML encoding.
type is a string of characters that tells you how other attributes are interpreted in <outline> .
isComment is a string, that is, "true" or "false" (true or false), indicating whether the plan is commented on or not. By agreement, if a plan is commented on, then all subordinate plans are also considered commented. If it is not, the value is wrong.
isBreakpoint is a string, that is, "true" or "false," indicating whether the stop point is placed on a plane. This attribute is especially necessary for plans used for script editing. If a value is missing, it is invalid.
created - date-time of the plan node creation.
A category is a string of characters consisting of slash-delimited and comma-separated strings in the format specified by the RSS 2.0 category element. Category string must not contain slashes to represent a "tag."
Examples:
1. category = "/Boston/Weather. "
2. category = "/Harvard/Berkman ,/Politics. "
Subscription lists
A subscription list can be a multilevel subscription list of streams. Each sub-element in the OPML document body is an rss node or a plan element containing rss nodes.
Now most subscription lists are simple sequences of rss nodes, but some aggregators allow you to classify subscription lists that are structured arbitrarily. The checker may report these files, warning that processors may not understand or preserve the structure.
Required attributes: type, text, xmlUrl. For plan elements whose type is rss, it is initially assumed that the text attribute should be a header element of the top level of the selected stream, however, since it can be edited by the user, processors do not always have to depend on what the stream name contains.
xmlUrl - http address of the stream.
Additional attributes - description, htmlUrl, language, title, version. These attributes are useful for presenting a subscription list to a user. Except for the versions, they are all derived from information coming from the stream itself.
description - a description element of the top level of the stream .
htmlUrl - top-level link element.
language - the value of a higher level language element.
title is probably the same as the text, it should not be omitted, title contains the title element of the highest level of the stream.
the version varies depending on the version of the RSS feed provided. This was invented at a time when it was thought that there might be processors that would only handle certain versions, but it no longer became an important issue. Values that can be RSS1 for RSS 1.0; RSS for 0.91, 0.92 or 2.0; scriptNews for the scriptNews format. There are no known values for Atom threads, but they certainly could have been provided.
The plan element whose type is a reference must have a url attribute whose value is an http address. The text, as usual, is displayed in the plan software; This is also displayed by the HTML rendering engine.
When communication is developed by planning software, if the address ends in. "Opml," the plan develops on the spot. It's called inclusion.
If the address does not end with. "opml," the link should indicate that the browser cannot show.
OPML 2.0 introduces a new type. A plan element with an enabled type must have a url attribute pointing to the OPML file that you want to enable.
The difference between references and inclusions is that a reference can indicate what is displayed in the browser and always include hints on the OPML file.
A catalog can contain an arbitrary structure of plan elements of the included type, links or rss, and possibly other types. You can use a variety of programs to display catalogs, including planning programs such as OPML Editor.
Extend OPML
An OPML file can contain elements and attributes not described on this page only if those elements are defined in the namespace specified by W3C.
OPML can also be extended by adding new values for the attribute type. When specifying such an extension, following the example of this specification, you say which attributes are needed and which are optional, and explain what role each attribute plays, their relationships and what rules they must follow. The OPML editor has a mechanism that is based on this form of extension.
Developers should, to the extent possible, use features already used by others or included in this specification, or recommendations or rules.
Examples of
subscribtionList.opml
states.opml
SimpleScript .opml
placesLived.opml
regory.opml
category.opml
1. All date/time must conform to the Date/Time RFC 822 specification, except for the year, which can be expressed in two or four characters (preferably four).
2. A page in <ownerId> may contain links to other documents that contain owner information. For example, you can have a link element pointing to a FOAF document describing the owner and his network of friends; or an RSS feed with the owner's news, possibly even related RSS 2.0 items to parts of the OPML document. In other words, all HTML extension mechanisms can come into play.
3. The meaning of type attributes is not case-sensitive, so type = "LINK" is the same as type = "link."
4. Plan attributes typically do not contain HTML markup code unless they explicitly indicate that a tag is included.
5. Processors must have all attributes they do not recognize.
6. There is no documented limit to the number of attributes an outline element can have, or the number of outline elements it can contain, or the size of any attribute.
7. Each <head> sub-element may appear once or not at all. No <head> sub-element can be repeated.
8. If you create an HTML page from an OPML document, you can use the HTML link element to "auto-open" the OPML. The value of the rel attribute is "outline," the type is "text/x-opml," and of course the href attribute contains the address of the OPML document.
9. You can include OPML 2.0 elements in other XML-based formats. Namespace URI: http://opml.org/spec2. The namespace declaration should look like this: xmlns: opml =" http://opml.org/spec2."
However, for upstream compatibility, the main elements (defined by this specification) of the OPML 2.0 document are not in the namespace. Here is an example of an RSS 2.0 file that contains a plane in one of its elements.
Roadmap
Version 2.0 is the latest version of OPML. Under the OPML Extension section of this specification, all future developments will not be done with namespaces and new plan types; or in formats derived from OPML with different names.
Copyright and authorization
© Copyright 2000 UserLand Software, Inc. All rights reserved.
© Copyright 2006-2007 Script News, Inc. All rights reserved.
This document and its translations may be copied and made available to others, and works derived for comment or explanation or to facilitate implementation may be written, copied, published and distributed in whole or in part without restriction of any kind, provided that the copyright notice is above and those paragraphs are included in those copies or derived works.
A document may in no way be altered by removing a copyright notice or links to UserLand or other entities. In addition, since these copyright restrictions apply to the writing of the OPML specification, UserLand makes no claim to ownership in the format it describes. Anyone may for commercial or non-commercial reasons implement this protocol without license rights or royalties due to UserLand. The above limited permissions are perpetual and may not be revoked by UserLand or its successors or representatives.
The above document and information are provided "as is" and USERLAND DECLINE ALL WARRANTIES, EXPRESS OR RELATED THERETO, INCLUDING ANY WARRANTIES THAT THE USE OF THE ABOVE INFORMATION WILL NOT INFRINGE ANY RIGHTS OR ANY WARRANTIES RELATING TO MARKETING OR APPLICABILITY TO ANY OF USE
© Copyright 2000-2008, Script News, Inc.
OPML is a trademark of Script News, Inc.
Last updated Thursday, November 22, 2007 at 11:40:34 AM.
© Copyright 2008 by Denis Surot for French translation. Reference: https://www.iqlevsha.ru/xml/OPML-2.0.html.
French translation license: This translation can be printed and used freely provided that copyright notices, including the above copyright for the translation, are preserved. This document cannot be posted on another website, instead you need to post a link to the above URL - the translation was posted on May 7, 2008.