RSS个版本的区别
RSS是“RichSiteSummary”或“ReallySimpleSyndication”的英文首字母缩写,中文称作“简易信息聚合”。RSS是一种基于XML标准,在互联网上被广泛采用的内容包装和投递协议。
RSS技术诞生于1999年的网景公司(Netscape)。当时网景公司定义了一套描述新闻频道的语言,RSS,用于将网站内容投递到NetscapeNavigator互联网浏览器中。但由于公司内部商务决策、当时互联网内容匮乏等诸多原因,网景最终只发布了一个0.9版本的规范。微软当时也推出了类似的数据规格,与RSS非常接近,试图利用新闻频道的架构把“推”(Push)技术变成一个应用主流,捆绑在IE浏览器中与NetscapeNavigator抗衡。不过无奈的是,由于当时互联网访问速度慢、内容缺乏、用户不熟悉等原因,这个“推”技术自始至终没有得到市场的广泛支持。
但是随着时间的推移,RSS技术随着XML技术的发展和博客群体的快速增长,逐渐被人们广泛地接受,其应用范围也已经跳出单纯的博客圈,成为新闻传媒、电子商务、企业知识管理等众多领域的不可缺少的新技术。2001年,RSS技术标准的发展工作被戴夫·温那(DaveWiner)的公司UserLand所接手,继续开发新的版本,以适应新的网络应用需要。通过戴夫·温那的努力,RSS升级到了0.91版,然后达到了0.92版,并随后被众多的专业新闻站点所接受和支持。在广泛的应用过程中,众多的专业人士认识到需要组织起来,把RSS发展成为一个通用的规范,并进一步标准化。一个联合小组根据W3C新一代的语义网技术RDF对RSS进行了重新定义,发布了RSS1.0版,并把RSS定义为“RDFSiteSummary”。这项工作并没有与戴夫·温那进行有效的沟通,而戴夫则坚持在自己设想的方向上进一步开发RSS的后续版本2.0,同时也并不承认RSS1.0的有效性。RSS由此开始分化形成了RSS0.9x/2.0和RSS1.0两个阵营。
戴夫·温那在2002年9月独自把RSS升级到了2.0版本,并交由哈佛大学法学院Berkman互联网和社会学中心进行维护。而RSS1.0版则仍然由W3C联合小组维护。
最近,著名的互联网搜索引擎公司GOOGLE收购了美国大型的博客服务网站www.blogger.com,使这个网站一直采用的一种近似于RSS的技术衍生版Atom一夜之间成为RSS领域标准之争的新的有力竞争对手。目前,这三个技术标准阵营(RSS0.9x/2.0,RSS1.0,Atom0.3)正在展开相互兼容的对话,相信在不久的将来会有积极的结果。
RSS1.0和2.0格式所包含的核心信息相同,但其结构不一样。
RSS1.0的根元素是rdf:RDF,而RSS2.0的根元素是rss。rss还包含一个强制版本属性用以表示所用的RSS的准确格式(可能的值包括:0.91,0.94等)。另一个主要差别是RSS1.0文档有名字空间限定,RSS2.0的文档就没有。不管怎样,包含在两个文档中的信息本质上是一样的。
两个版本都包含channel元素,而channel元素又包含三个必须的元素:title、description和link,其代码如下:
<channel>
<title><!--channel的标题--></title>
<description><!--简要描述--></description>
<link><!--channel的URL--></link>
<!--可选/可扩展元素-->
</channel>
除了这些必须的元素外,RSS1.0还定义了三个附加元素:image、items和textinput,其中,image和textinput是可选的。另一方面,RSS2.0提供了16个附加元素,其中也包括image、items和textinput,此外还有language、copyright、managingEditor、pubDate和category。RSS1.0允许通过定义在单独的XML名字空间中的可扩展元素来创建这种类型的元数据。
这两种格式在结构上的主要区别必须要看其item、image和textinput节点的表示形式。RSS1.0中,channel元素包含对item、image和textinput节点的引用,这些节点存在于channel节点本身之外。这样在channel和所引用的节点之间建立了一种RDF关联。如Figure1所示,channel元素与一个image元素以及两个item元素关联。RSS2.0中,item元素只是在channel元素中连续排放(如Figure2所示)。item元素包含实际的新闻项信息。item的结构在两个版本中是相同的。item元素通常包含title、link和description元素,如下代码所示:
<item>
<title><!--项标题--></title>
<link><!--项URL--></link>
<description><!--简要描述--></description>
<!--可选的/可扩展的元素-->
</item>
在RSS1.0中,title和link是必须的,description是可选的。而在RSS2.0中,title或description必须提供其中的一个;其它均可选。这些只是定义在RSS1.0中的item元素。RSS2.0提供几个其它可选元素,其中有author、category、comments、enclosure、guid、pubDate和source。RSS1.0获取这样的元数据是通过定义在单独的XML名字空间中称为RSS模块的可扩展元素来实现的。例如,在Figure1中,item的日期是用DublicCore模块的<dc:date>元素表示的。
有关不同格式的完整信息请参考RSS1.0和2.0规范。
那么,何为Atom?
Atom乃一项目的名字,主要是开发一个新的网志摘要格式以解决目前RSS存在的问题(混乱的版本号,不是一个真正的开放标准,表示方法的不一致,定义贫乏等等)。Atom希望提供一个清晰的版本以解决每个人的需要,其设计完全不依赖于供货商,任何人都可以对之进行自由扩展,完整详细说明。
当今许多Blog引擎已经支持当前的摘要格式。Figure3是一个Atom0.3提要例子,它与前述Figure1及Figure2RSS提要等同。注意Atom提要用名字空间限定的,但它不使用RDF。这使得Atom和RSS1.0及RSS2.0在某些地方有相似之处。Atom在未来是否能被接受,人们拭目以待。
除了定义新的摘要格式之外,Atom还希望定义一个标准的档案文件格式和一个标准的网志编辑API(AtomAPI)。有关Atom详细规范以及其它Atom资源请访问TheAtomProject。
转自:http://blog.csdn.net/qsky001/article/details/4759580