not at all - it's that what allows the simplest structure for nesting of outline elements.
An <outline> is an XML element, possibly containing one or more attributes, and containing any number of <outline> sub-elements.
<?xml version="1.0" encoding="UTF-8"?>
<node>
<node>
<![CDATA[ Hello I am text ]]>
<node> ... </node>
<node> ... </node>
</node>
</node>It's also worth noting that OPML is only the container format here. Agreeing on a container format is obviously important and we won't get very far for interop if we can't even agree on the container format, but OPML is supposed to be a generic tree of 'outline' format, and conveniently RSS subscriptions (and folders) look like a tree.
I sorta expected that there would be a second standard that says "here's how you use this generic OPML container format to represent RSS feed subscriptions" but oddly that's actually included right in the OPML spec[2]. In fact RSS subscriptions are the only application format defined in OPML - there's a 'type' field defined for <outline> element and if type is set to 'rss' then there's also a required xmlUrl of the feed and optional things like the html link for the blog, the version of RSS used. This is the data and part of the spec that makes the actual subscription list exchange work.
But again the only entry for 'type' defined in the OPML spec is 'rss'. If you want to use OPML as a container for something else, like Youtube subscriptions or Twitter followers, you of course can but you gotta find some way to get everyone to agree on how to interpret the 'type' you set for that <outline> element. And as far as I know, no one's done anything like that for any other domain.
So it'd be awesome if more domains defined 'type' fields and set out some specs so I can export my video streaming subscriptions or Amazon wishlist or whatever but without defining more 'type' fields OPML is really not any more interesting than a CSV of URLs.
[1] https://twitter.com/karpathy/status/1751379269769695601 [2] http://opml.org/spec2.opml
There also is nothing to stop the author of the OPML specification from opposing the new type.
It would be far easier to create a new XML format.
It is moderately readable and writable, and the tooling is great. Whenever I have to write it Emacs verifies the doctype for me and handles the structural part of it.
And, as the document shows, xslt makes it easy as hell to scan the contents of a file.
OPML is a good example in my opinion. I used it maybe once a year and it has never failed me
I wouldn't call OPML a good example of XML for reasons I detail elsewhere in the thread. But if you need a subscription list of feeds for import or export it's alright.
OPML is useful because people use it, but it was a bad design decision to store long blocks of HTML inside XML attributes instead of XML elements. Look at the escaped HTML inside these "text" attributes:
http://scripting.com/index.opml
Because the HTML is stored in attributes, it can't be wrapped in a CDATA block. There's also no limit to how long the text can be.
OPML is also a moving target without a standard. Any time there's a desire to represent something new with the format, attributes are added without any public participation from existing implementers. The value of the "type" attribute on outline elements determines whether new arbitrary attributes can be present.
Because of this unorthodox extension process, the OPML format has become a catch-all for unrelated uses: outlines, blog posts, RSS/Atom subscription lists, programming source code, and more.
All of the uses could've been represented as XML formats. XML didn't need OPML for storing and transmitted arbitrary data. We already had XML for that.
The original thing OPML was created to do -- represent outlines -- is severely hampered by the fact there's no way to store the expansion state of collapsed nodes of an outline.
RSS 1.0 was basically the first attempt to produce something like Atom without reinventing too much, but Dave threw his toys out of the pram, so the only option was to reinvent it with a different name and clean up the remaining sharp corners.
It's tragically funny. Atom is both more correct and easier to produce and parse than any RSS variant.
Were I to join Automattic in the morning, the first thing I'd try is to attempt to get them to abandon their weird RSS mashup as their default feed format. There's no good reason why Wordpress still generates RSS feeds.
Yes, I'm a bit bitter, but I was in the feed wars, and it still stings.
I wouldn't call it a weird mashup for WordPress to use atom:link in their RSS feeds. It does things no RSS element can do, such as allow a feed to identify its own URL.
For those who don't know, every WordPress site with an RSS feed also has an Atom feed available by adding "/atom" to the end of the RSS feed URL, such as this:
RSS feed: https://wordpress.com/blog/feed/
Atom feed: https://wordpress.com/blog/feed/atom/
The time spent debating names, disqualifying names, requalifying names and voting on names was like the battle of the newscasters on Anchorman. Pure carnage.
There are feed formats named "RSS". There is a feed format named "Atom". And there is a concept named "RSS". The RSS formats, like the Atom format, are all implementations of the RSS concept. Generally, when you subscribe to an RSS feed somewhere, it will be in the Atom format. It's still called an "RSS feed" for the simple reason that that is the name of the concept.
> it's sometimes used as the name of the functionality but it's improper.
No it isn't. What would you gain by insisting that RSS feeds delivered via Atom have to be called something different than RSS feeds delivered in legacy formats? Did we rename TLS when we updated the cipher suites?
Why, in your opinion, is rssboard.org even bothering to write about Atom?
Instead I'd say that Atom feeds and RSS feeds are each an implementation of the syndication concept.
Deleted Comment
https://www.rssboard.org/rss-specification
This also includes a change to reflect that the Berkman Center for Internet & Society became the Berkman Klein Center for Internet & Society in 2016.