OPML
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-Feeds zwischen RSS-Aggregatoren. Im März 2006 wurde mit OPML 2.0 eine erweiterte Spezifikation zur Diskussion gestellt, die einige neue Features 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> and <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. Kann jegliche Anzahl beliebiger Attribute enthalten. Gewöhnliche Attribute sind beispielsweise text und 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.