跳轉到內容

XML - 資料交換管理/RSS

來自華夏公益教科書



上一章 下一章
RDF - 資源描述框架 JDNC



學習目標

[編輯 | 編輯原始碼]

完成本章後,您將

  • 瞭解 RSS 的基礎知識
  • 瞭解 RSS 的歷史
  • 能夠使用 XML 構建 RSS 2.0 文件
  • 訂閱 RSS 聚合器/閱讀器

RSS 是一種簡單的 XML 格式,用於聯合新聞標題。現在它被定期釋出新內容的網站廣泛使用,這些網站提供帶有最新內容連結的新聞標題列表。諸如新聞提要、事件列表、專案更新、部落格作者以及最近的播客、影片和影像分發等內容都可以透過 RSS 進行分發。RSS 提要也被 Google、Yahoo 和 AOL 等主要網際網路入口網站使用,供人們個性化並接收他們關心的資訊,例如 MyYahoo。

RSS 的含義是什麼?

[編輯 | 編輯原始碼]

RSS 被認為是一個名稱,用來指代三種不同的標準。這三個獨立的分支是 RSS 0.9 分支、RSS 1.0 分支(基於 RDF)和 RSS 2.0,首字母縮略詞被擴充套件為三個不同的名稱:“Really Simple Syndication”(RSS 0.9、2.0),“Rich Site Summary” 和 “RDF Site Summary”(用於 RSS 1.0)。

不同的開發人員在不同的名稱下開發了幾個不同的版本。據 XML.com 稱,已經開發了七個版本的 RSS(參見 什麼是 RSS?)。由於 RSS 被理解為一個指代多種聯合協議的術語,因此這些不同的 RSS 協議有時被指責為“不相容”(參見 RSS 相容性神話)。這對 RSS 閱讀器/聚合器開發者來說是一個重要的問題。

RSS 的第一個版本(版本 0.90)由 Netscape 在 1999 年釋出。Netscape 開發人員正在設計一種格式,用於建立新聞網站的標題入口網站。在 Netscape 釋出了簡化版本的 RSS 後,他們對開發 RSS 失去了興趣。但是,另一家公司 UserLand Software 接手,旨在將其 RSS 與他們的網路日誌產品和基於網路的寫作軟體一起使用。雖然 UserLand Software 繼續開發版本 0.91,但第三個非商業組織從該公司分離出來,設計了一種基於版本 0.90 的新格式,該格式是一個非簡化版本。這個非商業組織開發的新格式被稱為版本 1.0。與此同時,UserLand Software 對新的 1.0 版本感到憤怒,繼續開發 RSS 併發布了版本 2.0。版本 2.0 已成為領先的 RSS 版本,也是被最廣泛採用的版本。2.0 規範被捐贈給了一個非商業第三方,哈佛法學院。哈佛法學院現在負責 RSS 2.0 規範的未來發展。下表描述了每個版本、所有者、優缺點,以及當前狀態和使用建議。

RSS 版本和建議,表格來源:什麼是 RSS? XML.com
版本 所有者 優點 狀態 建議
0.90 Netscape   被 1.0 棄用 不要使用
0.91 UserLand 非常簡單 被 2.0 正式棄用,但仍然很流行 用於基本聯合。如果您需要更多靈活性,可以輕鬆遷移到 2.0
0.92, 0.93, 0.94 UserLand 允許比 0.91 更豐富的元資料 被 2.0 棄用 改為使用 2.0
1.0 RSS-DEV 工作組 基於 RDF,透過模組擴充套件,不受單一供應商控制 穩定的核心,活躍的模組開發 用於基於 RDF 的應用程式,或者如果您需要高階的 RDF 特定模組
2.0 UserLand 透過模組擴充套件,可以輕鬆從 0.9x 分支遷移 穩定的核心,活躍的模組開發 用於通用、元資料豐富的聯合

RSS 結構

[編輯 | 編輯原始碼]

