找回密码
 注册
搜索
热搜: 回贴

RSS 2.0 规范[翻译]

2009-12-16 01:40| 发布者: admin| 查看: 20| 评论: 0|原作者: 慕容紫英

  原文地址:http://blogs.law.harvard.edu/tech/rss

  什么是RSS?
  RSS是一种网页内容联合格式(web content sydication format)。
  它的名字是Really Simple Syndication的缩写。
  RSS是XML的一种。所有的RSS文档都遵循XML 1.0规范,该规范发布在W3C网站上。

  在一个RSS文档的开头是一个节点和一个规定的属性version,该属性规定了该文档将以RSS的哪个版本表示。如果该文档以这个规范来表示,那么它的version属性就必须等于2.0。

  在节点的下一级是一个独立的节点,该节点包含关于channel的信息和内容。
  关于本文档
  该文档是在2002年秋天撰写的,当时的RSS版本为2.0.1。
  它包含从RSS 0.91规范(2000年)开始的所有的修改和添加,以及包含在RSS 0.92(2000年12月)和RSS 0.94(2002年8月)中的新的特性。

  必需的频道节点
  下面有一份必须包含的频道(channel)节点的列表,每一个都有一个简单的描述、
一个例子、应该出现的位置和更详细描述的超链接。
元素 描述 范例
title 频道(channel)名称。它可以告诉别人如何访问你的服务。如果你有一个与你的RSS文件
内容一致的HTML网站,你的title元素值应该与你的网站的标题相。
GoUpstate.com News Headings
link 响应该频道的网站的URL http://www.goupstate.com/
description 关于该频道的描述 The latest news from GoUpstate.com,
a Spartanburg Herald-Joural Web Site

  可选的频道元素
  下面是可选的频道元素列表
元素 描述 范例
language 使用的语言。这允许聚合器对所有的意大利语站点分组。 en-us
copyright 版权声明 Copyright 2002, Spartanburg Herald-Journal
managingEditor 内容负责人的Email geo@herald.com (George Matesky)
webMaster 技术人员的Email betty@herald.com (Betty Guernsey)
pubDate 内容的发布时间 Sat, 07 Sep 2002 00:00:01 GMT
lastBuildDate 最后更新时间 Sat, 07 Sep 2002 09:42:31 GMT
category 指定该频道所属的一个或多个分类。遵循与item级category元素相同的规则。 Newspapers
generator 生成该频道的程序名称 MightyInHouse Content System v2.3
docs 指向rss格式文档的url地址? http://blogs.law.harvard.edu/tech/rss cloud
允许所有进程注册一个cloud用于获得频道的更新通知,并为rss种子实现一个轻量级
的发布订阅协议。 registerProcedure="pingMe" protocol="soap"/>
ttl ttl是Time to live的缩写。它指示cache的有效保存时间。 60
image 与频道一起显示的图片地址
rating 该频道的统计图片地址
textInput 指定一个textbox与该频道一起显示
skipHours 告诉使用者哪些时段是可以忽略的
skipDays 告诉使用着哪些天是可以忽略的

