连锁成为主流
James Lewin
(jim@lewingroup.com)
总裁, The Lewin Group
2004 年 1 月
自从 developerWorks 上一次考察 RSS 以来,RSS 世界已经发生了很大变化:出现了两种新的规范,RSS 已成为最流行的 XML 标准之一,涌现出了大量的工具和提要(feed)。RSS 为 weblog 的迅速崛起做出了贡献,并且正在成为其他 Web 站点的标准部分。本文回顾 RSS 2.0,考察了 RSS 的新发展,帮助您迅速理解这种重要的格式。
自从我上一次为 developerWorks 撰写关于 RSS 的文章以来,“An introduction to RSS news feeds”,时间已经过去了三年。当时,RSS 是比较流行的 XML 应用之一。后来,Netscape 放弃了这种格式,出现了 5 种(都算上有 5 种)新版本的 RSS 规范,关于这种格式还存在严重的分歧。
尽管存在这些缺陷,RSS 还是得到了前所未有的普及。
RSS 无处不在!
今天,您可以发现成千上万的 RSS 提要。Weblog 用户、新闻出版商、政府代理以及许多个人和商业 Web 站点都支持这种格式。Java 技术、PERL、PHP、Python 和其他主要编程语言,都为开发人员提供了处理 RSS 的工具。许多阅读器和聚集器都工作在 Web、桌面甚至 e-mail 客户程序中。RSS 已成为 Internet 上连锁内容和元数据事实上的标准。
本文将观察现行的 RSS 2.0 规范。我不准备讨论格式上丰富多彩的特征以及围绕它的争论,否则就无法讨论其他内容了。
相反,本文将为您提供少量背景知识,考察这种格式的用法,并列出一些比较流行的处理这种格式的工具。文中将讨论这种格式的具体细节,给您一些例子,并说明在开始之前您需要了解哪些东西。最后,本文将涉及到 RSS 2.0 的一些新特性。在文章的最后,您将找到丰富的矿藏 —— 一份长长的、带有注释的 RSS 参考资料列表。
“RSS”究竟代表什么?
这要看您问的是谁!
和许多标准一样,即使最基本的方面也很难让人们达成一致。有人说它表示 “RDF Site Summary(RDF 站点摘要)”,其他人则说是“Really Simple Syndication(真正简单的连锁)”,还有人相信它代表 “Rich Site Summary(丰富站点摘要)”。
根据 Dave Winer(他是现行规范的作者)的观点,“关于 RSS 代表什么没有一致的看法,它不是一个首字母缩写词,而是一个名称。规范的最新版本可能称它是缩写词,但愿不会影响到太多应用程序。”
无论如何,RSS 都代表一件事 —— 在 Internet 上连锁内容的一种格式。
|
什么是 RSS?
RSS 是 Internet 上连锁内容和元数据的一种格式。通常用于共享标题和到新闻文章的链接。对于新闻文章,真正的文章不一定是共享的,但是关于文章的元数据通常是共享的;这种元数据可以包含标题、URL或者摘要。对于出版商而言,RSS 是一种重要的工具,因为提要可用于连锁内容,并把第三方的内容集成到您的站点中。
RSS 是一种 XML 方言。所有的 RSS 文件必须符合万维网联盟(World Wide Web Consortium,W3C)Web 站点上发布的 XML 1.0 规范。
下面是一个典型的例子,说明了如何使用 RSS:
- 一个出版商有一些希望发布的内容。
- 他们为这些内容创建了一个 RSS 频道。
- 在这个频道中包含了关于希望宣传的网页的一些项。
- 这个频道可以被远程应用程序读取并转换成标题和链接。这些链接可以加入到新的 Web 页中或者供专门的读者阅读。
- 人们从不同的站点看到这个链接,单击连接进入最初出版商的网站。
尽管标题连锁是最常见的 RSS 用法,但也可用于其他目的。RSS 在 weblog 社区中是一种非常流行的格式。它也被用于照片簿、分类广告列表、食谱、评论以及跟踪软件包的状态。
RSS 提要在电子商务中用作一种传递信息的方式。比如,Amazon 根据其 Web 服务平台向客户提供新闻提要。从而使您能够在新闻阅读器中了解最畅销的图书,或者在您的 Web 站点中包括关于 Amazon 销售的相关图书的信息。
过去几年中,RSS 在普及性方面有了惊人的增长。Syndic8.com 维护了一个 RSS 频道索引,它的提要列表在两年中加长了大约 1400%。Yahoo 新闻、BBC、Slashdot、LockerGnome、Amazon、CNN、Wired、Rolling Stone 和 Apple Computer 都位于许多最普及的 RSS 提要来源之列。
新闻阅读器
随着新闻提要数量的增加,出现了一种新的软件类型:新闻阅读器。新闻阅读器是个人聚集器 —— 帮助您发现和组织感兴趣的频道列表。一旦选择了频道,您就可以使用阅读器一致的界面查看这些频道。新闻阅读器检查您所感兴趣的频道的更新,并转化成可以浏览的 HTML。
一种流行的新闻阅读器是 BlogExpress:
图 1. 在 BlogExpress 中查看 alphaWorks
BlogExpress 是所谓的“匹萨软件”—— 意思是说,如果您喜欢这个软件,您可以寄给作者一些买匹萨饼的钱。
定制频道
在 BlogExpress 中增加一个频道很容易。比方说,您对追踪 IBM alphaWorks 站点上的活动感兴趣。您要做的第一件事是,取一个要增加的提要:
图 2. 在 alphaWorks 找到的新闻提要
增加一个提要很容易,桔黄色的“XML”标志常用于链接公共 RSS 提要。在多数 Web 浏览器中,您都可以右击“XML”标志复制链接并粘贴到您的新闻阅读器中。
其他常见的新闻阅读器包括 BlogStreet、FeedReader、AmphetaDesk 和 NewsGator (请参阅 参考资料)。
发现 RSS 提要
可以使用搜索引擎查找 RSS 格式的内容。比方说使用 Google 时,您可以在查找中增加“filetype:rss”以搜索 .rss 文件中的查找项。
专门的搜索引擎使内容搜索更加容易。Feedster 监视 weblog 并允许您通过一个日志项索引查找,按照相关性、日期、等级(logrank)查看。当您在搜索时,Feedster 按照您的要求创建一个 RSS 提要。这个提要可以增加到您的新闻阅读器中,以便您能够看到所有与搜索请求有关的最新活动,您甚至不需要离开新闻阅读器。
DayPop 搜索新闻、blog 和 RSS 提要。它让您在 weblog 世界跟踪流行的新闻。它提供了目前最流行的 40 个 weblog 链接。这是全世界最流行文章的链接。它创建了一个 weblog 中所用最热门词汇的列表。它还根据引用对 weblog 评级,提供最受其他 weblogger 欢迎的 weblog 列表。您也可以自定义搜索。评级列表和自定义搜索都有 RSS 提要形式,可以导入您的新闻阅读器。
RSS 2.0 的新特性
RSS 2.0 建立在 RSS 0.91 规范的基础上。它是向后兼容的,因此任何处理 RSS 2.0 的工具应该也能够处理 0.91 提要。升级后的规范增加了少量元素,比如
和
。
它也去掉了一些限制。在过去,
和
元素只能是 http 或 ftp,现在可以使用任何有效的 URI。在 RSS 0.91 中,每个频道只能包含 15 个项,而且元素的长度也有限制,现在这些限制都取消了。不过仍然应该小心使用较大的值,因为它们可能对老的应用程序造成问题。
不过更大的变化是能够使用名称空间扩展这种格式。RSS 2.0 支持名称空间,一种增加规范中没有的元素的标准方法。只要定义在一个名称空间中,提要可以包含新的元素。
RSS 2.0 概述
RSS 是一种 XML 方言,用于连锁 Web 内容和元数据。RSS 0.91 是几种可用版本中最常用的一种。对于新的 RSS 提要,更好的办法是使用 2.0 版,因为这是现行的规范,而且如前所述,它与 0.91 向后兼容。
Dave Winer 编写了规范的 2.0 版。规范的修改可能变得难以使用,或者损害已有的应用程序,他有意识地避免了这种情况。Winer 总结了他的思想:“保持简单。这就是 RSS 的价值所在。任何稍微了解 HTML 的人都能够理解 RSS。这一点极其重要!”
该规范在 Creative Commons 许可下发布(请参阅参考资料)。这意味着您可以免费复制和分发该规范,并进行衍生工作,而且可以自由地用于商业工作。一个咨询委员会负责更新规范、推广规范和编写文档。
RSS 文件形式
RSS 文件由一个
元素及其子元素组成。除了频道内容本身之外,
还以项的形式包含表示频道元数据的元素 —— 比如 http://www.urlofthechannel.com/This channel is an example channel for an article. en-ushttp://www.urlofthechannel.com/images/logo.gifhttp://www.urlofthechannel.com/- http://www.itworld.com/nl/ecom_in_act/11122003/The issue of people distributing and reusing digital media is a problem for many businesses. It may also be a hidden opportunity. Just as open source licensing has opened up new possibilities in the world of technology, it promises to do the same in the area of creative content.
- http://www.itworld.com/nl/ecom_in_act/08202003/More people than ever are downloading music from the Internet. Many use person-to-person file sharing programs like Kazaa to share and download music in MP3 format, paying nothing. This has made it difficult for companies to setup online music businesses. How can companies compete against free?
相关工具
由于 RSS 的普及,出现了许多工具,使您能够基本上在任何环境中使用这些文件:
-
Java 技术:可在 Sun 站点上找到的一个 RSS Utilities Package,支持在 JavaServer Pages 中使用 Tag Library。它还包括一个 RSS 解析器。
-
Perl:已经有几种 Perl 工具处理 RSS。XML::RSS 提供了创建和维护 RSS 文件的一个框架。它支持在常用版本之间的转换。
-
Python:RSS.py 是一组通过 Python 使用 RSS 频道的类。
此外,许多内容管理和 weblog 工具也直接支持 RSS。多数 weblog 工具,包括 Movable Type、Blogger 和 Radio Userland 都支持 RSS。一些内容管理系统,包括 Zope 和 CityDesk 现在也支持它了。
扩展 RSS
RSS 2.0 有许多可选元素,包括多数频道都需要的那些元素。但是它还支持扩展性,因此您可以使用规范中没有的元素。不过,RSS 2.0 规范并没有花费多少时间定义如何实现扩展。关于扩展性,规范中总结为:“RSS 提要可以包含本页中没有描述的元素,只要这些元素定义在一个名称空间中。”
这就留下了很大的想像空间!所幸的是,规范中包含一个例子,您可以参考目前使用的几个例子。
基本的思想是您可以增加需要的标签 —— 但是,增加带有多种含义的元素太容易了。使用您的频道的人们可能并不知道某个标签是什么含义。比如,如果我要在一个频道中使用
标签,它的含义就不很清楚。Web 专家可能认为这个标签指的是 Analog,它是最流行的 Web log 文件分析器。科幻迷可能认为这个标签是关于 Analog 的,一本经典的科幻杂志。音乐家可能认为它指的是流行的合成器类型,生物学家认为这是一种器官,电子工程师认为是一种电路。含糊性使人们很难理解标签的含义。
因此,RSS 允许您增加所喜欢的任何标签,但是要求必须和名称空间一起使用。这样有助于澄清标签的含义。
再回到
的例子,我可能希望创建一组关于电子商务的标签,并让
标签作为一个“e-business”元素。为此,我增加如下的名称空间:
xmlns:ebusiness="http://www.lewingroup.com/ebusinessChannel"
|
这就创建了一个名为“ebusiness”的名称空间,并表明这个名称空间的文档在我的站点上。为了使用
标签,我可以使用这种格式:
。这样就能与其他类似的含义中区分开来,比如
或
。
关于扩展性,一个更实际的例子可以在 RSS 2.0 规范的示例文件中找到:
清单 2. RSS 2.0 规范示例文件中的名称空间
http://www.scripting.com/A weblog about scripting and stuff like that.en-us
http://radio.weblogs.com/0001015/userland/scriptingNewsLeftLinks.opml
- Joshua Allen:
Who loves namespaces?Sun, 29 Sep 2002 19:59:01 GMT
http://scriptingnews.userland.com/backissues/2002/09/29#When:12:59:01PM
|
在这个例子中,定义了一个称为 blogChannel
的名称空间。它指向一个文档,该文档解释了几种常见于 weblog 的新元素的用法。其中之一是
。文档说明,blogroll 是 weblog 中的一个链接集合,指向与您的 weblog 内容相关的站点。
标签提供了用户或软件所需要的信息,知道 blogRoll
是一个定义在 blogChannel
名称空间中的元素,而且可以找到这个文档的位置。
同样,RSS 2.0 只对不 属于规范的元素要求名称空间。所有的基本标签都假定在 RSS 2.0 名称空间中。这使得这种格式更容易使用,因为除非需要扩展 RSS,否则您完全不需要知道名称空间。
结束语
本文考察了 RSS 在内容连锁和聚合领域的重要性。文章主要讨论 RSS 2.0,因为这是最新的规范版本,而且正在迅速普及。本文也考察了处理 RSS 可以使用的工具,包括集聚器、验证程序和解析器。更多信息请参阅参考资料。
参考资料
提要展示:
一些主流提要资源:
在这个例子中,定义了一个称为 blogChannel
的名称空间。它指向一个文档,该文档解释了几种常见于 weblog 的新元素的用法。其中之一是
。文档说明,blogroll 是 weblog 中的一个链接集合,指向与您的 weblog 内容相关的站点。
标签提供了用户或软件所需要的信息,知道 blogRoll
是一个定义在 blogChannel
名称空间中的元素,而且可以找到这个文档的位置。
同样,RSS 2.0 只对不 属于规范的元素要求名称空间。所有的基本标签都假定在 RSS 2.0 名称空间中。这使得这种格式更容易使用,因为除非需要扩展 RSS,否则您完全不需要知道名称空间。
结束语
本文考察了 RSS 在内容连锁和聚合领域的重要性。文章主要讨论 RSS 2.0,因为这是最新的规范版本,而且正在迅速普及。本文也考察了处理 RSS 可以使用的工具,包括集聚器、验证程序和解析器。更多信息请参阅参考资料。
参考资料
提要展示:
一些主流提要资源: