RSS 1.1 Payload Module

Initial Draft: 2005-01

Latest version:
http://inamidst.com/rss1.1/payload
Authors:
Sean B. Palmer (sean+rss@infomesh.net)
Christopher Schmidt (crschmidt@crschmidt.net)

This work is licensed under a Creative Commons License (by-nd 2.0+).


Abstract

This specification enables users to annotate their rss:item elements with well-formed XHTML. In this way, it provides the same functionality as the RSS 1.0 Content Module, which it deprecates, but instead ensures that well-formed markup is used.

Table of Contents

Or skip to section one.


1. Introduction

The RSS 1.1 Payload Module is an RSS extension module that enables users to include their entries' content in their RSS feeds. It provides the same functionality as <content:encoded> in the now deprecated RSS 1.0 Content Module, but instead of encoding the content using CDATA sections or HTML entities, the content must be well-formed XHTML.

Elements defined in this module:

Definition: extension module. An extension module is a mini-specification that defines one or more elements and attributes that can be incorporated in to RSS 1.1 documents. Each extension module must state the way or ways in which the content it defines can be incorporated, in such a way that every resulting document will be a conformant RSS 1.1 document.

2. The payload Element

This section is normative. The following RELAX NG Compact schema fragment defines the payload production, which all conforming payload elements defined by this specification must be an instance of:

default namespace = "http://purl.org/net/rss1.1/payload#"
namespace xhtml = "http://www.w3.org/1999/xhtml"
namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"

payload = element payload { 
   AttrRDFLiteral, mixed { XHTML* }
}

XHTML = element xhtml:* { 
   attribute * { text }*, 
   mixed { XHTML* }
}

AttrRDFLiteral = attribute rdf:parseType { "Literal" }

Syntax: The payload element MUST only be used as a child of the rss:item element. The single element defined by this specification, the payload element, may be used as an instance of the Any production of the RSS 1.1 Specification, as long as they're not nested inside other Any production instances.

Semantics: This element relates an item to an annotation thereof using well-formed XHTML. It may be used, for example, to provide the content of a weblog entry.

3. Example

The following is an example of how to use the payload element:

<Channel xmlns="http://purl.org/net/rss1.1#" 
   xmlns:p="http://purl.org/net/rss1.1/payload#" [...]>
   [...]
      <item rdf:about="http://example.org/58">
         <title>Morbus Speaks</title>
         <link>http://example.org/58</link>
         <description>Morbus talks out about the morning.</description>
         <p:payload rdf:parseType="Literal" 
             xmlns="http://www.w3.org/1999/xhtml">
            Morbus says he woke up today feeling minty fresh and exclaimed: 
            <q>Oh, what a <em>BeaaAUauUatiful</em> day!</q>
         </p:payload>
      
   [...]


Sean B. Palmer, Christopher Schmidt

Creative Commons Licence This work is licensed under a Creative Commons License.