子节点
是一个可选的子节点,该节点包含三个必需的子元素和三个可选的子元素。
是GIF、JPEG或PNG图像文件的URL地址,该图像代表整个频道
用于描述上面的图像,等同于HTML语言中的<img>的alt属性 <br><link>是要连接的站点的url,当显示频道时,图像的连接指向该站点。 <br><title>和<link>应该与频道的<title>和<link>有相同的值 <br>可选的节点包括<width>和<height>,它们是数字类型,指定图像的宽度和高度,单位为像素 <br><description>就是link的TITLE属性中文本,它将在调用网页时显示出来。 <br><br>图像宽度的最大值为144,默认值为88 <br>图像高度的最大值为400,默认值为31 <br><br><channel>子节点<cloud> <br><cloud>是一个可选的<channel>子节点。 <br>它指定一个可以支持rssCloud接口的web服务,rssCloud接口可以用HTTP-POST,<br>XML-RPC或SOAP1.1实现。 <br>它的目的是允许通知注册为cloud的进程频道被更新,从而实现一个轻量级的发布订阅协议。 <br><cloud domain="rpc.sys.com" port="80" path="/RPC2" <br>registerProcedure= "myCloud.rssPleaseNotify" protocol="xml-rpc" /><br> 在这个例子中,为了请求频道通知,你需要发送一个XML-RPC消息到rpc.sys.com的80端口,<br>路径为/RPC2。调用的过程为myCloud.rssPleaseNotify。 <br><br><channel>子节点<ttl> <br><ttl>是一个可选的<channel>子节点。 <br>ttl是time to live的缩写。它表示频道在被刷新前应该被缓存的时间。这使得rss源<br>可以被一个支持文件共享的网络所管理,例如Gnutella <br>例如:<ttl>60</ttl> <br><br><channel>子节点<textInput> <br><textInput>是<channel>的可选的子节点,<textInput>包含四个子节点。 <br><title>--提交按钮的标签 <br><description>--该文本输入区的描述 <br><name>--文本输入区的名称 <br><link>--处理文本输入的CGI脚本的URL <br>使用<textInput>的目的有些神秘(?)。你可以用它提供一个搜索引擎输入框,<br>或让读者提供反馈信息。许多聚合器忽略该节点。 <br><br><item>的节点 <br>一个频道可以包含许多项目(item)节点。一个项目可以代表一个故事——比如说<br>一份报纸或杂志上的故事,如果是这样的话,那么项目的描述则是故事的概要,<br>项目的链接则指向整个故事的存放位置。项目的所有节点都是可选的,但是至少要<br>包含至少一个标题(title)和描述(description)。 <br><br>元素 描述 范例 <br>title item的标题 Venice Film Festival Tries to Quit Sinking <br>link item的URL http://www.nytimes.com/2002/09/07/movies/07FEST.html <br>description item概要 Some of the most heated chatter at the Venice Film <br>Festival this<br> week was about the way that the arrival of the stars at the Palazzo<br> del Cinema was being staged. <br>author 作者的email地址 oprah@oxygen.net <br>category item可以包含在一个或多个分类中 Simpsons Characters <br>comments 与item相关的评论的地址 http://www.myblog.org/cgi-local/<br>mt/mt-comments.cgi?entry_id=290 <br>enclosure 附加的媒体对象 <br>guid 可以唯一确定item的字符串 http://inessential.com/2002/09/01.php#a2 <br>pubDate item发布的时间 Sun, 19 May 2002 15:21:36 GMT <br>source rss频道来源 Quotes of the Day <br><br><item>子节点<source> <br><source>是<item>的可选节点。 <br>它的值是item来自的rss频道的名称,从item的title衍生而来。它有一个必须包含的属性url,<br> 该属性链接到XML序列化源。 <br><source url="http://static.userland.com/tomalak/links2.xml"><br>Tomalak's Realm</source> 该节点的作用是提高连接的声望,进一步推广新闻项目的源头。<br>它可以用在聚合器的Post命令中。当从聚合器通过webblog访问一个item时,<source><br>能够自动被生成。 <br><br><item>子节点<enclosure> <br><enclosure>是<item>的可选节点。 <br>它有三个必要的属性。url属性指示enclosure的位置,length指出它的字节大小,<br>type属性指出它的标准MIME类型 <br>url必须为一个http url。 <br><enclosure url=http://www.scripting.com/mp3s/weatherReportSuite.mp3<br> length="12216320" type="audio/mpeg" /> <br><item>子节点<category> <br><category>是<item>的可选节点。 <br>它有一个可选属性或域,该属性是一个用来定义分类法的字符串。 <br>该节点的值是一个正斜杠分割的字符串,它用来在指定的分类法中识别一个分级位置(hierarchic location)。处理器可以为分类的识别建立会话。(Processors may establish conventions for the interpretation of categories)<br>下面有两个例子: <br><category>Grateful Dead</category> <br><category domain="http://www.fool.com/cusips">MSFT</category> 你可以根据<br>你的需要为不同的域(domain)包含很多category节点,并且可以在相同域的不同<br>部分拥有一个前后参照的item。 <br><br><item>子节点<pubDate> <br><pubDate>是<item>的可选节点。 <br>它的值是item发布的日期。如果它是一个没有到达的日期,聚合器在日期到达之<br>前可以选择不显示该item。 <br><pubDate>Sun, 19 May 2002 15:21:36 GMT</pubDate> <br><br><item>子节点<guid> <br><guid>是<item>的可选节点。 <br>guid是globally unique identifier的缩写。它是一个可以唯一识别item的字符串。<br>当item发布之后,聚合器可以选择使用该字符串判断该item是否是新的。 <br><guid>http://some.server.com/weblogItem3207</guid> <br>guid没有特定的语法规则,聚合器必须将他们看作一个字符串。生成具有唯一性的字符串<br>guid取决于种子的源头。 <br>如果guid节点有isPermaLink属性,并且值为真,读取器就会认为它是item的permalink。<br>permalink是一个可在web浏览器中打开的url链接,它指向<item>节点所描述的全部item。 <br><guid isPermaLink="true">http://inessential.com/2002/09/01.php#a2</guid> <br><br>isPermaLink是可选属性,默认值为真。如果值为假,guid将不会被认为是一个url或<br>指向任何对象的url。 <br><br><item>子节点<comment> <br><comment>是<item>的可选节点。 <br>如果出现,它指向该item评论的url <br><comments><br>http://rateyourmusic.com/yaccs/commentsn/blogId=705245&itemId=271<br></comments> <br><br><item>子节点<author> <br><author>是<item>的可选节点。 <br>它是item的作者的email。对于通过rss传播的报纸和杂志,作者可能是写该item<br>所描述的文章的人。对于聚集型webblogs,作者可能不是责任编辑或站长。对于个人维护的webblog,忽略<author>节点是有意义的。 <br><author>lawyer@boyer.net (Lawyer Boyer)</author><br></td></tr></table> <!--[diy=diycontentbottom]--><div id="diycontentbottom" class="area"></div><!--[/diy]--> <script src="data/cache/home.js?R1y" type="text/javascript"></script> <div id="click_div"><table cellpadding="0" cellspacing="0" class="atd"> <tr></tr> </table> <script type="text/javascript"> function errorhandle_clickhandle(message, values) { if(values['id']) { showCreditPrompt(); show_click(values['idtype'], values['id'], values['clickid']); } } </script> </div> <!--[diy=diycontentclickbottom]--><div id="diycontentclickbottom" class="area"></div><!--[/diy]--> </div> <div class="o cl ptm pbm"> <a href="https://bbs.weiying.cn/home.php?mod=spacecp&ac=favorite&type=article&id=19860&handlekey=favoritearticlehk_19860" id="a_favorite" onclick="showWindow(this.id, this.href, 'get', 0);" class="oshr ofav">收藏</a> <a href="https://bbs.weiying.cn/home.php?mod=spacecp&ac=share&type=article&id=19860&handlekey=sharearticlehk_19860" id="a_share" onclick="showWindow(this.id, this.href, 'get', 0);" class="oshr">分享</a> <a href="misc.php?mod=invite&action=article&id=19860" id="a_invite" onclick="showWindow('invite', this.href, 'get', 0);" class="oshr oivt">邀请</a> </div> </div> <!--[diy=diycontentrelatetop]--><div id="diycontentrelatetop" class="area"></div><!--[/diy]--> <!--[diy=diycontentrelate]--><div id="diycontentrelate" class="area"></div><!--[/diy]--> <div id="comment" class="bm"> <div class="bm_h cl"> <h3>最新评论</h3> </div> <div id="comment_ul" class="bm_c"><form id="cform" name="cform" action="portal.php?mod=portalcp&ac=comment" method="post" autocomplete="off"> <div class="tedt"> <div class="area"> <textarea name="message" rows="3" class="pt" id="message" onkeydown="ctrlEnter(event, 'commentsubmit_btn');"></textarea> </div> </div> <input type="hidden" name="portal_referer" value="portal.php?mod=view&aid=19860#comment"> <input type="hidden" name="referer" value="portal.php?mod=view&aid=19860#comment" /> <input type="hidden" name="id" value="0" /> <input type="hidden" name="idtype" value="" /> <input type="hidden" name="aid" value="19860"> <input type="hidden" name="formhash" value="1f15f547"> <input type="hidden" name="replysubmit" value="true"> <input type="hidden" name="commentsubmit" value="true" /> <p class="ptn"><button type="submit" name="commentsubmit_btn" id="commentsubmit_btn" value="true" class="pn"><strong>评论</strong></button></p> </form> </div> </div> <!--[diy=diycontentcomment]--><div id="diycontentcomment" class="area"></div><!--[/diy]--> </div> <div class="sd pph"> <div class="drag"> <!--[diy=diyrighttop]--><div id="diyrighttop" class="area"></div><!--[/diy]--> </div> <div class="bm"> <div class="bm_h cl"> <h2>相关分类</h2> </div> <div class="bm_c"> <ul class="xl xl2 cl"><li><a href="https://bbs.weiying.cn/portal.php?mod=list&catid=21">设计资讯</a></li> <li><a href="https://bbs.weiying.cn/portal.php?mod=list&catid=22">平面设计</a></li> <li><a href="https://bbs.weiying.cn/portal.php?mod=list&catid=23">标志设计</a></li> <li><a href="https://bbs.weiying.cn/portal.php?mod=list&catid=24">空间设计</a></li> <li><a href="https://bbs.weiying.cn/portal.php?mod=list&catid=25">工业设计</a></li> <li><a href="https://bbs.weiying.cn/portal.php?mod=list&catid=26">网页设计</a></li> </ul> </div> </div> <div class="drag"> <!--[diy=diy2]--><div id="diy2" class="area"></div><!--[/diy]--> </div> </div> </div> <div class="wp mtn"> <!--[diy=diy3]--><div id="diy3" class="area"></div><!--[/diy]--> </div> <input type="hidden" id="portalview" value="1"> </div> <div id="ft" class="wp cl"> <div id="flk" class="y"> <p> <a href="//wpa.qq.com/msgrd?v=3&uin=8828254&site=微赢网络技术论坛&menu=yes&from=discuz" target="_blank" title="QQ"><img src="static/image/common/site_qq.jpg" alt="QQ" /></a><span class="pipe">|</span><a href="https://bbs.weiying.cn/forum.php?mod=misc&action=showdarkroom" >小黑屋</a><span class="pipe">|</span><a href="topic-sitemap.html" target="_blank" >最新主题</a><span class="pipe">|</span><a href="https://bbs.weiying.cn/forum.php?showmobile=yes" >手机版</a><span class="pipe">|</span><strong><a href="http://bbs.weiying.cn" target="_blank">微赢网络技术论坛</a></strong> ( <a href="https://beian.miit.gov.cn/" target="_blank">苏ICP备08020429号</a> )<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?a66c064273122db3a05de72f6cd924eb"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></p> <p class="xs0"> GMT+8, 2024-9-30 07:20<span id="debuginfo"> , Processed in 0.192978 second(s), 12 queries , Gzip On, MemCache On. </span> </p> </div> <div id="frt"> <p>Powered by <strong><a href="https://www.discuz.vip/" target="_blank">Discuz!</a></strong> <em>X3.5</em></p> <p class="xs0">© 2001-2023 <a href="https://code.dismall.com/" target="_blank">Discuz! Team</a>.</p> </div></div> <script src="home.php?mod=misc&ac=sendmail&rand=1727652036" type="text/javascript"></script> <div id="scrolltop"> <span hidefocus="true"><a title="返回顶部" onclick="window.scrollTo('0','0')" class="scrolltopa" ><b>返回顶部</b></a></span> </div> <script type="text/javascript">_attachEvent(window, 'scroll', function () { showTopLink(); });checkBlind();</script> </body> </html>