RSS 1.0 规范 Core Syntax(核心语法)

  1. Core Syntax [核心语法]
    RSS 1.0 的核心是建立在 RSS 0.9 之上的. RSS 1.0 的焦点在于通过 XML 命名空间和 RDF 得到易扩展

性的同时保持向下兼容.
向下兼容 RSS 0.9
基本的 RSS 解析器,模块,库对那些设计上未能理解以下内容的不予考虑,在这个前提和约定下,向下兼容

是毫无疑问的:
属性(attribute); RSS 0.9 没有不在 RDF 命名空间声明之内的属性.

模块化的扩展部分的元素成员存在于默认命名空间之外.

特殊元素不妨碍 RSS 0.9 文档的全部结构.

通过基于 XML 命名空间的模块化的易扩展性
RSS 1.0 通过基于 XML 命名空间的模块得以扩展. 由于鼓励特别的扩展性,自然希望能有一组被一致认同

的涵盖分类学,聚合,都柏林核心(Dublin Core)等功能性的核心模块. 请见下文的模块章节, 以及核心

RSS 1.0 模块 的记录簿.

channel, image, item, 和 textinput 元素对其子元素的一个限制是不允许包含重复的子元素( 如

). 这个措施仅对紧邻级别的子元素有强制作用. 对于那

些更深一级的(丰富内容或重复元素)也已经定义明确的使用 RDF 语法.

RDF
RSS 1.0 建立在出现于 RSS 0.9 (但被 RSS 0.91 抛弃)的新生的 RDF 架构上,仅最小限度的增添以下内

容:

每一个第二级别元素 (channel, image, item, and textinput) 必须包含一个 rdf:about 属性.

一个频道级别(channel-level)的 RDF 内容表(table of contents)将 image, items 和 textinput 与近

处的 channel 联系到一块.
为了尽可能实时保持 RSS 1.0 的 RDF 及 简朴 XML 的外观, RSS 1.0 只支持使用 核心元素中 指定类型

元素的 RDF 语法.

Mime Type

Mime类型(Mime Type)
现在 RSS 1.0 文档的 mime-type 介绍是 application/xml. 不过给 RDF (甚至可能 RSS) 注册 mime-

type 的工作正在进行,一旦注册下来便可使用.

文件扩展名
RSS 1.0 文档并没有明确指定文件扩展名,推荐使用 .rdf 或 .xml 中的一个,前者为首选.

编码
RSS 0.9 只支持 ASCII 码, 而 RSS 1.0 采用 UTF-8. 使用 US-ASCII (也就是把所有127以上的字符以

nnn 的形式编码) 是和 UTF-8 (以及 ISO-8859-1, HTTP 的默认文件头编码)相符合一致的.

URL
为确保向下兼容 RSS 0.9,只有以下模式可以包含在 url 和 link 元素中: http:, https:, ftp:.

mailto: 仅允许存在于 textinput 的 link 元素中.

实体:
XML 保留了某些字符作为置标符(markup). RSS 文档中要用到这些字符,必须用它们的实体引用(entity

reference)替换:

< 换成 <
> 换成 >
& 换成 &
下面两个实体引用也是为遵从 XML 的解析器公认有效的. 但在实用中,它们是可选的. 但是当一个句子中

有引号符且被括含在同样的符号之内使,就需要用实体引用, 如:”“你好,”她说”就应该编写为”“你好,” 她

说”.
‘ 换成 ‘
“ 换成 “
注意: 由于 RSS 1.0 不要求 DTD 文件, 请确保在使用上述5个外的实体引用时包含内联声明(inline

declarations). 下列 DTD 片断是很有用的兼容 HTML 的实体的资料:

http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent
http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent
http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent
Usage example [使用示例]:

<?xml version=”1.0”?>

”-//W3C//ENTITIES Latin 1 for XHTML//EN”
http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent”>
%HTMLlat1;
]>

xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns=”http://purl.org/rss/1.0/
>


>内容长度:
RSS 1.0 对元素(如 title, link, description)的应用定下了合理的内容长度, 为严格坚持向下兼容提

出的好实例也纷纷诟病 RSS 0.9 的最大字符长度.

符号:
下面的核心元素详述中,使用了下列符号:

{something} 仅仅是 URI, 值 等等的代指.
典型描述(model description)中使用了一个类似 DTD 的语法,这只是为了介绍的目的,并不暗示其次序.

元素的次序并不重要.
典型描述中, ? 表示元素或属性可选.
典型描述中, + 表示此处允许使用”一个或更多”的元素或属性.
典型描述中, + 表示此处允许使用”零个或更多”的元素或属性.
5.1 <?xml version=”1.0”?>
As an XML application, an RSS document is not required to begin with an XML declaration. As

a best practice suggestion and to further ensure backward compatibility with RSS 0.9 (the

specification for 0.9 required it), this specification recommends doing so.

Syntax: <?xml version=”1.0”?>
Requirement: Optional (unless specifying encoding)

作为 XML 应用, 一个 RSS 文档并不强求以一个 XML 声明开头. 但作为一个最实际的建议以及为了更进

一步保证对 RSS 0.9 的向下兼容( 0.9 的规范要求有 XML 声明),本规范建议加上这一声明.

语法: <?xml version=”1.0”?>
要求: 可选 (除非编码特别指定)

5.2
每个服从 RSS 1.0 的文档里最外面的就是 RDF 元素. 开口型的 RDF 标签将 rdf: 命名空间前缀与 RDF

语法模式(schema)联系 (注:assocaties疑为associates之误)在一起并将 RSS 1.0 模式设为该文档的默

认命名空间.

尽管可以使用任何有效的命名空间前缀,建议文档创建者考虑标准化的”rdf:”. 那些想严格向下兼容 RSS

0.9 的必需用”rdf:”.

语法: <rdf xmlns:rdf=”<a href=” http:>http://www.w3.org/1999/02/22-rdf-syntax-ns#” </rdf>

xmlns=”http://purl.org/rss/1.0/”>
要求: 完全按照上面格式要求,除非有补充的命名空间声明
子模块: (channel, image?, item+, textinput?)

5.3
channel 元素包含了描述频道(channel)本身的元数据,包括一个标题,简要说明,和到所描述资源的 URL

链接(比如说:频道提供者的主页). channel 元素 rdf:about 属性的 {resource} URL 必须是该 RSS 文

档中所有 rdf:about 属性中唯一的一个并且是用来鉴别频道(channel)的 URI.一般说来,不是被描述的主

页的 URL 就是该 RSS 文件所在位置的 URL.

语法:
要求: 必需
必要属性: rdf:about
子模块: (title, link, description, image?, items, textinput?)
示例: