RSS 0.91 Specification (Netscape)
RSS Advisory Board
Really Simple Syndication specifications, tutorials and discussion
RSS 0.91 Specification
Archivist's Note: This is the RSS 0.91 specification published by Netscape on July 10, 1999. The current version of the RSS 2.0 specification is available at
this link
and
other revisions
have been archived. Netscape
transferred
this specification to the RSS Advisory Board on Jan. 22, 2008.
RSS 0.91 Spec, revision 3
Netscape Communications
Primary Author: Dan Libby
July 10, 1999
Notes
Files must be 100% valid XML. We're trying to move towards a more standard format, and to this end we have included several tags from the popular
No mixed content tags. We are specifically not including any tags that contain mixed content in RSS 0.91. This means that each tag either contains sub-tags only, or text only, not a combination. This is both because we want to keep the format simple, and because our current validation system is not able to handle this type of tag. We also are not allowing any HTML markup beyond the commonly used entities such as " A full list of these are defined in the RSS 0.91 DTD.
New tags for syndication community. Our validator will now allow several new tags through the system, though most of them will not actually be used by Netcenter. However, these may work when syndicating content to other sites. These tags are noted explicitly in the spec as "ignored."
RDF references removed. RSS was originally conceived as a metadata format providing a summary of a website. Two things have become clear: the first is that providers want more of a syndication format than a metadata format. The structure of an RDF file is very precise and must conform to the RDF data model in order to be valid. This is not easily
human-understandable and can make it difficult to create useful RDF files. The second is that few tools are available for RDF generation, validation and processing. For these reasons, we have decided to go with a standard XML approach.
Specification
Tags in alphabetical order.
Description
information about a particular channel. Everything pertaining to
an individual channel is contained within this tag.
Netcenter Usage
Currently displayed on "My Netscape". May use in other locations in the future.
Attributes
none
Sub-elements:
required:
description
language
link
title
optional:
docs
image
item
lastBuildDate
managingEditor
pubDate
rating
skipDays
skipHours
textinput
webMaster
Examples
See
example 1
Description
copyright string
Netcenter Usage
ignored
Attributes
none
Sub-elements:
none
Examples
See
example 2
Description
The day of the week, spelled out in English.
Netcenter Usage
ignored
Attributes
none
Sub-elements:
none
Examples
See
example 2
Description
a plain text description of an item, channel, image, or textinput.
Netcenter Usage
displayed as appropriate depending on context.
Attributes
none
Sub-elements:
none
Examples
See
example channels
Description
This tag should contain a URL that references a description of the channel.
Netcenter Usage
ignored
Attributes
none
Sub-elements:
none
Examples
See
example 2
Description
Document Type Identifier. This is an XML tag that identifies where to find the definition for this format. It should follow the
xml
tag. The full DTD is
here.
Netcenter Usage
required to ensure document validity
Attributes
1 of these two formats is required:
rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" ""
rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd"
Sub-elements:
none
Examples
Description
Specifies the height of an
image
. Should be an integer value.
Netcenter Usage
The value must be between 1 and 400. If omitted, the default value is 31.
Attributes
none
Sub-elements:
none
Examples
See
image
Description
Specifies an hour of the day. Should be an integer value between 0 and 23. See
skipHours
Netcenter Usage
ignored
Attributes
none
Sub-elements:
none
Examples
See
skipHours
Description
Specifies an image associated with a
channel
Netcenter Usage
Optionally (user preference) display an image along with the channel content.
Attributes
none
Sub-elements:
required:
url
link
title
optional:
description
width
height
Examples
http://my.site.com/index.html
http://my.site.com/index.html
Description
An item that is associated with a
channel
. The item should represent a web-page, or subsection within a web page. It should have a unique URL associated with it. Each item must contain a title and a link. A description is optional.
Netcenter Usage
generates a list of links. The description, if supplied, may optionally be viewed by the user as plain text beneath the link. Also, a maximum of 15 items per channel is enforced at this time.
Attributes
none
Sub-elements:
required:
title
link
optional:
description
Examples
http://my.site.com/story1/index.html
http://my.site.com/story2/index.html
Description
Specifies the language of a
channel
. See
supported language codes
Netcenter Usage
used to assist user with determining correct page encoding
Attributes
none
Sub-elements:
none
Examples
See
example 1
Description
The last time the channel was modified.
Netcenter Usage
ignored
Attributes
none
Sub-elements:
none
Examples
See
example 2
Description
This is a url that a user is expected to click on, as opposed to a
that is for loading a resource, such as an image.
Netcenter Usage
must start with either "http://" or "ftp://". All other urls are considered invalid.
Attributes
none
Sub-elements:
none
Examples
See
examples
Description
The email address of the managing editor of the site, the person to contact for editorial inquiries
Netcenter Usage
ignored
Attributes
none
Sub-elements:
none
Examples
See
example 2
Description
The name of an object, corresponding to the "name" attribute of an HTML element. Currently, this only applies to
textinput
Netcenter Usage
generates "name" attribute in html form
Attributes
none
Sub-elements:
none
Examples
See
textinput
Description
Date when channel was published.
Netcenter Usage
ignored
Attributes
none
Sub-elements:
none
Examples
See
example 2
Description
recommended links rating agencies:
RSACi http://www.rsac.org (Click on 'register' link)
SafeSurf http://www.safesurf.com/ http://www.safesurf.com/classify/index.html (direct)
User actions:
Obtain a rating for your site from a well-known rating agency (eg RSACi, SafeSurf)
Copy rating data into RSS file. Include only the data within the 'content=' attribute.
Expected format:
starts with "(PICS-1.1"
Netcenter Usage
ignored. May use in the future to dynamically decide page rating.
Attributes
none
Sub-elements:
none
Examples
Tag obtained from rating agency:
RSS Rating tag:
Description
Identifies begin and end of rss content.
Netcenter Usage
identifies content type
Attributes
required:
version (must be 0.91)
Sub-elements:
required:
channel
Examples
...
Description
A list of
Netcenter Usage
ignored
Attributes
none
Sub-elements:
required:
day
Examples
Description
A list of
Netcenter Usage
ignored
Attributes
none
Sub-elements:
required:
hour
Examples
Description
An input field for the purpose of allowing users to submit queries back
to the publisher's site. This element should have a title, a link (to a cgi or other processor),
a description containing some instructions, and a name, to be used as the name in
the HTML tag
Netcenter Usage
Displays form for submission back to publisher.
Attributes
none
Sub-elements:
required:
title
link
description
name
Examples
http://my.site.com/search.cgi
Description
An identifying string for a resource. When used in an item, this is the name of the item's
link. When used in an image, this is the Alt text for the image. When used in
a channel, this is the channel's title. When used in a textinput, this is the
the textinput's title.
Netcenter Usage
displayed as appropriate depending on context.
Attributes
none
Sub-elements:
none
Examples
See
examples
Description
Location to load a resource from. Note that this is slightly different from the
link
tag, which specifies where a user should be re-directed to if a resource is selected.
Netcenter Usage
must start with either "http://" or "ftp://". All other urls are considered invalid.
Attributes
none
Sub-elements:
none
Examples
See
image
Description
The email address of the webmaster for the site, the person to contact if there are technical problems with the channel.
Netcenter Usage
ignored
Attributes
none
Sub-elements:
none
Examples
See
example 2
Description
Specifies the width of an
image
. Should be an integer value.
Netcenter Usage
The value must be between 1 and 144. If omitted, the default value is 88.
Attributes
none
Sub-elements:
none
Examples
See
image
Description
Identifies this as an XML document and specifies encoding. See
w3c
Note that this must be on the first line of the document.
Netcenter Usage
required for XML compliance.
Attributes
version: must be "1.0"
encoding: see
list
Sub-elements:
none
Example usage:
Example 1 - Simple
http://www.scripting.com/
http://www.scripting.com/
Example 2 - Complete
http://www.scripting.com/
http://www.scripting.com/
http://bar
http://my.site.com/search.cgi
Example 3 - International
http://www.mozilla.org
http://www.mozilla.org/status/
http://www.mozilla.org/status/
http://www.mozilla.org/status/
http://www.mozilla.org/status/
Supported languages
Why these?
These are the language codes that are accepted by Netcenter. Other language codes may be available
as specified
by the
w3c
, but these are guaranteed to work with most browsers. Netcenter will currently reject other language codes, however other sites may accept them.
Codes
af
Afrikaans
sq
Albanian
eu
Basque
be
Belarusian
bg
Bulgarian
ca
Catalan
zh-cn
Chinese (Simplified)
zh-tw
Chinese (Traditional)
hr
Croatian
cs
Czech
da
Danish
nl
Dutch
nl-be
Dutch (Belgium)
nl-nl
Dutch (Netherlands)
en
en-au
English (Australia)
en-bz
English (Belize)
en-ca
English (Canada)
en-ie
English (Ireland)
en-jm
English (Jamaica)
en-nz
English (New Zealand)
en-ph
English (Phillipines)
en-za
English (South Africa)
en-tt
English (Trinidad)
en-gb
English (United Kingdom)
en-us
English (United States)
en-zw
English (Zimbabwe)
fo
Faeroese
fi
Finnish
fr
French
fr-be
French (Belgium)
fr-ca
French (Canada)
fr-fr
French (France)
fr-lu
French (Luxembourg)
fr-mc
French (Monaco)
fr-ch
French (Switzerland)
gl
Galician
gd
Gaelic
de
German
de-at
German (Austria)
de-de
German (Germany)
de-li
German (Liechtenstein)
de-lu
German (Luxembourg)
de-ch
German (Switzerland)
el
Greek
hu
Hungarian
is
Icelandic
id
Indonesian
ga
Irish
it
Italian
it-it
Italian (Italy)
it-ch
Italian (Switzerland)
ja
Japanese
ko
Korean
mk
Macedonian
no
Norwegian
pl
Polish
pt
Portuguese
pt-br
Portuguese (Brazil)
pt-pt
Portuguese (Portugal)
ro
Romanian
ro-mo
Romanian (Moldova)
ro-ro
Romanian (Romania)
ru
Russian
ru-mo
Russian (Moldova)
ru-ru
Russian (Russia)
sr
Serbian
sk
Slovak
sl
Slovenian
es
Spanish
es-ar
Spanish (Argentina)
es-bo
Spanish (Bolivia)
es-cl
Spanish (Chile)
es-co
Spanish (Colombia)
es-cr
Spanish (Costa Rica)
es-do
Spanish (Dominican Republic)
es-ec
Spanish (Ecuador)
es-sv
Spanish (El Salvador)
es-gt
Spanish (Guatemala)
es-hn
Spanish (Honduras)
es-mx
Spanish (Mexico)
es-ni
Spanish (Nicaragua)
es-pa
Spanish (Panama)
es-py
Spanish (Paraguay)
es-pe
Spanish (Peru)
es-pr
Spanish (Puerto Rico)
es-es
Spanish (Spain)
es-uy
Spanish (Uruguay)
es-ve
Spanish (Venezuela)
sv
Swedish
sv-fi
Swedish (Finland)
sv-se
Swedish (Sweden)
tr
Turkish
uk
Ukranian
Supported encodings
Note: these are
not
case sensitive
IANA standard name
MIME preferred name (if different from IANA)
ANSI_X3.4-1968
US-ASCII
ISO_8859-1:1987
ISO-8859-1
ISO_8859-2:1987
ISO-8859-2
ISO_8859-5:1988
ISO-8859-5
ISO_8859-7:1987
ISO-8859-7
ISO_8859-9:1989
ISO-8859-9
Shift_JIS
Extended_UNIX_Code_Packed_Format_for_Japanese
EUC-JP
GB2312
EUC-KR
Big5
windows-1250
windows-1251
UTF-8
x-mac-roman
DTD
Location
Public ID: -//Netscape Communications//DTD RSS 0.91//EN
System ID:
The DTD itself
version CDATA #REQUIRED>
Proprietary Schema (Validation Rules)
Explanation
XML currently provides a limited amount of validation via DTD's. However, DTD's do not provide any support for common validation requirements, such as data types, length of strings, number of sub-elements, or pattern matching.
A standard has been proposed to solve this problem. XML Schemas looks like it will do all of this and more. Unfortunately, there are few, if any parsers available today that understand them.
As a proprietary,
interim only solution
, we have developed a very simplistic schema format that performs a second level of validation after the parser has read the XML document into memory. We are listing the schema used to validate RSS 0.91 files, so that there will be no ambiguity when validation fails.
Here are the basic rules:
Each XML element must be defined by an
Each Element definition must have a unique id attribute and a type attribute.
Each Attribute of an Element must be referenced by an
Each sub-Element of an Element of type container must be referenced by
Each Element may have a type associated with it. Currently supported types are:
container: this Element contains other Elements only.
string: this Element contains text data.
int: this Element contains an integer.
Each string or int Element may contain a matching rule, specified via
Each string or int Element may specify a minimum and maximum number of characters (or value if type int) via min, max, and exactly.
Each XML attribute must be defined by an
Each Attribute definition must have a unique id attribute and a type attribute.
Each Attribute may be of type string or int.
Each Attribute may contain a matching rule, specified via
Each Attribute may specify a minimum and maximum number of characters (or value if type int) via min, max, and exactly.
Each
Each
Each
corresponding Element or Attribute will be evaluated.
Schema
Here is the schema for RSS 0.91.
^(af | # Afrikaans
sq | # Albanian
eu | # Basque
be | # Belarusian
bg | # Bulgarian
ca | # Catalan
zh-cn | # Chinese (Simplified)
zh-tw | # Chinese (Traditional)
hr | # Croatian
cs | # Czech
da | # Danish
nl | # Dutch
nl-be | # Dutch (Belgium)
nl-nl | # Dutch (Netherlands)
en | # English
en-au | # English (Australia)
en-bz | # English (Belize)
en-ca | # English (Canada)
en-ie | # English (Ireland)
en-jm | # English (Jamaica)
en-nz | # English (New Zealand)
en-ph | # English (Phillipines)
en-za | # English (South Africa)
en-tt | # English (Trinidad)
en-gb | # English (United Kingdom)
en-us | # English (United States)
en-zw | # English (Zimbabwe)
fo | # Faeroese
fi | # Finnish
fr | # French
fr-be | # French (Belgium)
fr-ca | # French (Canada)
fr-fr | # French (France)
fr-lu | # French (Luxembourg)
fr-mc | # French (Monaco)
fr-ch | # French (Switzerland)
gl | # Galician
gd | # Gaelic
de | # German
de-at | # German (Austria)
de-de | # German (Germany)
de-li | # German (Liechtenstein)
de-lu | # German (Luxembourg)
de-ch | # German (Switzerland)
el | # Greek
hu | # Hungarian
is | # Icelandic
id | # Indonesian
ga | # Irish
it | # Italian
it-it | # Italian (Italy)
it-ch | # Italian (Switzerland)
ja | # Japanese
ko | # Korean
mk | # Macedonian
no | # Norwegian
pl | # Polish
pt | # Portuguese
pt-br | # Portuguese (Brazil)
pt-pt | # Portuguese (Portugal)
ro | # Romanian
ro-mo | # Romanian (Moldova)
ro-ro | # Romanian (Romania)
ru | # Russian
ru-mo | # Russian (Moldova)
ru-ru | # Russian (Russia)
sr | # Serbian
sk | # Slovak
sl | # Slovenian
es | # Spanish
es-ar | # Spanish (Argentina)
es-bo | # Spanish (Bolivia)
es-cl | # Spanish (Chile)
es-co | # Spanish (Colombia)
es-cr | # Spanish (Costa Rica)
es-do | # Spanish (Dominican Republic)
es-ec | # Spanish (Ecuador)
es-sv | # Spanish (El Salvador)
es-gt | # Spanish (Guatemala)
es-hn | # Spanish (Honduras)
es-mx | # Spanish (Mexico)
es-ni | # Spanish (Nicaragua)
es-pa | # Spanish (Panama)
es-py | # Spanish (Paraguay)
es-pe | # Spanish (Peru)
es-pr | # Spanish (Puerto Rico)
es-es | # Spanish (Spain)
es-uy | # Spanish (Uruguay)
es-ve | # Spanish (Venezuela)
sv | # Swedish
sv-fi | # Swedish (Finland)
sv-se | # Swedish (Sweden)
tr | # Turkish
uk # Ukranian
)$
Schema DTD
Here is the DTD for the schema format.
version CDATA #FIXED "DKHXVF 1.0"
root CDATA #REQUIRED
name CDATA #REQUIRED>
id CDATA #REQUIRED
type (int | float | container | string | timestamp) #REQUIRED
min CDATA #IMPLIED
max CDATA #IMPLIED
exactly CDATA #IMPLIED>
ref CDATA #REQUIRED
min CDATA #IMPLIED
max CDATA #IMPLIED
exactly CDATA #IMPLIED>
ref CDATA #REQUIRED
min CDATA #IMPLIED
max CDATA #IMPLIED
exactly CDATA #IMPLIED>
id CDATA #REQUIRED
type (int | float | string | timestamp) #REQUIRED
min CDATA #IMPLIED
max CDATA #IMPLIED
exactly CDATA #IMPLIED>
Main Menu
RSS Advisory Board
RSS Specification
RSS Profile
RSS Validator
RSS Autodiscovery
Board Members
Charter
RSS-Public Mailing List
RSS Language Codes
RSSCloud Interface
RSS History
RSS Feeds
This Weblog
Social Media
Mastodon
Spec Library
RSS 2.0 (Current)
RSS 2.0
RSS 0.92
RSS 0.91
(UserLand)
RSS 0.91
(Netscape)
RSS 0.90
RSS Change Notes
Namespaces
Creative Commons
Media RSS
Trackback
Archive
Site Index
Board Members
Rogers Cadenhead
Sterling "Chip" Camden
Simone Carletti
James Holderness
Jenny Levine
Eric Lunt
Randy Charles Morin
Ryan Parman
Jake Savin
Jason Shellen
Paul Querna
Other Formats
Atom
RDF Site Summary
Popular Pages on This Site
RSS Validator
Media RSS Specification (Current)
RSS 2.0 Specification
RSS Best Practices Profile
How to Redirect an RSS Feed
RSS Language Codes
Payloads for RSS
RSS Encoding Examples
RSS Autodiscovery
How to Read an RSS Feed with PHP Using SimplePie
RSS Advisory Board
RSS Feed
RSS Specification
Hosted by
Workbench
US