Google
 
   
Login
Username:

Password:


Lost Password?

Register now!
Search
Main Menu
service
top books
Polls
What do you think about php-deluxe.net?
Excellent!
Cool
Hmm..not bad
What the hell is this?
encyclopedia
recommendation
Freenet DSL
Who's Online
8 user(s) are online (6 user(s) are browsing encyclopedia)

Members: 0
Guests: 8

more...
partner

OPML

OPML (Outline Processor Markup Language) is an XML format for outlines. Originally developed by Radio UserLand as a native file format for an Outliner application, it has since been adopted for other uses, the most common being to exchange lists of RSS (protocol) feeds between RSS aggregators.

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.

==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 . 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 one or more outline elements

; <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.

=Shortcomings of OPML=

# OPML stores data in XML attributes, which violates a common XML design principle. #* [http://www.perfectxml.com/articles/xml/xmlauthoring.asp Generally, it is better to store data in elements] #* [http://www-128.ibm.com/developerworks/xml/library/x-eleatt.html Principles of XML design: When to use elements versus attributes] # Information about OPML items cannot itself be hierarchically marked up (ironically), due to the use of attributes to store that information. # 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) # Because expansionState is recorded independently of the outline elements: #* The expansion state of the children of collapsed nodes can not be stored #* When an outline element is expanded, collapsed, added, deleted or moved, the expansion state of all elements below it must be recalculated # 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.

=Validating OPML=

Dave Winer has made a request for comments on a [http://www.opml.org/guidelinesForValidation proposal for validating OPML].

=Example OPML documents=

*[http://static.userland.com/gems/radiodiscuss/playlist.opml Play list] *[http://static.userland.com/gems/radiodiscuss/specification.opml Specification] *[http://static.userland.com/gems/radiodiscuss/presentation.opml Presentation] *[http://radio.weblogs.com/0001000/gems/publications.opml Directory] *[http://www.scripting.com/feeds/top100.opml XML feed list] (e.g. blogroll)

=Alternative specifications=

OPML is being used more widely because of its ties to RSS. It has also been incorporated into Personal information manager applications.

Alternative specifications have been proposed. One such specification is OML. While very similar to OPML, OML forces a separation between data presentation and content; it also treats textual content as an XML element. OPML, by contrast, treats textual content as an XML attribute , which limits its extensibility and precludes the possibility of nested XML elements within textual content, but makes OPML somewhat simpler to code by hand in a text editor.

Another specification that has been proposed is XOXO. XOXO treats textual content as an XML element rather than an XML attribute . XOXO is easier than OPML to code by hand in a text editor, since it can be easily previewed in any web browser.

=Software Support=

*[http://www.omnigroup.com/applications/omnioutliner/ Omni Outliner] for Mac OS X can open, edit, and save files in the OPML format. *[http://support.opml.org/download OPML Editor] is a simple editor for both Mac OS X and Windows. *Most newsfeed aggregators, including the Firefox and Safari web browsers, can import and export OPML lists of RSS feeds. *[http://www.taskable.com Taskable] lets users browse OPML directories from the Windows taskbar.

=See also=

*Dave Winer *List of content syndication markup languages *Comparison of content syndication markup languages *XOXO

=External links=

*[http://www.opml.org/ What is OPML] *[http://www.xml.com/pub/a/2002/12/18/dive-into-xml.html What is RSS] *[http://radio.outliners.com/directoryOutliner How to create a directory in Radio s Outliner] *[http://feeds.scripting.com Share Your OPML!] *[http://loadaveragezero.com/app/drx/Data_Formats/Markup_Languages/XML/OPML OPML Resources] *[http://www.cincomsmalltalk.com/blog/blogViewshowComments=true&entry=3305486922 OPML is a crappy, crappy format ] (James Governor)