PSS 0.02 Specification

pss

Contents

What is PSS?

PSS is a Web content syndication format.

Its name is an acronym for Product Simple Syndication.

PSS is a dialect of XML. All PSS files must conform to the XML 1.0 specification, as published on the World Wide Web Consortium (W3C) website.

A summary of PSS version history.

At the top level, a PSS document is a <pss> element, with a mandatory attribute called version, that specifies the version of PSS that the document conforms to. If it conforms to this specification, the version attribute must be 0.02.

Subordinate to the <pss> element is a single <manufacturer> element, which contains information about the manufacturer (metadata) and its products.

Sample files

Here are sample files for: PSS 0.02.

About this document

This document represents the current status of PSS anduse as a template the structure of the RSS 2.11 specification. Change notes are here.

First we document the required and optional sub-elements of <manufacturer>; and then document the sub-elements of <brand> and <item>. The final sections answer frequently asked questions, and provide a roadmap for future evolution, and guidelines for extending PSS.

The PSS Profile contains a set of recommendations for how to create PSS documents that work best in the wide and diverse audience of client software that supports the format.

PSS documents can be tested for validity in the PSS Validator.

Required manufacturer elements

Here’s a list of the required manufacturer elements, each with a brief description, an example, and where available, a pointer to a more complete description.

Element Description Example
name The name of the manufacturer. Beverage Alpha
link The URL to the manufacturer official HTML website http://www.b-alpha.com/
description Phrase or sentence describing the activity of the manufacturer. Fruit juice producer.

Optional manufacturer elements

Here’s a list of optional manufacturer elements.

Element Description Example
language The language the manufacturer is written in. This allows aggregators to group all Italian language sites, for example, on a single page. A list of allowable values for this element, as provided by Netscape, is here. en-us
copyright Copyright notice for content in the feed. Copyright 2013, Beverage Alpha
managingEditor Email address for person responsible for editorial content. jacob@beverage-alpha.com (Jacob Marley)
webMaster Email address for person responsible for technical issues relating to feed. robert@beverage-alpha.com (Robert Marley)
pubDate The publication date for the content in the feed. All date-times in RSS conform to the Date and Time Specification of RFC 822, with the exception that the year may be expressed with two characters or four characters (four preferred). Sun, 15 Oct 2013 16:52:00 GMT
lastBuildDate The last time the content of the feed changed. Sun, 15 Oct 2013 17:35:23 GMT
category Specify one or more categories that the manufacturer belongs to. Follows the same rules as the <item>-level category element. More info. <category>Newspapers</category>
generator A string indicating the program used to generate the feed. MightyInHouse Content System v2.3
docs A URL that points to the documentation for the format used in the PSS file. It’s probably a pointer to this page. It’s for people who might stumble across an PSS file on a Web server 25 years from now and wonder what it is. http://www.product-open-data.com/pss-specification
ttl ttl stands for time to live. It’s a number of minutes that indicates how long a manufacturer can be cached before refreshing from the source. More info here. <ttl>60</ttl>
image Specifies a GIF, JPEG or PNG image representing the manufactuer’s logo that can be displayed. More info here.
rating The PICS rating for the feedr.
textInput Specifies a text input box that can be displayed with the manufacturer. More info here.
skipHours A hint for aggregators telling them which hours they can skip. This element contains up to 24 <hour> sub-elements whose value is a number between 0 and 23, representing a time in GMT, when aggregators, if they support the feature, may not read the feed on hours listed in the <skipHours> element. The hour beginning at midnight is hour zero.
skipDays A hint for aggregators telling them which days they can skip. This element contains up to seven <day> sub-elements whose value is Monday, Tuesday, Wednesday, Thursday, Friday, Saturday or Sunday. Aggregators may not read the feed during days listed in the <skipDays> element.

<image> sub-element of <manufacturer>

<image> is an optional sub-element of <manufacturer>, which contains three required and three optional sub-elements.

<url> is the URL of a GIF, JPEG or PNG image that represents the manufacturer’s logo.

<title> describes the image, it’s used in the ALT attribute of the HTML <img> tag when the manufacturer is rendered in HTML.

