Outline Processor Markup Language
# Outline Processor Markup Language

Outline Processor Markup Language (OPML) ist ein XML-Format, das dem Austausch von strukturierten Informationen dient. Es wurde von Radio UserLand entwickelt und diente anfangs vor allem zur Abbildung von Outlines, also hierarchisch gegliederten Texten, die mit einem Gliederungseditor dargestellt und bearbeitet werden.

Eine der bekanntesten Anwendungen von OPML ist inzwischen der automatisierte Austausch von RSS-Web-Feeds zwischen RSS-Aggregatoren.

Im März 2006 wurde mit OPML 2.0 eine erweiterte Spezifikation zur Diskussion gestellt, die einige neue Funktionalitäten enthält, u. a. den include type, ownerId und Unterstützung für namespaces.

## XML-Format

Die XML-Elemente eines OPML-Dokuments sind:

### <opml version="1.0">

    Das ist das Hauptelement. Es muss das Versionsattribut, ein <head> und ein <body>-Element enthalten.

### <head>

    Enthält Metadaten. Kann folgende optionale Elemente enthalten: <title>, <dateCreated>, <dateModified>, <ownerName>, <ownerEmail>, <expansionState>, <vertScrollState>, <windowTop>, <windowLeft>, <windowBottom>, <windowRight>. Jedes Element ist ein einfaches Textelement. <dateCreated> und <dateModified> enthalten ein Datumsformat, das zu dem im RFC 822 spezifizierten konform ist. <expansionState> enthält eine durch Kommata getrennte Liste von Zeilennummern, die sich auf dem Display erweitern sollen. Das Element <windowXXX> definiert die Position und Größe des angezeigten Fensters. Ein OPML-Prozessor kann alle <head>-Subelemente ignorieren. Wenn die Outline innerhalb einer anderen Outline geöffnet ist, muss der Prozessor die <window>-Elemente ignorieren.

### <body>

    Enthält den Inhalt der Outline. Muss ein oder mehrere <outline>-Elemente enthalten.

### <outline>

    Repräsentiert eine Zeile in der Ausgabe. Es muss mindestens das Attribut text enthalten. Weitere Attribute sind in Benennung und Anzahl frei wählbar. Gewöhnliche Attribute sind beispielsweise type. Das Element <outline> kann eine beliebige Anzahl von <outline>-Subelementen beinhalten.
    Im Fall von RSS-Feeds enthält das <outline>-Element die Attribute title, text, ggf. htmlUrl sowie type="rss" und xmlUrl zur Bezeichnung des Feeds selbst.
