现在的位置: 首页 > 综合 > 正文

【转载】RSS和Atom之对比三篇

2013年10月14日 ⁄ 综合 ⁄ 共 12158字 ⁄ 字号 评论关闭
文章目录
RSS和Atom之对比
2008-01-19 23:28

RSS和Atom之对比

本文乃翻译,仅供参考,如有错误,请指正。原文地址:
RSS
and Atom

目前syndication feed有不同的格式。至2005年年中,两个使用最广的格式是 RSS 2
.0

Atom
1.0

。本文的目的是:对两者间的区别,提供一个尽可能简单清晰的摘要。

主要的/性质上的区别

实施状况

  • 2006/01/22: 基本格式的Atom 1.0被广泛支持。许多aggregators不能正确处理在格式上与RSS
    2.0有些许差别的feed。有几个已经确认了错误报告,甚至发布了修正。当前状态参考ConformanceTests
  • 2006/05/21: 主流的用户级feed-reading程序大部分支持Atom 1.0。值的注意的例外是:Bloglines。
  • 2006/06/20: Bloglines推出了新的Atom 1.0 parser。至此,所有主流的用户级feed-reading程序支持Atom
    1.0格式。

规范

RSS 2
.0规范已经冻结,Harvard
University拥有其版权。不能做大的修改(虽然该规范处于Creative Commons 协议)
且计划未来的工作在一个不同的名称下进行;Atom是这类工作的一个例子。

Atom 1.0的规范 RFC 4287

( HTML
Version

); 体现了 IETF

内的 Atompub Working
Group

大多数人的意见,并由IETF和 Internet
Engineering Steering Group

讨论并通过。该规范在架构设计上使得IETF能有预期的发布新的版本或修正版本而不会破坏当前的实施。虽然这样做并没有约定,当前也没有明确的需要。

参考下面的 Extensibility

部分了解如何在不修改基础规范的情况下做出扩充。

Publishing Protocols

目前有两种流行的与RSS配合的protocol, MetaWeblog
Blogger
。这里有一些常有的 问题报告

,关于协同工作和功能上的缺陷.

Atompub工作组正在开发 [Atom Publishing
Protocol]:http://ietfreport.isoc.org/idref/draft-ietf-atompub-protocol/
,目前在最后的工作阶段。该Protocol与Atom feed格式紧密结合,并基于现存protocol的经验。

需要的内容

RSS 2
.0需要feed级别的title, link和description。RSS
2.0不需要出现任何单个项目(individual item)的字段(field)。

Atom 1.0需要feed和entry都包含title(可以为空串),一个唯一的标示和最后更新的时间戳。

Payload

RSS 2
.0可以包含纯文本和或escaped HTML
,但没有提供辨别类型的方法。Escaped HTML
很难看(比如:串”AT&T”表示为AT&T

),同时也带来了实现上的困难。标题的内容模式在定义中,包含尖括号或&

的标题会被很大部分的reader误读,无论它们是如何被显示的。RSS
2.0内容模式不允许真正格式化的XML标记,降低了内同的可重用性。

Atom有一个设计良好的payload container。内容必须被明确地指定为以下类别中的一个:

  1. 村文本,没有markup (默认)
  2. escaped HTML
    ,与RSS 2.0常用的相同
  3. 规范的XHTML markup
  4. 一些其他XML vocabulary
  5. base64编码的二进制内容
  6. 一个指向Web内容的连接,不直接包含在feed中

接收者不保证能对特有的XML或二进制内容做出有用的处理。但是,能保证接收者不会不恰当地尝试处理其没有能力处理的内容。

完整的与部分的内容

RSS 2
.0的<description>

元素常被用来存放entry的全部文字内容或大纲(有时是在同一个feed中),有时没有该元素出现。没有内建的方法鉴别其内容是否完整。

Atom有独立的<summary>

<content>

元素。为了可用性的原因,鼓励在内容为非文本(比如:音频)或非本地(比如:以pointer标示)的情况下使用summary。

Autodiscovery

RSS
autodiscovery

