|
RSS介绍 RSS是一种用于共享新闻标题和其他Web内容的XML格式标准和各个平台之间数据交换规范,起源于Netscape的推"Push"技术,将订户订阅的内容传送给他们的通讯协同格式(Protocol)。RSS可以是以下三个解释的其中一个:Really Simple Syndication(真正简单的聚合)、RDF (Resource Description Framework) Site Summary、Rich Site Summary(丰富站点摘要),但其实这三个解释都是指同一种Syndication的技术。 RSS 是 Internet 上连锁内容和元数据的一种格式。通常用于共享标题和到新闻文章的链接。对于新闻文章,真正的文章不一定是共享的,但是关于文章的元数据通常是共享的;这种元数据可以包含标题、URL或者摘要。对于出版商而言,RSS 是一种重要的工具,因为提要可用于连锁内容,并把第三方的内容集成到您的站点中。 RSS 是一种 XML 方言。所有的 RSS 文件必须符合万维网联盟(World Wide Web Consortium,W3C)Web 站点上发布的 XML 1.0 规范。 RSS发展历程 肯定有人还记得IE4刚刚推出来的时候有一个有趣的功能--新闻频道。其功能与Netscape(网景)推出的新闻频道是很相似的(当时Netscape还是市场上领先的浏览器)。为此Netscape定义了一套描述新闻频道的语言,这就是RSS,只不过当时网景公司每况愈下,所以最终也没有发布一个正式的RSS规范(只发布了一个0.9版本)。 而微软也在当时推出了支持自己IE的CDF(Channel Definition Format)数据规格,与RSS非常接近。微软试图用新闻频道的功能把“推”(Push)技术变成一个应用主流,并与Netscape抗衡。不过出乎预测的是,“推”技术自始至终没有找到合适的商业模型,而且伴随着其他各类网络特性的出现,也日益无法显现自身的优势,新闻频道最后也在IE的后续版本中消失了。 新闻频道进入了低谷,但是RSS并没有被业界人士所抛弃。过去两年,Blog从一个专业群体开始,逐步成为了网络上最热门的新话题。而RSS成为了描述Blog主题和更新信息的最基本方法。RSS技术被著名Blogger/Geek戴夫·温那(Dave Winner)的公司UserLand接手,继续开发新的版本,以适应新的网络应用需要。新的网络应用主要就是针对Blog,因为戴夫·温那的努力,RSS升级到了0.91版,然后达到了0.92版,随后在各种Blog工具中得到了应用,并被众多的专业新闻站点所支持。 在广泛的应用过程中,众多的专业人士认识到需要组织起来,把RSS发展成为一个通用的规范,并进一步标准化。一个联合小组根据W3C新一代的语义网技术RDF对RSS进行了重新定义,发布了RSS1.0,并把RSS定义为“RDF Site Summary”。这项工作并没有与戴夫·温那进行有效的沟通,而戴夫则坚持在自己设想的方向上进一步开发RSS的后续版本,也并不承认RSS1.0的有效性。RSS由此开始分化形成了RSS 0.9x和RSS1.0两个阵营,也由此引起了在专业人群中的广泛争论。 因为争论的存在,一直到今天,RSS 1.0还没有成为标准化组织的真正标准。而戴夫·温那却在2002年9月独自把RSS升级到了2.0版本,其中的定义完全是全新的模式,并没有任何RSS1.0的影子。这引发了网络上进一步争议,究竟让一个越来越普及的数据格式成为一个开放的标准,还是被一家公司所定义和控制,成为了争议的焦点。戴夫·温那并没有为自己辩解,他的观点是RSS还需要进一步发展,需要专业人士更明确的定义,但是这也不能消除人们对RSS“被一家商业公司独占”的担心。 RSS版本和推荐 到目前为止,RSS共有RSS0.90、0.91、0.92、0.93、0.94、2.0和1.0一共七种版本,推荐使用的是RSS1.0和RSS 2.0,对于一些基本的站点同步,也可以选用RSS0.91。 从RSS的发展历程可以了解造成今天的这种局面的原因,后果是形成了两个主要的竞争版本:一个基于RDF的RSS1.0,而另一个则不是(RSS0.9x和RSS2.0),但它们两个都共用相同的名字。这是一种可怕的混乱,因为版本号导致人们误认为 2.0 是 1.0 的改进版本,而实际上它们是两个目标完 全不同的规范。另一组开发人员已经下狠心着手解决这种混乱问题,通过定义新的摘要(syndication)规范来与RSS名字的随意性决裂,这个解决方案称为Atom(原子)项目。其实使用哪个版本是无关痛痒的,大多数RSS阅读服务支持所有的RSS版本(有些甚至支持Atom)。 RSS 2.0 的新特性 RSS 2.0 建立在 RSS 0.91 规范的基础上。它是向后兼容的,因此任何处理 RSS 2.0 的工具应该也能够处理 0.91 提要。升级后的规范增加了少量元素,比如 <cloud> 和 <guid> 。 它也去掉了一些限制。在过去, <link> 和 <url> 元素只能是 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 文件由一个 <channel> 元素及其子元素组成。除了频道内容本身之外, <channel> 还以项的形式包含表示频道元数据的元素 —— 比如 <title> 、 <link> 和 <description> 。项通常是频道的主要部分,包含经常变化的内容。 频道channel 频道一般有三个元素,提供关于频道本身的信息: <title> : 频道或提要的名称。 <link> : 与该频道关联的 Web 站点或者站点区域的 URL。 <description> : 简要介绍该频道是做什么的。 许多频道子元素都是可选的。 常用的 <image> 元素包含三个必需的子元素: <url> : 表示该频道的 GIF、JPEG 或 PNG 图像的 URL。 <title> : 图象的描述。当频道以 HTML 呈现时,用作 HTML <image> 标签的 ALT 属性。 <link> : 站点的 URL。如果频道以 HTML 呈现,该图像作为到这个站点的链接。 <image> 还有三个可选的子元素: <width> : 数字,表示图象的像素宽度,最大值是 188,默认值为 88。 <height> : 数字,表示图象的像素高度。最大值是 400,默认值为 31。 <description> : 包含文本,在呈现时可以作为围绕着该图像形成的链接元素的 title 属性。 此外还可以使用许多其他可选的频道元素。多数都是不言自明的: <language> : en-us <copyright> : Copyright 2003, James Lewin <managingEditor> : dan@spam_me.com (Dan Deletekey) <webMaster> : dan@spam_me.com (Dan Deletekey) <pubDate> : Sat, 15 Nov 2003 0:00:01 GMT <lastBuildDate> : Sat, 15 Nov 2003 0:00:01 GMT <category> : ebusiness <generator> : Your CMS 2.0 <docs> : http://blogs.law.harvard.edu/tech/rss <cloud> : 允许进程注册为“cloud”,频道更新时通知它,为 RSS 提要实现了一种轻量级的发布-订阅协议。 <ttl> : 存活时间是一个数字,表示提要在刷新之前缓冲的分钟数。 <rating> : 关于该频道的 PICS 评价。 <textInput> : 定义可与频道一起显示的输入框。 <skipHours> : 告诉聚集器哪些小时的更新可以忽略。 <skipDays> : 告诉聚集器那一天的更新可以忽略。 项 item 项通常是提要中最重要的部分。每个项都可以关于某个 weblog、完整文档、电影评论、分类广告或者任何希望与频道连锁的内容的记录。频道中的其他元素可能不变,但项经常发生变化。 您可以有任意多个项。以前的规范限值为 15 个项,如果要保持向后兼容这仍然是一个很好的上限。 新闻项的元素 每个项通常包含三个元素: <title> : 这是项的名称,在标准应用中被转换成 HTML 中的标题。 <link> : 这是该项的 URL。title 通常作为一个链接,指向包含在 <link> 元素中的 URL。 <description> : 通常作为 link 中所指向的 URL 的摘要或者补充。 所有的元素都是可选的,但是一个项至少 要么 包含一个 <title> ,要么包含一个<description> 。 项还有其他一些可选的元素: <author> : 作者的 e-mail 地址。 <category> : 支持有组织的记录。 <comments>: 关于项的注释页的 URL。 <enclosure> : 支持和该项有关的媒体对象。 <guid> : 唯一与该项联系在一起的永久性链接。 <pubDate>: 该项是什么时候发布的。 <source> : 该项来自哪个 RSS 频道,当把项聚合在一起时非常有用。
――未完待续――
|