RSS – Version 1.0 标签和语法
RSS是一种用于内容分发和聚合的XML格式标准。它的核心在于通过RSS Feed提供订阅者与RSS Feed拥有者沟通的渠道,并且常常被用于博客文章、新闻报道及音视频文件等文档类型。
RSS标签和语法
在RSS 1.0版本中,每个RSS Feed由以下三个部分组成,分别为Channel、Item和Channel Metadata。
Channel
Channel是RSS Feed的最高层级。在Channel中我们需要记载该Feed的标题、描述、链接、语言和所归纳的项目列表。一般而言,在RSS 1.0中,Channel的标签如下:
<rdf:Description rdf:about="the URL of the channel">
<title>the title of the channel</title>
<link>the URL of the channel</link>
<description>a brief description of the channel</description>
...
<items>
<rdf:Seq>
<rdf:li rdf:resource="the URL of an item in the feed"/>
<rdf:li rdf:resource="the URL of another item in the feed"/>
</rdf:Seq>
</items>
</rdf:Description>
上述代码中,“about”参数需要替换成表示Channel的URL,此外,“title”和“link”都与Channel的标题及链接有关,“description”则是该Channel的描述;最后,“items”标签下的“rdf:Seq”“rdf:li”则是该Channel所包含的Item的列表。
Item
在Channel Metadata的描述下,Item描述了一个Feed篇章。每个Item中包含的标签有title(标题)、link(链接)、description(描述)和date(日期)。具体来说,RSS 1.0中,Item的标签如下所示:
<rdf:Description rdf:about="the URL of the item">
<title>the title of the item</title>
<link>the URL of the item</link>
<description>a brief description of the item</description>
<dc:date>2009-09-16T17:57-08:00</dc:date>
</rdf:Description>
需要注意的是,“about”参数的数值是表示Item的URL,此外,“title”和“link”与Item的标题及链接有关,“description”则是Item的描述,最后的“dc:date”标签则表示Item所发布的时间。
Channel Metadata
Channel Metadata包含了RSS Feed的描述信息。它位于Channel标签的外部,通常由RDF描述构成。与一般的Feed不同的是,RSS 1.0使用RDF作为整个Feed的元标识语言。RSS 1.0中,Channel Metadata的标签如下:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel rdf:about="the URL of the channel">
...
</channel>
<item rdf:about="the URL of the item">
...
</item>
</rdf:RDF>
具体而言,“xmlns:rdf”参数表示RDF命名空间,“xmlns”参数表示RSS 1.0的命名空间,而“xmlns:dc”参数则表示Dublin Core的命名空间(Dublin Core是一组用于描述文档的元标签)。在RSS 1.0中,channel和item标签都是使用RDF语义来定义的,并根据RSS 1.0和Dublin Core的规范进行构建。
示例代码
下面通过示例代码展示一下RSS 1.0的标签和语法。
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel rdf:about="https://example.com/feed.xml">
<title>Example Feed</title>
<link>https://example.com/</link>
<description>Example Feed is a feed of all the latest news from example.com</description>
<items>
<rdf:Seq>
<rdf:li rdf:resource="https://example.com/article1.html"/>
<rdf:li rdf:resource="https://example.com/article2.html"/>
</rdf:Seq>
</items>
</channel>
<item rdf:about="https://example.com/article1.html">
<title>Example Article 1</title>
<link>https://example.com/article1.html</link>
<description>This is an example article 1</description>
<dc:date>2021-04-19T12:00:00-08:00</dc:date>
</item>
<item rdf:about="https://example.com/article2.html">
<title>Example Article 2</title>
<link>https://example.com/article2.html</link>
<description>This is an example article 2</description>
<dc:date>2021-04-20T12:00:00-08:00</dc:date>
</item>
</rdf:RDF>
结论
通过以上代码,我们可知,在RSS 1.0中,Channel、Item和Channel Metadata这三种标签形成了一个清晰的层级结构。其中,Channel Metadata使用RDF语义定义了Channel和Item,Channel中包含了一个Item List,每个Item都描述了一个Feed篇章。以上是一个简单的RSS 1.0订阅的示例,通过以上展示,我们可以更好的理解RSS 1.0中各个标签和语法的含义和使用方法。