XML format
OPML
A nested outline format, used almost universally for exporting and importing feed subscriptions.
OPML describes a tree of <outline> elements whose meaning comes entirely from their attributes. Its dominant real-world use is the subscription list every feed reader can import and export.
Like RSS, it declares no namespace, and its looseness is deliberate: any application may add attributes, so an OPML file's real schema is whatever produced it.
Constraints that bite
- Structure lives in attributes (text, type, xmlUrl), not in child elements.
- No namespace, and no schema in practice — validate against the producer's conventions.
- <outline> nests arbitrarily deep; consumers must handle recursion.
- The text attribute is required on every outline, even when empty.
- Root element
<opml>- Media type
text/x-opml- Extensions
.opml, .xml- Namespaces
- None — unqualified elements
- XMLDir label
xml
A minimal valid document
Every example on this site is checked against the same parser the workspace uses, so what you see below is known to be well-formed.
<?xml version="1.0" encoding="UTF-8"?>
<opml version="2.0">
<head><title>Subscriptions</title></head>
<body>
<outline text="News">
<outline type="rss" text="Example" xmlUrl="https://example.com/rss.xml"/>
</outline>
</body>
</opml>Get started
Bring order to the XML your team can't afford to ignore.
Create a free account and get a private workspace to search, validate, diff, and monitor your XML feeds, sitemaps, schemas, and vendor integrations.