<link> is the URL of the site, when the feed is rendered, the image is a link to the site. (Note, in practice the image <title> and <link> should have the same value as the manufacturer’s <title> and <link>.

Optional elements include <width> and <height>, numbers, indicating the width and height of the image in pixels. <description> contains text that is included in the TITLE attribute of the link formed around the image in the HTML rendering.

Maximum value for width is 144, default value is 88.

Maximum value for height is 400, default value is 31.

<ttl> sub-element of <manufacturer>

<ttl> is an optional sub-element of <manufacturer>.

ttl stands for time to live. It’s a number of minutes that indicates how long a feed can be cached before refreshing from the source. This makes it possible for RSS sources to be managed by a file-sharing network such as Gnutella.

Example:

<ttl>60</ttl>

<textInput> sub-element of <manufacturer>

A manufacturer may optionally contain a <textInput> sub-element, which contains four required sub-elements.

<title> — The label of the Submit button in the text input area.

<description> — Explains the text input area.

<name> — The name of the text object in the text input area.

<link> — The URL of the CGI script that processes text input requests.

The purpose of the <textInput> element is something of a mystery. You can use it to specify a search engine box. Or to allow a reader to provide feedback. Most aggregators ignore it.

Requiered brand’s elements

A manufacturer may contain any number of <brand>s. The difference between a product line and a brand has to be defined by the manufacturer;

Here’s a list of requiered brand elements.

Element Description Example
name Name of the brand. Super Juice

Optional brand’s elements

Here’s a list of optional brand elements.

Element Description Example
description Phrase or sentence describing the activity of the manufacturer. Fruit juice producer.
image Specifies a GIF, JPEG or PNG image representing the manufactuer’s logo that can be displayed. More info here.

<image> sub-element of <brand>

<image> is an optional sub-element of <manufacturer>, which contains three required and three optional sub-elements.

<url> is the URL of a GIF, JPEG or PNG image that represents the brand’s logo.

<title> describes the image, it’s used in the ALT attribute of the HTML <img> tag when the brand is rendered in HTML.

<link> is the URL of the site, when the feed is rendered, the image is a link to the site. (Note, in practice the image <title> and <link> should have the same value as the brand’s <title> and <link>.

Optional elements include <width> and <height>, numbers, indicating the width and height of the image in pixels. <description> contains text that is included in the TITLE attribute of the link formed around the image in the HTML rendering.

Maximum value for width is 144, default value is 88.

Maximum value for height is 400, default value is 31.

Requiered item’s elements

A brand may contain any number of <item>s. An item may represent a product or a live animal;

Here’s a list of requiered item elements.

Element Description Example
gtin The GTIN composed of 13 digits and officially assigned by the GS1 organization. GTIN-12 must be left padded with a zero. The code can be tested for validity with the GS1 check digit calculator. 3272036004636
name The commercialization name of the item. Pure orange juice extra
brand The URL of the item. Bio juice
gpc The GPC Brick code of the item. This code is used to classify the item. GS1 Website provides the list of all the possible GPC Brick codes. 10000201

Optional item’s elements

Here’s a list of optional item elements.

Element Description Example
productLine The product line of the product. Note that this element is clearly linked to the business of the manufacturer, his structure and history. Skin Care in cosmetic
measure Specifies the measures of weight, volume and alcohol. More info here.
packaging Specifies the attributes of the packaging. More info here.
image Specifies a GIF, JPEG or PNG image of the item. More info here.
description Presentation the item. This text can be subjective. The best orange juice…
link URL of a item page on the manufacturer’s website.
ref Reference used by the manufacturer to identify a product before its commercialization. AX23568B
commDate Indicates when the item was commercialized.More.

<image> sub-element of <item>

<image> is an optional sub-element of <item>, which contains three required and three optional sub-elements.

<url> is the URL of a GIF, JPEG or PNG image of the item.

<title> describes the image, it’s used in the ALT attribute of the HTML <img> tag when the manufacturer is rendered in HTML.

<link> is the URL of the site, when the feed is rendered, the image is a link to the site. (Note, in practice the image <title> and <link> should have the same value as the item’s <title> and <link>.

Optional elements include <width> and <height>, numbers, indicating the width and height of the image in pixels. <description> contains text that is included in the TITLE attribute of the link formed around the image in the HTML rendering.

Maximum value for width is 144, default value is 88.

Maximum value for height is 400, default value is 31.

<measure> sub-element of <item>

<measure> is an optional sub-element of <item>, which contains six optional sub-elements. Note that the volume and the weight measure may be indicated for certain type of product.

<ml> — The volume of the item in milliliters (ml).

<floz> — The volume of the item in fluid ounces (fl oz).

<g> — The weight of the item in grams (g).

<g> — The weight of the item in ounces (oz).

<abv> — The alcohol by volume (ABV). The degree (°) and percentage (%) have the same meaning.

<abw> — The alcohol by weight (ABW), used by some brewers instead of ABV. The degree (°) and percentage (%) have the same meaning.

<packaging> sub-element of <item>

<packaging> is an optional sub-element of <item>, which contains two optional sub-elements.

<description> — Indicate the type of material used to do the pack and the shape (ex: glass bottle).

<internalUnit> — The number of identical elements contained into a product (ex: pack of 4 pots of yogurt).

<commDate> sub-element of <item>

<commDate> is an optional sub-element of <item>.

Its value is a date, indicating when the item was commercialized. If it’s a date in the future, aggregators may choose to not display the item until that date.

Comments

If you have questions about the PSS format, please post them on the PSS Public group . The group serves as a support resource for users, authors and developers who are creating and using content in the format.

Extending PSS

PSS is an adaptation of the RSS feeds, the main key used for aggregation is the product GTIN code instead of the date for the News contained in RSS.

RSS originated in 1999, and has strived to be a simple, easy to understand format, with relatively modest goals. After it became a popular format, developers wanted to extend it using modules defined in namespaces, as specified by the W3C.

RSS 2.0 adds that capability, following a simple rule. A RSS feed may contain elements and attributes not described on this page, only if those elements and attributes are defined in a namespace.

The elements defined in this document are not themselves members of a namespace, so that RSS 2.0 can remain compatible with previous versions in the following sense — a version 0.91 or 0.92 file is also a valid 2.0 file. If the elements of RSS 2.0 were in a namespace, this constraint would break, a version 0.9x file would notbe a valid 2.0 file.

Roadmap

The first version of PSS is clearly focused on the food & beverage products so it will probably updated to fit with characterisitcs to other kind of products. Some elements are currently not refering to codification (brand, type of packaging,…), the addition of standard codification is important.

License and authorship

This document is authored by the Philippe Plagnol and is offered under the terms of the Creative Commons Attribution/Share Alike license, based on an original RSS specification published by the Berkman Center for Internet & Society at Harvard Law School authored by Dave Winer.

Comments are closed.