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> | 作者的姓名和/或作者的电子邮件地址 | [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 |
其他包括
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 信息
今日美国 - 今日美国