Author: as Date: Fri Feb 29 13:34:35 2008 New Revision: 7467 Log: - Added some useful information to the Feed tutorial.
Modified: trunk/Feed/docs/tutorial.txt Modified: trunk/Feed/docs/tutorial.txt ============================================================================== --- trunk/Feed/docs/tutorial.txt [iso-8859-1] (original) +++ trunk/Feed/docs/tutorial.txt [iso-8859-1] Fri Feb 29 13:34:35 2008 @@ -11,6 +11,79 @@ The purpose of the Feed component is to handle parsing and creating RSS and ATOM feeds. + + +XML feeds overview +================== + +An XML feed is an XML document with a certain structure, which lists a series +of "entries" or "items". + +Example +------- + +An example XML feed:: + + <?xml version="1.0"?> + <rss version="2.0"> + <channel> + <title>Liftoff News</title> + <link>http://liftoff.msfc.nasa.gov/</link> + <description>Liftoff to Space Exploration.</description> + <language>en-us</language> + <pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate> + <webMaster>[EMAIL PROTECTED]</webMaster> + <item> + <title>The Engine That Does More</title> + <link>http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp</link> + <description>Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly. The proposed VASIMR engine would do that.</description> + <pubDate>Tue, 27 May 2003 08:37:32 GMT</pubDate> + <guid>http://liftoff.msfc.nasa.gov/2003/05/27.html#item571</guid> + </item> + <item> + <title>Astronauts' Dirty Laundry</title> + <link>http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp</link> + <description>Compared to earlier spacecraft, the International Space Station has many luxuries, but laundry facilities are not one of them. Instead, astronauts have other options.</description> + <pubDate>Tue, 20 May 2003 08:56:02 GMT</pubDate> + <guid>http://liftoff.msfc.nasa.gov/2003/05/20.html#item570</guid> + </item> + </channel> + </rss> + +This XML document describes an RSS2 feed, with channel elements *title*, +*link*, *description*, *language*, *pubDate* and *webMaster*. The XML document +also contains 2 entries (*item*), each one with the elements *title*, *link*, +*description*, *pubDate* and *guid*. These elements are not the only ones +present in RSS2 feeds, and some elements are not required to be present. + +The Feed document allows creating and parsing such XML documents. The feed +types supported by the Feed component are ATOM, RSS1 and RSS2. + + +Modules +------- + +XML feeds are extensible through modules. A module has a namespace and certain +XML elements. An example of a feed module is iTunes, which allows creating and +parsing podcasts for the `iTunes`_ media player. + + +Applications +------------ + +XML feeds can be used in many applications: + +- **content aggregation** - blogs or journals can provide their content in an + XML feed form. Subscribers to a feed are able to view content aggregated + from multiple websites in one location, using an `aggregator`_ software + program. +- **news** - websites can provide news in a feed format. The advantage is that + users do not need to check a website or subscribe to newsletters, but + instead can have news from multiple sources in their `aggregator`_ program. +- **podcasts** - XML feeds can have *enclosures*, which are links to media + files (audio, video, pdf, etc). Some `aggregator`_ programs or the `iTunes`_ + media player can download automatically these media files when they become + available. Class overview @@ -44,9 +117,9 @@ processor is used to parse and generate that type. The following feed processors are supported by the Feed component: -- RSS1 (ezcFeedRss1) -- RSS2 (ezcFeedRss2) -- ATOM (ezcFeedAtom) +- RSS1 (ezcFeedRss1) - `RSS1 specifications`_ +- RSS2 (ezcFeedRss2) - `RSS2 specifications`_ +- ATOM (ezcFeedAtom) - `ATOM specifications`_ A new processor can be defined by creating a class which extends the class ezcFeedProcessor and implements the interface ezcFeedParser, and adding it to the @@ -58,10 +131,11 @@ The following modules are supported by the Feed component: -- Content (ezcFeedContentModule) -- CreativeCommons (ezcFeedCreativeCommonsModule) -- DublinCore (ezcFeedDublinCoreModule) -- iTunes (ezcFeedITunesModule) +- Content (ezcFeedContentModule) - `Content specifications`_ +- CreativeCommons (ezcFeedCreativeCommonsModule) - + `CreativeCommons specifications`_ +- DublinCore (ezcFeedDublinCoreModule) - `DublinCore specifications`_ +- iTunes (ezcFeedITunesModule) - `iTunes specifications`_ A new module can be defined by creating a class which extends the class ezcFeedModule, and adding it to the ezcFeed::$supportedModules and @@ -484,6 +558,17 @@ .. _iTunes: http://www.apple.com/itunes/ +.. _RSS1 specifications: http://web.resource.org/rss/1.0/spec +.. _RSS2 specifications: http://www.rssboard.org/rss-specification +.. _ATOM specifications: http://atompub.org/rfc4287.html + +.. _Content specifications: http://purl.org/rss/1.0/modules/content/ +.. _CreativeCommons specifications: http://backend.userland.com/creativeCommonsRssModule +.. _DublinCore specifications: http://dublincore.org/documents/dces/ +.. _iTunes specifications: http://www.apple.com/itunes/store/podcaststechspecs.html + +.. _aggregator: http://en.wikipedia.org/wiki/List_of_feed_aggregators + .. -- svn-components mailing list svn-components@lists.ez.no http://lists.ez.no/mailman/listinfo/svn-components