Feed and subscription list detection algorithm¶
Note
RDF+FOAF does not support embedded subscription lists. This detection algorithm only applies to OPML subscription lists.
Many services and softwares output OPML subscription lists with slight
variations. listparser attempts to correctly determine whether an
outline
element is attempting to reference a feed or subscription
list. As an example, although feeds should be indicated using
type="rss"
(no matter the format), some services refer to feeds
using type="link"
, others indicate that the feed is Atom-formatted
using type="pie"
, and still others fail to include a type
attribute at all! Therefore it is necessary to make educated guesses.
Feed detection¶
If the outline
element contains an xmlUrl
attribute, the
outline
is assumed to represent a feed. listparser will also accept
xmlurl
, or xmlURL
, or indeed any capitalization combination.
The type
is ignored entirely in making the decision, with one
notable exception (see below).
Subscription list detection¶
If the outline
element has a url
attribute and type="link"
or type="include"
, listparser assumes that it has found a
subscription list. Additionally, if it has an xmlUrl
attribute and
type="source"
, it is also considered a subscription list.
Although the “include” value was only introduced in OPML 2.0,
listparser ignores the OPML version entirely. Additionally, despite the
OPML 2.0 requirement that the url
value of “link” outline
elements must end in “.opml” to be considered an OPML file, listparser
ignores the URL suffix when detecting whether the element is a
subscription list.