文章出處

RSS是一種消息來源格式規范,用以發布經常更新資料的網站,例如博客、新聞的網摘。RSS文件,又稱做摘要、網摘、更新、頻道等,包含了全文或節選文字,再加上一定的屬性數據。RSS讓發布者自動發布信息,也使讀者能夠聚合和定期更新不同網站的網摘。RSS可以通過以網頁或桌面為架構的軟件來閱讀,即RSS閱讀器、新聞聚合器等,并進行定期更新檢查、自動下載。

RSS可以是以下三種解釋中任一種的縮寫,

  • Really Simple Syndication
  • RDF (Resource Description Framework) Site Summary
  • Rich Site Summary

RSS規范的主要版本有0.91、1.0和2.0等。

  • 1.0版和0.91版內容不同、風格不同、制定標準的人也不同,稱為RDF分支;
  • 2.0版和0.91版一脈相承,稱為2.*分支。

早期版本的RSS閱讀器不支持RDF分支,而當前主流的RSS閱讀器都同時兼容兩種分支。

RSS 2.*規范由美國人Dave Winer個人進行維護,在全球大部分網站得到使用。可能是版權方面的原因,RSS 2.*規范并沒有在W3CIETF或者ISO等國際標準化組織發布,而是在RSS Advisory Board發布。

RSS 2.0規范說明

RSS標志

本規范是RSS 2.0規范的2.0.10版本,2007-10-15在RSS Advisory Board發布,波波坡原創翻譯。點擊這個鏈接可以獲得RSS的最新版本的英語規范。

RSS是一個Xml格式的數據或文件,根節點是一個帶有版本號的<rss>節點,根節點一下是一個單一的<channel>節點極其子節點。對于具體的Rss訂閱項目,例如一篇文章、網志,由<channel>節點下多個<item>節點來表示。一個<channel>可以有任意多個<item>。

<channel>

必須的子節點:

項目說明舉例
<title> 頻道名稱。 程序員的波波坡。
<link> 與頻道關聯的Web站點或者站點區域的Url。 http://www.bobopo.com
<description> 簡要介紹該頻道是做什么的。 包含編程、休閑、知識、雜記的程序員站點。

可選的子節點:

項目說明舉例
<language> 頻道內容使用的語言。詳見常用HTML、RSS語言代碼列表 zh-cn
<copyright> 頻道內容的版權說明。 Copyright 2008,2009 bobopo.com
<managingEditor> 責任編輯的Email地址。 rosbicn@hotmail.com
<webMaster> 頻道相關網站管理員的Email地址。 rosbicn@hotmail.com
<pubDate> 頻道內容發布日期。遵循RFC 822 Wed, 04 Mar 2009 00:00:01 GMT
<lastBuildDate> 頻道內容最后的修改日期。遵循RFC 822 Wed, 04 Mar 2009 09:42:31 GMT
<category> 頻道所屬的一個或幾個類別。詳見后文。 Html
<generator> 生成該頻道的程序名字符串。 Bobopo Site Generator 2009
<docs> 解釋當前RSS文件的文檔的Url。(給不知道啥是RSS的某人看:) http://www.bobopo.com/code/rss.htm
<cloud> 允許進程注冊為“cloud”,頻道更新時通知它,為 RSS 提要實現了一種輕量級的發布-訂閱協議。詳見后文。 詳見后文。
<ttl> 內容有效期,一個數字,指明該頻道可被緩存的最長分鐘數。 60
<image> 指定一個 GIF或JPEG或PNG圖片,用以與頻道一起顯示。詳見后文。 詳見后文。
<rating> 內容分級,主要指成人、限制、兒童等,多數情況不用,如果要用參見PICS  
<textInput> 定義可與頻道一起顯示的輸入框。多數情況不用。詳見后文。  
<skipHours> 提示新聞聚合器,哪些小時時段它可以跳過。可包含最多24個<hour>子節點,它的值是0~23中的一個數字。 <hour>2</hour>
<hour>3</hour>
<skipDays> 提示新聞聚合器,那些天它可以跳過。可包含最多7個<day>子節點,它的值是Monday、Tuesday、Wednesday、Thursday、Friday、Saturday或Sunday之一。 <day>Saturday</day>
<day>Sunday</day>

<item>

<item>的任何一個子節點都是可選的,但是<title>和<description>至少要被包含一個。

項目說明舉例
<title> 項目的名稱。 RSS簡介。
<link> 項目的Url。 http://www.bobopo.com/article/rss.htm
<description> 項目的摘要。 RSS(簡易資訊聚合)是一種消息來源格式規范,用以發布經常更新資料的網站,例如部落格文章、新聞、音訊或視訊的網摘。RSS文件(或稱做摘要、網絡摘要、或頻更新,提供到能道)包含了全文或是節錄的文字,……
<author> 作者的Email地址。通常忽略。 rosbicn@hotmail.com
<category> 頻道所屬的一個或幾個類別。詳見后文。 Html
<comments> 與此項目相關的評論的Url。 http://www.bobopo.com/comments/rss.htm
<enclosure> 此項目相關的多媒體附件。屬性url表示附件網址,屬性length表示附件字節數,屬性type表示附件的MIME類型。 <enclosure url="http://www.bobopo.com/video/rss.mp3" length="16131450" type="audio/mpeg" />
<guid> 項目的唯一識別碼。詳見后文。 http://www.bobopo.com/article/rss.htm
<pubDate> 項目的發布日期。遵循RFC 822 Wed, 04 Mar 2009 00:00:01 GMT
<source> 項目來源于哪個Rss頻道。如果一個Rss是從其他Rss轉貼過來,可以用這個。必須包含屬性url,指向另外一個rss。 <source url="http://www.blabla.cn/rss.xml">Blabla</source>