RSS 文件通常被稱為 RSS 提要,可以有三種不同的副檔名:.RSS、.XML 和 .RDF。所有 RSS 文件必須完全符合 XML 規範,並以 XML 宣告開頭。要識別 RSS 文件,頂級元素以 <rss> 元素開頭,後跟一個必需的 version 屬性,該屬性指定 RSS 版本。<rss> 元素的子元素是單個 <channel> 元素,其中包含對頻道的簡要描述。以下是紐約時報的 RSS(2.0) 示例。

示例 1:RSS 的資料模型

<rss version="2.0">
    <channel>
        <title>NYT > Home Page</title>
        <link> <nowiki>http    //www.nytimes.com/index.html</nowiki> </link>
        <description>New York Times > Breaking News, World News Multimedia</description>
        <copyright>Copyright 2004 The New York Times Company</copyright>
        <language>en-us</language>
        <lastBuildDate>Sun,  7 Nov 2004 13    30    01 EST</lastBuildDate>
        <image>
            <url> <nowiki>http    //www.nytimes.com/images/section/NytSectionHeader.gif</nowiki> </url>
            <title>NYT > Home Page</title>
            <link> <nowiki>http    //www.nytimes.com/index.html</nowiki> </link>
        </image>
        <item>
            <title>Iraq Declares State of Emergency as Insurgents Step Up Attacks</title>
            <link> <nowiki>http    //www.nytimes.com/2004/11/07/international/middleeast/07cnd-iraq.html</nowiki> </link>
            <description> Today's attacks, including three police post raids that killed 21, came a day after insurgents killed at least 30. </description>
            <author> By EDWARD WONG </author>
            <pubDate> Sun, 07 Nov 2004 00    00    00 EDT </pubDate>
            <guid> <nowiki>http    //www.nytimes.com/2004/11/07/international/middleeast/07cnd-iraq.html</nowiki> </guid>
        </item>
    </channel>
</rss>

圖 1-1:紐約時報 - HomePage.xml - RSS 版本 2

<channel> 元素有三個必需元素和幾個可選元素。
必需的 <channel> 元素

元素 描述 示例
<title> 頻道的名稱 "紐約時報"
<description> 頻道的簡要描述 紐約時報 > 最新訊息、世界新聞多媒體
<link> 與頻道關聯的網站的 URL http://www.nytimes.com/index.html


可選的 <channel> 元素

元素 描述 示例
<language> 頻道語言 en-us
<copyright> 頻道中內容的版權宣告 版權所有 2004 紐約時報公司
<lastBuildDate> 頻道內容最後更新/更改的時間 Sun, 7 Nov 2004 13:30:01 EST


其他可選元素包括:managingEditor、webMaster、pubDate、category、generator、docs、cloud、ttl、image、rating、textInput、skipHours、skipDates。每個元素的要求或子元素,請參考 RSS 規範。(參見 哈佛法學院)。以下是 image 元素的示例。

<image> 元素

元素 描述 示例
<link> 專案 URL http://www.nytimes.com/index.html
<title> 圖片標題 NYT > 首頁
<url> 圖片的 URL http://www.nytimes.com/images/section/NytSectionHeader.gif

一個頻道可以包含多個 <item>。一個專案可以代表一個“故事” - 就像報紙或雜誌中的故事一樣;如果是這樣,它的描述就是故事的概要。連結指向完整的故事。一個專案也可以在本身內完整,如果是這樣,描述包含文字(允許實體編碼的 HTML;參見示例),連結和標題可以省略。
每個 RSS 頻道最多可以包含 15 個專案。<item> 元素的所有元素都是可選的,但是,<item> 元素必須至少包含一個 <title> 或 <description> 元素。

<item> 元素

元素 描述 示例
<title> 專案的標題 伊拉克宣佈進入緊急狀態,叛亂分子加劇襲擊
<link> 專案 URL http://www.nytimes.com/2004/11/07/international/middleeast/07cnd-iraq.html
<description> 專案的簡要描述 今天的襲擊,包括三起殺害了 21 名警察的警察哨所襲擊,發生在叛亂分子殺害了至少 30 人的第二天。
<author> 作者姓名和/或作者電子郵件地址 mail@nytimes.com (Edward Wong)
<pubDate> 專案釋出的日期/時間 Sun, 07 Nov 2004 00:00:00 EDT
<guid> 是唯一標識專案的字串。聚合器可以使用它來確定專案是否為新專案。 http://www.nytimes.com/2004/11/07/international/middleeast/07cnd-iraq.html