已经用不同的方法实现了多次,常常是依赖没有注册的(也因此无效的)application/rss+xml MIME
类型,并一直没有标准化。这是通常给非技术用户带来困难的地方。

Atom standardizes
autodiscovery

. application/atom+xml MIME

类型由IANA注册。而且,Atom feeds包含一个“self”
pointer,因此newsreader可以仅通过feed的内容自动订阅,给予Web-standard的dispatching技术。

Extraction and Aggregation

RSS 2
.0唯一可被识别的格式是一个@@document。

Atom 1.0允许独立的Atom Entry documents; 其可被任何network protocol传输,例如 XMPP

。 Atom也支持aggregated
feeds,允许entries连接回其在被包含进其他feed之前所属的feed。

Differences of Degree

扩展性

RSS 2
.0不存在于任何一个XML namespace但可能包含其他XML
namespaces的元素。没有一个可找到大量流行扩展(比如:dc:creator和content:encoded)的中心。

Atom 1.0在一个 XML

namespace
中并可能包含其他XML
namespaces的元素和属性。有特定的guideline说明如何解释扩展元素。而且,会有一个由IANA管理的关于<link rel="">

值的目录。最后,Atom 1.0 provides recommended
extension points and guidance on how to interpret simple extensions.

URIs

RSS 2
.0没有说明如何处理相对连接引用。不同的feed readers有其各自不同的处理。 There
is no interoperability。实际上,不能在RSS feed中使用相对连接引用。

Atom 1.0定义了使用XML内建的 xml:base

属性以允许相对连接引用。

软件库(Parsing, Generating)

RSS 2
.0和Atom 1.0 feeds都可通过标准的HTTP
client库来访问。一般的缓存技术可以很好的工作,鼓励使用。模版驱动创建两种类型的feed也非常实际有效。

处理RSS 2.0的库:

处理Atom 1.0的库:

Language Tagging

为辨别feed中使用的语言,RSS 2.0有自己的<language>

元素,而Atom使用XML内建的 xml:lang
属性。

数字签名/加密

RSS 2
.0可以同其他web内容一样,看作a bag of bits来加密或签名。

Atom 1.0包含了应用在entry上 XML
Encryption

XML
Digital
Signature

的规则。另外,也可和RSS 2.0一样,看作a bag of bits来加密或签名。

Authors

RSS 2
.0可指定feed的<managingEditor>

<webMaster>

, item的<author>

邮件地址。一些 publishers倾向不共享邮件地址,而使用<dc:creator>

扩展。

Atom 1.0提供<author>

<contributor>

元素,
feed和entry级别。这些元素必须包含一个名称,和可选的有建地址和URI sub-elements。

Categories

RSS 2
.0的分类包含两部分: label 和 domain

Atom 1.0的分类包含三部分:增加了可选的human-readable title.

Schema

RSS 2
.0 specification没有包含schema

Atom 1.0包含了一个(没有标准化的) ISO
-Standard RelaxNG
schema,以支持对Atom
1.0格式的数据进行有效检查。其他schema格式可通过RelaxNG schema 生成

简单的RSS和Atom的Feeds

RSS 2
.0


<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>

<title>Example Feed</title>
<description>Insert witty or insightful remark here</description>
<link>http://example.org/</link>
<lastBuildDate>Sat, 13 Dec 2003 18:30:02 GMT</lastBuildDate>
<managingEditor>johndoe@example.com (John Doe)</managingEditor>

<item>
<title>Atom-Powered Robots Run Amok</title>
<link>http://example.org/2003/12/13/atom03</link>
<guid isPermaLink="false">urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</guid>
<pubDate>Sat, 13 Dec 2003 18:30:02 GMT</pubDate>
<description>Some text.</description>
</item>

</channel>
</rss>

Atom 1.0


<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

<title>Example Feed</title>
<subtitle>Insert witty or insightful remark here</subtitle>
<link href="http://example.org/"/>
<updated>2003-12-13T18:30:02Z</updated>
<author>
<name>John Doe</name>
<email>johndoe@example.com</email>
</author>
<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>