<item>中支持Html格式的<description>

<item>的子節點<description>可以只包含項目的摘要,也可以是項目全文。它的值是Text類型,或者是一個實體編碼的HTML類型(entity-encoded HTML)。所謂實體編碼的HTML類型,指的是HTML的保留字(實體)都進行了編碼處理。舉例如下:

示例1:對HTML標記進行編碼。

<description>this is &lt;b&gt;bold&lt;/b&gt;</description> 

結果:this is bold

示例2:HTML標記放在CDATA段中編碼。

<description><![CDATA[this is <b>bold</b>]]></description> 

結果:this is bold

示例3:對尖括號進行編碼

<description>5 &amp;lt; 8, ticker symbol&amp;lt;BIGCO&amp;gt;</description>

結果:5 < 8, ticker symbol <BIGCO>

示例4:尖括號放在CDATA段中編碼。

<description><![CDATA[5 &lt; 8, ticker symbol &lt;BIGCO&gt;]]></description>

結果:5 < 8, ticker symbol <BIGCO>

<category>

<category>是<channel>的可選子節點,也是<item>的可選子節點,用來表示頻道或者內容的類別。一個節點表示一個類別,如果是多個類別,可以用多個<category>節點來表示。如果該類別有專門的Url表示,可以用屬性domain來表示。

示例如下,

<category>編程</category>
<category domain="http://www.bobopo.com/html/">Html</category>

<category>有點類似很多網站中的標簽(Tag)。

<guid>

guid是全球唯一識別碼的意思,用來唯一確定Rss項目的字符串。現在,一個新聞聚合器往往用這個字符串來判斷某個項目是不是新的。

guid并沒有什么語法上面的規定,新聞聚合器肯定把它視作字符串。建立這個字符串的唯一性取決于項目的內容。往往用項目相關的Url來做guid。

如果<guid>包含屬性isPermaLink,并且屬性值是true,新聞聚合器會把<guid>的值當做當前項目的永久連接,也就是能夠在瀏覽器中打開,連接到項目全文的Url。isPermaLink是可選屬性,缺省值是true,也就是說,如果包含了isPermaLink,只有明確寫明值是false,才表示<guid>的值不是Url。

<guid isPermaLink="true">http://www.bobopo.com/article/rss.htm</guid>

<cloud>

這個東西主要是給HTTP-POST、XML-RPC或者SOAP 1.1這類的Web Service用的。如果真的要用,請看這里

項目說明舉例
<domain> 必須。cloud程序所在機器的域名或IP地址。 rpc.bobopo.com
<port> 必須。訪問cloud程序所通過的端口。 80
<path> 必須。程序所在路徑,不一定需要是真實路徑。 /RPC2
<registerProcedure> 必須。 注冊的可提供的服務或過程。 cloud.rss
<protocol> 必須。協議,http-post、xml-rpc、soap之一。 xml-rpc

示例如下,

<cloud domain="rpc.bobopo.com" port="80" path="/RPC2" registerProcedure="cloud.rss" protocol="xml-rpc" />

<image>

項目說明舉例
<url> 必須。表示該頻道的Gif、Jpeg或Png圖像的Url。 http://www.bobopo.com/style/images/bobopo.gif
<title> 必須。圖象描述。當頻道以Html呈現時用作<img>標簽的alt屬性。 程序員的波波坡。
<link> 必須。站點Url,當頻道以Html呈現時,該圖像會鏈接到此。 http://www.bobopo.com
<width> 可選。 數字,圖象的像素寬度,最大值144,默認值為88。 120
<height> 可選。 數字,圖象的像素高度,最大值400,默認值為31。 120
<description> 可選。 當頻道以Html呈現時,作為圍繞著該圖像形成的鏈接Tag的title屬性。 包含編程、休閑、知識、雜記的程序員站點。

上述<title>和<link>多數情況下會與<channal>的<title>和<link>相同。

<textInput>

用戶可以用<textInput>讓讀者進行一次搜索引擎的搜索,或者提交一個反饋。不過大多數情況都是忽略這個東西。

項目說明
<title> 必須。輸入框中Submit按鈕上的文字。
<description> 必須。輸入框的解釋。
<name> 必須。輸入框對象的名字。
<link> 可選。 輸入框提交的Url。

RSS 2.0代碼示<?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>
<lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Weblog Editor 2.0</generator>
<managingEditor>editor@example.com</managingEditor>
<webMaster>webmaster@example.com</webMaster>
<item>
<title>Star City</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link>
<description>How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's &lt;a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm"&gt;Star City&lt;/a&gt;.</description>
<pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid>
</item>
<item>
<description>Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a &lt;a href="http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm"&gt;partial eclipse of the Sun&lt;/a&gt; on Saturday, May 31st.</description>
<pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid>
</item>
<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>


我的另一篇博文有講怎么用C# 3.5、4.0來生成和解析rss 詳見:用C#實現RSS的生成和解析,支持RSS2.0和Atom格式

 


文章列表


不含病毒。www.avast.com
全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()