其他包括
原始碼、附件、類別和評論。(參見 哈佛法學院)。

一個專案可以是頻道的一個子節點或兄弟節點。

"子節點"

<channel>
...
<item>
.....
</item>
</channel>

"兄弟節點"

<channel>
...
</channel>
<item>
.....
</item>

更多可選元素請訪問 RSS 2.0 規範

它是如何工作的?

[編輯 | 編輯原始碼]

RSS 可以分為兩部分:閱讀器/聚合器和提要。閱讀器是讀取 RSS 提要並以易於理解的格式呈現的程式。提要是帶有 RSS 檔案的網站。RSS 提要通常在網頁上用一個橙色的矩形圖示或一個帶有 RSS 字母的橙色圖示來標識。要檢視 XML 程式碼,只需單擊該圖示即可。

建立 RSS 提要

[編輯 | 編輯原始碼]

網站作者可以透過多種方式為其網站建立 RSS 提要;要麼手動進行,要麼使用軟體,要麼使用線上服務。大多數大型網站使用內容管理軟體生成其 RSS 提要。每當網站發生更改時,內容管理軟體就會生成一個包含更改的 RSS 檔案,其中添加了新專案並刪除了舊專案。

訂閱 RSS 提要

[編輯 | 編輯原始碼]

作為 RSS 訂閱者,您需要一個 RSS 聚合器。透過提供 RSS 連結,聚合器會搜尋您訂閱的資訊並顯示它們。假設您訂閱了紐約時報的體育版塊;每當紐約時報發表一篇新的體育文章時,文章的標題、描述和 URL 就會顯示在您的電腦上。無論何時您線上,聚合器都會搜尋並整理您的興趣列表並顯示它們。

RSS 聚合器

[編輯 | 編輯原始碼]

RSS 聚合器(又稱 RSS 閱讀器)是一種用於收集、更新和顯示 RSS 提要的應用程式。下面列出了一些 RSS 聚合器,它們可以在不同的平臺上正常執行。

其他一些包括


RSS 的未來

[編輯 | 編輯原始碼]

RSS 的未來看起來非常光明,因為 2.0 版本在網際網路行業中已變得非常流行,並且在某種程度上已成為 RSS 版本的標準。雅虎最近釋出了其新版本的雅虎地圖,其 API 基於 georRSS 2.0 版本。此版本的雅虎地圖允許使用者編輯地圖上的資訊,這使得地圖和本地搜尋產品更有效。RSS 2.0 版本在將播客分發給訂閱者以及分發 Google 部落格產品內容方面也非常受歡迎。此外,RSS 正在以一種創新的方式被搜尋引擎營銷人員用於向引擎提交時間敏感的內容。Mozilla Firefox 瀏覽器已經包含一個內部 RSS 聚合器,允許使用者在書籤工具欄或書籤選單中檢視 RSS 新聞和部落格標題。這是透過名為“即時書籤”的 Mozilla Firefox 功能實現的。RSS 在相對較短的時間內迅速成為主流技術,並且無疑已成為網際網路領域的重要參與者。

現在,RSS 通常用於網站和部落格等領域,其中 2.0 版本是最流行的標準。RSS 提要通常在網頁上用一個橙色的矩形圖示或一個帶有 RSS 字母的橙色圖示來標識。要檢視 XML 程式碼,只需單擊該圖示即可。

參考資料

[編輯 | 編輯原始碼]

哈佛法學院技術 - 由 Berkman 中心託管的網際網路技術 - RSS 2.0 規範
Mark Pilgrim 編著的深入 XML - 什麼是 RSS?
Mozilla Firefox - 即時書籤
Apple - 播客
RSS 資訊 - RSS 資訊
今日美國 - 今日美國

華夏公益教科書