<entry>
<title>Atom-Powered Robots Run Amok</title>
<link href="http://example.org/2003/12/13/atom03"/>
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2003-12-13T18:30:02Z</updated>
<summary>Some text.</summary>
</entry>

</feed>

元素比较表

Atom 1.0定义了21个元素; RSS 2
.0是30个。很多RSS
2.0有而Atom没有的元素要么在实际中没能广泛实现,要么其功能被以其他方法提供。

RSS 2
.0
Atom 1.0 Comments
rss - Vestigial in RSS
channel feed
title title
link link Atom defines an extensible family of rel values
description subtitle
language - Atom uses standard xml:lang attribute
copyright rights
webMaster -
managingEditor author or contributor
pubDate published (in entry) Atom has no feed-level equivalent
lastBuildDate (in channel) updated RSS
has no item-level equivalent
category category
generator generator
docs -
cloud -
ttl - is problematic, prefer HTTP 1
.1 cache
control
image logo Atom recommends 2:1 aspect ratio
- icon As in favicon.ico
rating -
textInput -
skipHours -
skipDays -
item entry
author author
- contributor
description summary and/or content depending on whether full content is provided
comments -
enclosure - rel=”enclosure” on in Atom
guid id
source - rel=”via” on in Atom
- source Container for feed-level metadata to support
aggregation

Related

参考

Atom vs RSS


   [ 2004-05-16
1:34:34 AM | Author: SiC

| From: Jeff Beard

]

不知道哪个走得更远. 但目的上 Atom 明显大于 RSS. 为了让大家了解一些东西, 我翻译了下文.
文后是我的一点看法.

The Great RSS vs. Atom News Feed Debate

http://www.lawtechguru.com/archives/2004/02/13_the_great_rss_vs_atom_news_feed_debate.html


[February
13, 2004 | 圆括号中为译者所加评论]

CNET News.com 报道了 "Google
的 Blogger 服务放弃了使用 Really
Simple Syndication 而去寻找一种替代技术, 这使网志聚合格式的争论变得更加动荡不安." 作为过去 Blogger Pro 中 RSS
服务的替代品, Blogger 现在只支持 Atom 作为 blog 的内容聚合格式. RSS 只能对新的 Blogger 用户说再见了. 由于 RSS 和
Atom 之间有很多相似之处(在我看来在发布内容方面它们几乎没有差别), 开发者社群中对于这两种格式的争论变得更加白热化.

去年, CNET 关于
"Battle of the Blogs" 的特别报道为这个潜在的争论提供了一个很好的解释. 基本上, Dave Winer, RSS 2.0
开发背后的主要贡献者, 冻结了它的核心开发 "以保证开发者不再对它修修补补", 这样它就可以保持 "简单" 的状态. 但是对于其他人而言这是不可接受的,
因此他们决定提出自己的 blog 内容聚合格式, 这个格式的名称的演变经历了 Pie, Echo, 最后是现在的 Atom.

问题是在 RSS 和
Atom 之间共同点多于不同点的情况下, 它们的标准竞争可能会分裂市场. 很多 bloggers 发帖表示说 RSS 是为网站内容聚合而生, 而 Atom 是为
blog 聚合量身定做的. 现在有很多新闻聚合软件和站点服务使用 RSS, 但是很少有 Atom 支持. 通过进行一次简单的 Google
搜索, 我发现开源的新闻聚合软件
BottomFeeder 已经同时支持了 RSS 和 Atom 格式.(当前已经有 NewsMonster, NewsGator, FeedDemon,
NetNewsWire, MacroMedia Central, NewzCrawler, BottomFeeder, Shrook, Feeds on
Feeds, Bloglines, WinRSS 和 Pears 同时支持两种格式了.)

