客户留言 联系我们
 
首页关于博达企业文化产品与解决方案成功案例服务与技术支持加盟博达
 
客服热线
公司宣传片
博达人专栏
VSB2006官方网站
 
 
RSS 2.0 简单介绍及实例开发介绍
2007-07-12 12:29     点击次数:43 次

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 频道,当把项聚合在一起时非常有用。

――未完待续――

关闭窗口
 
 
 
 
版权