Skip to content
Iacob edited this page Dec 20, 2010 · 1 revision

RSS 2.0 規範

什麼是RSS

RSS是一種web內容格式標準.

RSS是XML的一種.遵從XML1.0標準.

在最高層,RSS起始於<RSS>.此標記包含屬性”version”,如某RSS文檔符合本標準,則version值應為2.0

<RSS>元素的下屬元素為一個單一的<channel>元素,此中包含了此頻道的相關信息

關於本文檔

本文介紹的是2002年制定的RSS2.0.1標準.

此標準基於RSS0.91並融合了對以往標準的修改和一些新特性.

本文首先介紹的是<channel>的必要和非必要元素,然後是<item>,本文的最後一節為常見問題的解答和下一版本的簡單 介紹

<channel>的必要子元素

一,<title>:

頻道的名稱

例如:

GoUpdate.com news HeadLines

二,<link>:

此頻道的相關鏈接

例如:

三,<description>:

頻道的簡單描述

例如:

The Latest News from GoUpdate.com

<channel>的可選子元素

一,<language>:

本頻道使用的語言

例如:

en-us

二,<copyright>:

版權聲明

例如:

copyright 2002,spartanburg Herald-journal

三,<managingEditor>:

責任編輯的E-Mail

例如:

geo@herald.com(George Matesky)

四,<webMaster>:

技術問題負責人的E-Mail地址

例如:

betty@herald.com(Betty Guernsey)

五,<pubDate>:

本頻道內容的發佈時間,日期和時間都應遵從RFC822標準

例如:

Sat,07 sep 200200:00:01 GMT

六,<lastBuildDate>:

本頻道的最後更新時間

例如:

Sat,07 Sep 2002 09:42:31 GMT

七,<category>:

本頻道的所屬類型,同<item>的<catalog>意義相同,詳細介紹見下文

比如:

<catalog>Newspagers</catalog>

八,<generator>:

生成本頻道所用的軟件

例如:

MightyInHouse Content System v2.3

九,<docs>:

關於本文件使用的RSS格式的相關文檔

十,<cloud>:

註冊一個用於頻道更新的cloud協議,詳細介紹間見下文

例如:

<cloud domain=”rpc.sys.com” port=”80″ path=”RPC2/” registerProcedure=”pingMe” protocol=”soap”/>

十一,<ttl>:

ttl(time to alive)表示用戶從本服務器得到的本頻道內容的保留時間,此元素的值以秒為單位,超過此時限自動刷新.詳細介紹見下文

例如:

<ttl>60</ttl>

十二,<image>:

指定一個與本頻道相關的GIF,JPEG或PNG圖片,詳細介紹見下文

十三,<rating>:

本頻道的PICS級別識別

十四,<textInput>:

顯示一個與本頻道相關的文本輸入框,詳細介紹見下文

十五,<skipHours>:

告知用戶在此時段內得不到網站內容,詳細介紹見下文

十六,<skipDays>:

告知用戶在此日期內得不到網站內容,詳細介紹見下文

子元素<image>:

<image>包含下面三個必要子元素

一,<url>:描述此頻道的GIF,JPEG或PNG圖片的URL

二,<title>:此圖片的相關描述

三,<link>:圖片上的鏈接

<image>的可選子元素

<width>和<height>:標出圖片的寬與高,單位為像素,width的最大值為144,默認為88,height的最 大值為400,默認為31.

子元素<cloud>:

指定一個rssCloud服務,此服務可以HTTP-POST,XML-RPC或SOAP1.1形式構成.

此服務目的是使用輕量級通訊協議來進行更新提醒

例如:

<cloud domain=”rpc.sys.com” port=”80″ path=”RPC2/” registerProcedure=”myCloud.rssPleaseNotify” protocol=”xml-RPC” />

上述例子中表示向rpc.sys.com的80端口的”/RPC2″路徑發送XML_RPC訊息,以myCloud.rssPleasyNotify為過 程名.

子元素<textInput>:

<textInput>包含下列四個必要的必要的子元素:

一,<title>:提交按鈕上的文本

二,<description>:文本輸入框的描述

三,<name>:文本框內文字集合的名稱

四,<link>:文本提交後用於處理此文本的CGI角本的URL.

<item>的子元素 一個<channel>可以包含多個<item>,每個<item>都可看作一篇文章,<item>的所有子元素都是非必要的

一,<title>:

