XML - 資料交換管理/RSS
| 上一章 | 下一章 |
| ← RDF - 資源描述框架 | JDNC → |

完成本章後,您將
- 瞭解 RSS 的基礎知識
- 瞭解 RSS 的歷史
- 能夠使用 XML 構建 RSS 2.0 文件
- 訂閱 RSS 聚合器/閱讀器
RSS 是一種簡單的 XML 格式,用於聯合新聞標題。它現在被定期釋出新內容的網站廣泛使用,並提供標題列表,連結到其最新內容。諸如新聞源、事件清單、專案更新、博主以及最近的播客、影片和影像分發等內容都可以透過 RSS 分發。Google、Yahoo 和 AOL 等主要網際網路入口網站也使用 RSS 訂閱,讓使用者可以個性化並接收他們關心的資訊,例如 MyYahoo。
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 規範的未來發展。以下表格描述了每個版本、所有者、優缺點,以及其當前狀態和使用建議。
| 版本 | 所有者 | 優點 | 狀態 | 建議 |
|---|---|---|---|---|
| 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、.XML 和 .RDF。所有 RSS 文件都必須 100% 符合 XML 規範,並以 XML 宣告開頭。要識別 RSS 文件,頂層以 <rss> 元素開頭,後跟一個強制的版本屬性,該屬性指定 RSS 版本。<rss> 元素的子元素是單個 <channel> 元素,其中包含對頻道的簡要描述。以下來自紐約時報的 RSS(2.0) 示例。
Exhibit 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
The <channel> 元素有三個強制元素和幾個可選元素。
強制性 <channel> 元素
| 元素 | 描述 | 示例 |
| <title> | 頻道的名稱 | "紐約時報" |
| <description> | 頻道的簡要描述 | 紐約時報 > 最新訊息、世界新聞多媒體 |
| <link> | 與頻道關聯的網站的 URL | http://www.nytimes.com/index.html |
可選 <channel> 元素
| 元素 | 描述 | 示例 |
| <language> | 頻道語言 | en-us |
| <copyright> | 頻道中內容的版權宣告 | Copyright 2004 The New York Times Company |
| <lastBuildDate> | 頻道內容最後更新/更改的時間 | Sun, 7 Nov 2004 13:30:01 EST |
其他可選元素包括:managingEditor、webMaster、pubDate、category、generator、docs、cloud、ttl、image、rating、textInput、skipHours、skipDates。每個元素的要求或子元素請參考 RSS 規範。(參見 哈佛法學院)。以下是影像元素的示例。
<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> 元素必須至少包含一個 <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 |
其他包括
source、enclosure、category 和 comments。(參見 哈佛法學院)。
專案可以是頻道的孩子或兄弟姐妹。
|
"孩子"
|
"兄弟姐妹"
|
更多可選元素訪問 RSS 2.0 規範
RSS 可以分為兩部分:閱讀器/聚合器和源。閱讀器是讀取 RSS 源並以可理解格式呈現其內容的程式。源是包含其 RSS 檔案的網站。RSS 源通常在網頁上用橙色矩形圖示或帶有“RSS”字樣的橙色圖示來標識。要檢視 XML 程式碼,只需點選圖示即可。
網站作者可以透過多種方式為其網站建立 RSS 源:手動建立、使用軟體或使用線上服務。大多數大型網站使用內容管理軟體來生成其 RSS 源。每當網站發生更改時,內容管理軟體都會生成一個包含更改的 RSS 檔案,新增新專案並刪除舊專案。
作為 RSS 訂閱者,您需要一個 RSS 聚合器。透過提供一個 RSS 連結,聚合器將搜尋您訂閱的資訊並顯示它們。例如,您訂閱了紐約時報的體育版塊;每次紐約時報釋出新的體育文章時,文章的標題、描述和 URL 將顯示在您的電腦上。無論何時您線上,聚合器都會搜尋並整理您的興趣列表,並將它們顯示出來。
RSS 聚合器(也稱為 RSS 閱讀器)是一種用於收集、更新和顯示 RSS 源的應用程式。以下是針對不同平臺的 RSS 聚合器的列表,這些聚合器可以在這些平臺上正常執行。
- FeedReader - Windows
- Sharp Reader - Windows(.NET)
- NetNewsWire - Macintosh
- Straw - Linux
- Bloglines - 伺服器端
- NewsHutch - 伺服器端
其他一些包括
- AmphetaDesk - Windows, Macintosh, Linux
- FeedDemon - Windows
- FeedReader - Windows
- NewsGator - Windows(.NET)
- RSS NewsWatcher - Windows
- Radio Userland - Windows, Macintosh
- SlashDock - Macintosh
- PocketFeed - PocketPC
RSS 的未來看起來非常光明,因為 2.0 版本在網際網路行業中變得非常流行,並且在一定程度上已成為 RSS 版本的標準。雅虎最近釋出了其新版本的雅虎地圖,其 API 基於 georRSS 2.0 版本。此版本的雅虎地圖允許使用者編輯地圖上的資訊,這使得地圖和本地搜尋產品更加有效。RSS 2.0 版本也因其在向訂閱者分發播客以及分發谷歌博主產品的內容方面而廣受歡迎。此外,RSS 正被以創新的方式用於搜尋引擎營銷人員向引擎提交時效性內容。Mozilla Firefox 瀏覽器已經包含一個內部 RSS 聚合器,允許使用者在書籤工具欄或書籤選單中檢視 RSS 新聞和部落格標題。這是透過 Mozilla Firefox 的名為“即時書籤”的功能實現的。RSS 在相對較短的時間內迅速成為主流技術,並且毫無疑問已成為網際網路領域的重要參與者。
| 現在,RSS 通常用於網站和部落格等領域,其中 2.0 版本是最流行的標準。RSS 源通常在網頁上用橙色矩形圖示或帶有“RSS”字樣的橙色圖示來標識。要檢視 XML 程式碼,只需點選圖示即可。 |
哈佛法學院技術 - 由伯克曼中心託管的網際網路技術 - RSS 2.0 規範
Dive-into-XML 作者:馬克·皮爾格林 - 什麼是 RSS?
Mozilla Firefox - 即時書籤
蘋果 - 播客
RSS 資訊 - RSS 資訊
今日美國 - 今日美國