XML - 数据交换管理/RSS
上一章 | 下一章 |
← RDF - 资源描述框架 | JDNC → |
完成本章后,您将
- 了解 RSS 的基础知识
- 了解 RSS 的历史
- 能够使用 XML 构建 RSS 2.0 文档
- 订阅 RSS 聚合器/阅读器
RSS 是一种简单的 XML 格式,用于联合新闻标题。现在它被定期发布新内容的网站广泛使用,这些网站提供带有最新内容链接的新闻标题列表。诸如新闻提要、事件列表、项目更新、博客作者以及最近的播客、视频和图像分发等内容都可以通过 RSS 进行分发。RSS 提要也被 Google、Yahoo 和 AOL 等主要互联网门户网站使用,供人们个性化并接收他们关心的信息,例如 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 文档必须完全符合 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> | 作者姓名和/或作者电子邮件地址 | [email protected] (Edward Wong) |
<pubDate> | 项目发布的日期/时间 | Sun, 07 Nov 2004 00:00:00 EDT |
<guid> | 是唯一标识项目的字符串。聚合器可以使用它来确定项目是否为新项目。 | http://www.nytimes.com/2004/11/07/international/middleeast/07cnd-iraq.html |
其他包括
源代码、附件、类别和评论。(参见 哈佛法学院)。
一个项目可以是频道的一个子节点或兄弟节点。
"子节点"
|
"兄弟节点"
|
更多可选元素请访问 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 版本在将播客分发给订阅者以及分发 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 信息
今日美国 - 今日美国