RSS是一種網頁內容聯合格式(web content sydication format)。
它的名字是Really Simple Syndication的縮寫。
RSS是XML的一種。所有的RSS文件都遵循XML 1.0規範,該規範發佈在W3C網站上。
在一個RSS文件的開頭是一個<rss>節點和一個規定的屬性version,該屬性規定了該文件將以RSS的哪個版本表示。如果該文檔以這個規格來表示,那麼它的version屬性就必須等於2.0。
在<rss>節點的下一層是一個獨立的<channel>節點,該節點包含關於channel的資訊和內容。
關於本文檔該文件是在2002年秋天撰寫的,當時的RSS版本為2.0.1。
它包含從RSS 0.91規範(2000年)開始的所有的修改和添加,以及包含在RSS 0.92(2000年12月)和RSS 0.94(2002年8月)中的新的特性。
必需的頻道節點以下有一份必須包含的頻道(channel)節點的列表,每一個都有一個簡單的描述、一個例子、應該出現的位置和更詳細描述的超連結。元素 | 描述 | 範例 |
title | 頻道(channel)名稱。它可以告訴別人如何存取你的服務。如果你有一個與你的RSS檔案內容一致的HTML網站,你的title元素值應該與你的網站的標題相同。 | GoUpstate.com News Headings |
link | 響應該頻道的網站的URL | http://www.goupstate.com/ |
description | 關於該頻道的描述 | The latest news from GoUpstate.com, a Spartanburg Herald-Joural Web Site |
下面是可選的頻道元素列表
節點 | 描述 | 範例 |
language | 使用的語言。這允許聚合器對所有的義大利語網站分組。 | en-us |
copyright | 版權聲明 | Copyright 2002, Spartanburg Herald-Journal |
managingEditor | 內容負責人的Email | [email protected] (George Matesky) |
webMaster | 技術人員的Email | [email protected] (Betty Guernsey) |
pubDate | 內容的發佈時間 | Sat, 07 Sep 2002 00:00:01 GMT |
lastBuildDate | 最後更新時間 | Sat, 07 Sep 2002 09:42:31 GMT |
category | 指定該頻道所屬的一個或多個分類。遵循與item級category元素相同的規則。 | <category>Newspapers</category> |
generator | 產生該頻道的程式名稱 | MightyInHouse Content System v2.3 |
docs | 指向rss格式文檔的url位址? | http://blogs.law.harvard.edu/tech/rss |
cloud | 允許所有進程註冊一個cloud用於獲得頻道的更新通知,並為rss種子實現一個輕量級的發布訂閱協議。 | <cloud domain=rpc.sys.com port=80 path=/RPC2 registerProcedure=pingMe protocol=soap/> |
ttl | ttl是Time to live的縮寫。它指示cache的有效保存時間。 | <ttl>60</ttl> |
image | 與頻道一起顯示的圖片地址 | |
rating | 該頻道的統計圖片地址 | |
textInput | 指定一個textbox與該頻道一起顯示 | |
skipHours | 告訴使用者哪些時段是可以忽略的 | |
skipDays | 告訴使用著哪些天是可以忽略的 |
<image>是一個可選的<channel>子節點,該節點包含三個必需的子元素和三個可選的子元素。
<url>是GIF、JPEG或PNG影像檔案的URL位址,該影像代表整個頻道
<title>用來描述上面的圖像,等同於HTML語言中的<img>的alt屬性
<link>是要連接的網站的url,當顯示頻道時,影像的連接指向該網站。
<title>和<link>應該與頻道的<title>和<link>有相同的值
可選的節點包括<width>和<height>,它們是數字類型,指定影像的寬度和高度,單位為像素
<description>就是link的TITLE屬性中文本,它會在呼叫網頁時顯示出來。
影像寬度的最大值為144,預設值為88
影像高度的最大值為400,預設值為31
<channel>子節點<cloud><cloud>是一個可選的<channel>子節點。
它指定一個可以支援rssCloud介面的web服務,rssCloud介面可以用HTTP-POST,XML-RPC或SOAP1.1實作。
它的目的是允許通知註冊為cloud的進程頻道被更新,從而實現一個輕量級的發布訂閱協定。
<clouddomain=rpc.sys.comport=80path=/RPC2registerProcedure=myCloud.rssPleaseNotifyprotocol=xml-rpc/>在這個例子中,為了請求頻道通知,你需要發送一個XML-RPC訊息到rpc.sys.com的80連接埠,路徑為/RPC2。呼叫的過程為myCloud.rssPleaseNotify。
<channel>子節點<ttl><ttl>是一個可選的<channel>子節點。
ttl是time to live的縮寫。它表示頻道在刷新前應該被快取的時間。這使得rss來源可以被一個支援檔案共享的網路所管理,例如Gnutella
例如:<ttl>60</ttl>
<channel>子節點<textInput>
<textInput>是<channel>的可選的子節點,<textInput>包含四個子節點。<title>--提交按鈕的標籤
<description>--該文字輸入區的描述
<name>--文字輸入區的名稱
<link>--處理文字輸入的CGI腳本的URL
使用<textInput>的目的有些神祕(?)。你可以用它提供一個搜尋引擎輸入框,或讓讀者提供回饋資訊。許多聚合器忽略該節點。
<item>的節點一個頻道可以包含許多項目(item)節點。一個項目可以代表一個故事――比如說一份報紙或雜誌上的故事,如果是這樣的話,那麼項目的描述則是故事的概要,項目的連結則指向整個故事的存放位置。專案的所有節點都是可選的,但是至少要包含至少一個標題(title)和描述(description)。
節點 | 描述 | 範例 |
title | item的標題 | Venice Film Festival Tries to Quit Sinking |
link | item的URL | http://www.nytimes.com/2002/09/07/movies/07FEST.html |
description | item概要 | Some of the most heated chatter at the Venice Film Festival this week was about the way that the arrival of the stars at the Palazzo del Cinema was being staged. |
author | 作者的email地址 | [email protected] |
category | item可以包含在一個或多個分類中 | Simpsons Characters |
comments | 與item相關的評論的地址 | http://www.myblog.org/cgi-local/mt/mt-comments.cgi?entry_id=290 |
enclosure | 附加的媒體對象 | |
guid | 可以唯一確定item的字串 | http://inessential.com/2002/09/01.php#a2 |
pubDate | item發佈的時間 | Sun, 19 May 2002 15:21:36 GMT |
source | rss頻道來源 | Quotes of the Day |
<source>是<item>的可選節點。
它的值是item來自的rss頻道的名稱,從item的title衍生而來。它有一個必須包含的屬性url, 該屬性連結到XML序列化來源。
<sourceurl=http://static.userland.com/tomalak/links2.xml>Tomalak'sRealm</source>此節點的功能是提高連結的聲望,進一步推廣新聞專案的來源。它可以用在聚合器的Post命令中。當從聚合器透過webblog存取一個item時,<source>能夠自動被產生。
<item>子節點<enclosure> <enclosure>是<item>的選用節點。它有三個必要的屬性。 url屬性指示enclosure的位置,length指出它的位元組大小,type屬性指出它的標準MIME類型
url必須為一個http url。
<enclosureurl=http://www.scripting.com/mp3s/weatherReportSuite.mp3length=12216320type=audio/mpeg/>
<item>子節點<category> <category>是<item>的可選節點。它有一個可選屬性或域,該屬性是一個用來定義分類法的字串。
這個節點的值是一個正斜線分割的字串,它用來在指定的分類法中辨識一個分級位置(hierarchic location)。處理器可以為分類的識別建立會話。 (Processors may establish conventions for the interpretation of categories)下面有兩個例子:
<category>GratefulDead</category>
<categorydomain=http://www.fool.com/cusips>MSFT</category>你可以根據你的需要為不同的網域(domain)包含很多category節點,並且可以在相同網域的不同部分擁有一個前後參照的item。
<item>子節點<pubDate> <pubDate>是<item>的選用節點。它的值是item發布的日期。如果它是一個沒有到達的日期,聚合器在日期到達之前可以選擇不顯示該item。
<pubDate>Sun,19May200215:21:36GMT</pubDate> <item>子節點<guid>
<guid>是<item>的可選節點。
guid是globally unique identifier的縮寫。它是一個可以唯一識別item的字串。當item發布之後,聚合器可以選擇使用該字串判斷該item是否是新的。
<guid>http://some.server.com/weblogItem3207</guid>
guid沒有特定的語法規則,聚合器必須將他們視為字串。產生具有唯一性的字串guid取決於種子的源頭。
如果guid節點有isPermaLink屬性,且值為真,讀取器就會認為它是item的permalink。 permalink是一個可在web瀏覽器中開啟的url鏈接,它指向<item>節點所描述的全部item。
<guid isPermaLink=true>http://inessential.com/2002/09/01.php#a2</guid>
isPermaLink是可選屬性,預設值為真。如果值為假,guid將不會被認為是一個url或指向任何物件的url。
<item>子節點<comment> <comment>是<item>的可選節點。如果出現,它指向該item評論的url
<comments>http://rateyourmusic.com/yaccs/commentsn/blogId=705245&itemId=271</comments>
<item>子節點<author> <author>是<item>的可選節點。它是item的作者的email。對於透過rss傳播的報紙和雜誌,作者可能是寫該item所描述的文章的人。對於聚集型webblogs,作者可能不是責任編輯或站長。對於個人維護的webblog,忽略<author>節點是有意義的。
<author>[email protected] (Lawyer Boyer)</author>