在 RSS 依然健在(至少是未来的一段时间内)的时候,
Atom 正尝试符合更多人的需要. RSS 支持者关心的是一个竞争标准会怎样分裂市场. 尽管如此, 这么多年来, 如果你想烧录 DVD, 你必须在购买
DVD-R/W 或者 DVD+R/W 驱动器之间做个选择, 但谢天谢地的是 DVD 可以在你的各种设备上播放(例如 DVD 播放机, 便携式 DVD 播放器,
电脑的 DVD-ROM 驱动器等等). 双格式支持的烧录机最近正变得更普遍, 以保证客户能够按照他们的意愿来进行刻录. 因此可以前瞻地说如果 Atom
更进一步推广, 我们会看到市场上会出现更多的双格式支持的新闻聚合软件.(在这篇文章收稿的两个月后, 的确是这样.)

Atom 支持者因 RSS
核心冻结而感到失望, 因为他们知道 RSS 还可以改造得满足更多的需要并且做得更好. 有些人说, 从另一方面看, 在 Atom 中继续发展 RSS 是件好事,
但是这会造成它更加复杂(目前的结构我也觉得 tag 太多了). 这也是许多 RSS 支持者希望冻结 RSS 的原因 - 保持它的简单性,
使它在不需要任何顾问和开发人员介入的情况下发布和使用(低代价). 也就是说, 它可能不完美, 但是它足够简单和好用, 能够让大众使用它.
从这里不难看出争论双方的逻辑, 但是很不幸的, 它成为了一些关键人物的私人事务. 为此曾经出现过修改规范名称和其它没有重大意义的工作,
这些工作只会掩盖掉真实的问题所在.

在我写这篇文章之前, 我已经看到了 RSS 对内容提供者和读者的好处. 现在, 我和很多其它的 blogger
正面对着是否加入 Atom 支持的抉择. 如果 blog 软件发行商开始在产品中整合入 Atom 支持, 就像 Movable Type 整合 RSS
支持那样, 这可能是很不错的方向. 这样的话, 我所担心的也只不过是页面上的一个新链接而已. 但是, 我是没有精力去自己整合 Atom 支持到 blog
中的(你没有我有 ^-^ ) - 特别是在它并不流行的时候. 尽管如此, 它的支持者正努力提议让 Internet Engineering Task Force
(IETF) 承担起对 Atom 的责任, 以便使它成为一个标准. 如果 Movable Type 和其它主流 blog 开发者在软件更新中添加集成的 Atom
支持, 那么这将是可行的.

Google

最近的决定非常有趣. 很长的一段时间内, 标准的 Blog 软件并不包含任何 RSS 支持, 这也是为什么它们失去了很多转向 Radio Userland,
Movable Type 和 TypePad 的 blog 用户. 现在, 在被 Google
收购后, 他们转向了只支持 Atom. Google
疯了吗? 我还没有确定自己的立场, 但是我可以承认自己对 RSS 冻结的担忧. 假如技术无法进化,
那将是很不幸的一件事情. Apple 尝试过对拥有的规范进行严格控制, 从而在许多年内成为占有 10 % 市场的主导者, 与此同时, PC 平台则繁荣昌盛.
我并不是说谁比谁要好, 而是说明限制技术可能产生的影响.

在这个过渡时期, 哪个聚合标准适合用于网站和 blog 的状况发展值得注意. 当前
RSS 是明显的主导者, 我甚至还记得那些许多人认为 Betamax 是比 VHS 更好的格式并会永远存在的日子(录像带格式争霸, 作者真会跑题啊).
这就是技术的发展. 这个故事的精髓就是现在下结论还为时尚早, 对于两个标准而言还有发展的空间. 激烈的争论过后,
我想是静观其变的时候了.
[End]

Review:

其实很明显, Atom 在 RSS
的基础上扩展了很多, 单内容发布方面便多了很多详细的标记, 例如发布时间, 修改时间, 创建时间, 作者, 协作者(简直冗余到家了, 而且我认为必要的标记不多,
而且用的单词看上去比 RSS 恶心). 它与 RSS 的最根本不同, 是它还可以作为发布, 编辑, 处理 blog 的格式, 而不单单是一个内容发布格式.
说到内容发布, 就要提一下 Blogger API, 和 MetaWeblog API 了. Bloger API 是 Blogger.com 基于
XML-RPC 规范开发的一个用于远程发布, 编辑 blog 的 xml 格式, 目前有几个程序可以支持它, 如 Newzcrawler. 而
MetaWeblog API 则是对 Blogger API 的进一步完善. Atom 可以说是想把 RSS 和 Blogger API 合并成一个,
也就是一统天下. 而且 Blogger 又被 Google