條目(item)的標題

二,<link>:

條目所對應的URL

三,<description>:

文章之概要

四,<author>:

文章作者的E-Mail地址,詳細介紹見下文

五,<category>:

文章的分類,詳細介紹見下文

六,<comments>:

文章評註的URL,詳細介紹見下文

七,<enclosure>:

文章的附件,詳細介紹見下文

八,<guid>:

本條目的唯一標識,詳細介紹見下文

九,<pubDate>:

此條目發佈的時間,詳細介紹見下文

十,<source>

本條目所屬的頻道,詳細介紹見下文

子元素<source>:

此元素值為此條目的來源,可參照<title>的值來設定,此元素有一個必要的屬性”url”,此屬性的值為本條目來源的URL.

比如:

<source url=”http://www.domain.com/some-xml.xml”>XML News</source>

此元素用來標出文章的出處

子元素<enclosure>

此元素素三個必要屬性,url為附件所在的http url,length為附件的大小,type為附件的類型,使用標準的MIME類型

比如:

<enclosure url=”http://www.domain.com/some-mp3.mp3″ length=”12216320″ type=”audio/mpeg” />

子元素<category>

此元素包含一個非必要屬性domain,指向一個分類方法,此子元素的值為以正斜槓分開的字符串.可用分類處理程序整理這些分類

比如:

<category>Grateful Dead</category>

<category domain=”http://www.domain.com/path”>CATEGORY</category>

可以放置任意多個<category>,可以使用任意多個domain,也可以關聯一個domain的多個類別.

子元素<pubDate>

此元素值為一個遵從RFC822的時間,如果此時間在當前時間之後,此條目也許不被顯示.

比如:

<pubDate>Sun,19 May 2002 15:21:36 GMT</pubDate>

子元素<guid>

<guid>是一個全局唯一的標示,RSS收集器可通過此元素尋找新寫入的條目

比如:

<guid>的值沒有標準,RSS器將其視為字符串.

如<guid>包含一個屬性”isPermaLink”且屬性值為true,此guid則被看作一個url並且可以被打開

子元素<comments>

此元素值為本文之評註的URL

子元素<author>

此元素為本文作者的E-Mail,如果RSS源為報紙或雜誌,則此元素值為本條目的<link>子元素所指文章的作者,如用於某人的blog則<author>可以被省略.

附註:

RSS限定從<link>和<url>值的第一個非空白字符處開始分析,這兩個元素的值應為一個URI架構開始,例如http:

在RSS0.91版中,許多元素值被限制在500或100個字符之內,爾且0.91版RSS的<channel>內的< item>元素不能多過15個.在0.92以上的RSS版本中不會再有這些限制,可使用RSS收集器自行設置.

RSS2.0為頻道提供了分類系統,上文已提到此功能,例如某一頻道使用分類系統”Syndic8″,就可以在此<channel>元素下使 用category子元素並將屬性domain設置為”Syndic8″,這個條目的category元素應寫為<category domain=”Syndic8″>1765</category>.

經常有人問起<guid>和<link>是否意義相同,答案是在一些系統上是相同的,但在不少系統上是不同的,在一些系統中, <link>指向一個weblog條目,但在另外的系統中,<link>直接指向文章,<guid>指向 weblog入口.一般來說,建議給出guid,最好賦於其文章的永久連接地址,可以使得RSS收集起每次更新不用下載全部文章.

RSS的擴充

RSS於1999年制定,計畫將其擴充成一個簡單,易懂且嚴謹的標準.待RSS成為一種流行的格式後,開發人員計畫利用namespace模組來為其擴充.

RSS2.0使用一個簡單的方法加入了此項功能,一個RSS源可以把一些內容放入namespace爾不顯示在正文里.

後續版本展望

RSS不是完美的格式,但它非常流行且被廣泛支持,RSS穩固的結構可以使其流行很長時間.此標準計畫被完善成一個不用改變的標準同時培養起一片市場,並 為下一個此類標準的誕生開闢道路.因此RSS標準將被凍結在2.0.1版本,我們可能也會看到2.0.2或2.0.3版本,但只會是簡單的修改,並不會添 加新元素.下面的工作將會是利用namespace開發模組,或是以新的名稱開發新的格式.

版權和作者

本文章使用Attribution/Share Alike Share Creative Common License.本文作者為Dave Winner.Userland軟件公司的創建者

Clone this wiki locally