收购, 所以 Google
选择 Atom
不是没有原因的(Blogger API 看来会被踢掉). Atom 当然没有 XML-RPC 模型 Generic, 两者就不用比较了. 有 Google
支持, 搞不好 Atom 能实现它的野望, 毕竟
RSS 已经被冻住了, Blogger API 看不到继续发展的前途. 静观其变吧.(不知道为什么我看见 Atom 的文档就有点犯恶心.)

什么是
Atom?


Atom 有两个含义
:它既是开发人员的一项新标准,也是一种联合供稿格式或 Blog 的"馈送"。如果某定期更新的网站(如
Blog)有馈送,人们可以使用阅读联合供稿内容的软件(称为"新闻阅读器")进行订阅。 人们喜欢在 Blog
中使用阅读器,因为有了它,可以及时获取他们想了解的最新信息。就像查阅电子邮件一样轻松,而且没有任何垃圾邮件。

at?om

(at'em)名词
1.一种应用程序界面 (Application Program Interface, API)。
2.您 Blog
的新联合供稿馈送。

两年多以前,我们发布了 Blogger 的试用应用程序界面。尽管存在各种各样的缺陷,开发人员和供应商仍然能够使用
BloggerAPI,但它也确实需要一次全面的整修。活跃在技术/Blogging 社区的一些工程师开始开发一种名为 Atom
的更为优秀、综合性更强的概念代码。这个新系统看起来好像能够解决 API 存在的诸多问题,并建立一种通用的联合供稿格式。Atom
最终面世了,它对不同的人有着不同的意义。

Atom 对 Blogger 用户的意义


Atom
可帮助您与更多读者分享您的 Blog。当您启动 Atom 联合供稿时,Blogger 自动为您的 Blog
生成机读版本,以各种不同方式(包括新闻阅读器、网站以及便携设备)选载和显示。支持 Atom 的新闻阅读器有很多,包括 NewsMonster
NewzCrawler
NewsGator
NetNewsWire
Shrook
RSSOwl
BottomFeeder
。在 AtomEnabled.org

上,您可以发现新闻阅读器的数量在不断增加。

请参阅:如何更改站点馈送设置?

除了阅读
Blog,Atom 还涉及 Blogging 的其他方面。这意味着,开发人员能够更轻松地开发出各种应用程序,让用户以各种新方法创建、编辑、发布以及保存
Blog,或开发他们认为很酷、有用或有意思的东西。毕竟,Blogger 原先就是这样开发出来的!

Atom 对开发人员的意义


AtomEnabled.org
声称:"AtomEnabled
使开发人员最终可以在联合供稿和创作文稿时使用一致、规范严谨、有大量文档支持的 XML 格式。使用同一种数据格式阅读和写作,在几乎所有主要脚本或编程语言中支持
Atom
开发的组件库正不断增加,这意味着您的应用程序、网站或设备不但可以受益于大型社区的网络效应,而且可以节省开发核心数据交换功能的时间。"

因此,如果您是开发人员,Atom
对您而言很有意义,您一定期盼着有一天能使用这样的数据格式为我们开发更酷的程序。我们也很期盼这一天。若要了解有关规范和信息,请查阅 AtomEnabled.org
"开发人员"区域
。另外,有关 Blogger 的信息,请查阅
Blogger 开发人员
Blog

Atom 对普通人的意义


归根到底,Atom 不仅仅是为 Blogger
和开发人员服务的,它同样也为普通人服务。作为一种构建于可扩展平台、用于发布个人信息的通用格式,Atom 可以实现信息在 Web 内外的顺畅流通。的确,Atom
出自 Blog 用户之手,但也正是因为 Blog 领域是一块孕育创新的肥沃土壤。感谢为 Atom
的诞生付出辛勤劳动的每一位。我们热切期盼着伟大创新的出现。

备注:

如果您更愿意使用
RSS,请尝试 FeedBurner

转自:http://help.blogger.com/bin/answer.py?answer=697&topic=36

ATOM和RSS的区别
2008-01-19 23:37

ATOM和RSS的区别

Fenng
对他的MT
RSS做了一些修改,使得输出的时候除了显示全文,还可以显示评论。这个方法似乎在我订阅的Blogger中间很少有人采用,所以觉得很新鲜。不过这个做法有一个不完美的地方是如果我阅读完一篇文章之后,在我的Google
Reader上是不再显示了的。那么有新的评论似乎我也看不到了?

在看评论的时候看到POPOEVER
说:

@Nasone: 在RSS里做全文输出?那还要ATOM干嘛?每种协议或规范完成自己的任务就可以了。

我所期待的是能解决相对路径的问题。

这个说法很新鲜,我原先光知道ATOM和RSS都是FEED的输出形式,似乎Google采用的是ATOM形式,其他的采用RSS的多些。至于他们两者具体的区别我就不清楚了。他们真的是区别在ATOM输出全文,RSS输出摘要么。

我上网查了一下,找到了这篇文章:Rss20AndAtom10Compared
中文版的在这里
。这篇文章比较的非常全面,通过对实施状况和性质等18个方面对RSS和ATOM进行了比较。

在完整的与部分的内容的比较上,文章是这么说的:

RSS 2.0 has a <description>

element
which is commonly used to contain either the full text of an entry or just a
synopsis (sometimes in the same feed), and which sometimes is absent. There is
no built-in way to signal whether the contents are complete.

Atom has separate <summary>

and
<content>

elements. The summary is
encouraged for accessibility reasons if the content is non-textual (e.g. audio)
or non-local (i.e. identified by pointer).

RSS
2.0的元素常被用来存放entry的全部文字内容或大纲(有时是在同一个feed中),有时没有该元素出现。没有内建的方法鉴别其内容是否完整。

Atom有独立的和元素。为了可用性的原因,鼓励在内容为非文本(比如:音频)或非本地(比如:以pointer标示)的情况下使用summary。

按照这段解释来看RSS2.0协议是可以输出全文的,因为它被用来存放entry的全部文字内容或大纲,
但是它没有一种内建的方法来判定是否输出了完整的全文内容。而ATOM则不同,因为有<summary>和<content>两个不同的元素,摘要在<summary>中输出,正文内容就在<content>中输出。

所以就这么看来RSS和ATOM的区别不在于是否能输出全文,而在于能否受控制地输出全文或摘要…

而且,再进一步说:

The RSS 2.0 specification is copyrighted by Harvard University and is frozen.
No significant changes can be made (although the specification is under a
Creative Commons licence) and it is intended that future work be done under a
different name; Atom is one example of such work.

Atom 1.0 is specified inRFC 4287
(HTML
Version

); it represents the consensus of the Atompub Working Group
within the IETF
, as reviewed and approved by
the IETF community and the Internet Engineering Steering
Group

. The specification is structured in such a way that the IETF could
conceivably issue further versions or revisions of this specification without
breaking existing deployments, although there is no commitment, nor currently
expressed interest, in doing so.

RSS 2.0规范已经冻结,Harvard University拥有其版权。不能做大的修改(虽然该规范处于Creative Commons 协议)
且计划未来的工作在一个不同的名称下进行;Atom是这类工作的一个例子。

Atom 1.0的规范 RFC 4287 ( HTML Version ); 体现了 IETF 内的 Atompub Working Group
大多数人的意见,并由IETF和 Internet Engineering Steering Group
讨论并通过。该规范在架构设计上使得IETF能有预期的发布新的版本或修正版本而不会破坏当前的实施。虽然这样做并没有约定,当前也没有明确的需要。

所以ATOM和RSS2.0其实在本质上是一个东西? ATOM是对RSS2.0的进一步改进,他们或许不是那么完全截然不同的两个规范。

好了,翻字典的事情就不做了,如果需要了解进一步信息的。可以去看我给出的两个链接或许更多知识。

【上篇】
【下篇】

抱歉!评论已关闭.