Home | Index

SearchMonkey Guide

Appendix A. DataRSS Specification

Table of Contents

Adjunct Syntax Specification
DataRSS Elements
adjunctcontainer
adjunct
item
meta
DataRSS Attributes
Relax NG Compact Syntax

Adjunct Syntax Specification

The Adjunct Syntax Specification describes a method called DataRSS for embedding arbitrary metadata within feed vocabularies, including RSS, Atom, IDIF, and others.

DataRSS Elements

DataRSS has four elements:

adjunctcontainer

A container for adjunct elements, and the top-level element that defines a DataRSS feed.

  • Attributes — None

adjunct

The outermost container element for metadata assertions.

item

Represents a specific resource, item or object. Each item described by the feed has an item element, with a rel attribute describing the relationship of this object to the current resource. Optionally, a resource attribute contains the URL of the item. This URL is optional—there will be cases where an item doesn't have one. In RDF terms, each item element establishes a triple between the parent item (or adjunct) and another object, possibly a "blank node", and sets the new object as the current resource.

  • Namespace — http://search.yahoo.com/datarss/

  • Attributes

  • Reserved Attributes

    • role

    • about

    • rev

    • instanceof

    • href

    • src

  • Content Model ? meta* | item*

meta

Represents a specific metadata assertion against the current object, normally the parent element in DataRSS, assigning a literal value. Each specific metadata assertion about the current resource is contained in a meta element, which functions similarly to the XHTML element of the same name. The property attribute is required. Normally, this element should have text content representing the literal value of the property.

  • Namespace — http://search.yahoo.com/datarss/

  • Attributes

  • Reserved Attributes

    • role

    • content

    • instanceof

  • Content Model ― Empty

DataRSS Attributes

attribute Contents Description
version A numeric version string. Required. String. Normally "1.0" for an initial version. If the content or structure of your adjunct changes significantly, the version number should be increased by 0.1 for minor changes and 1.0 for large changes so that developers using your data can be alerted to changes.
id A unique identifier of a publisher group within a specific organization; normally auto-assigned by the system. String. In adjuncts that come from feeds, the id is automatically computed and does not need to be specified.
name A human-readable name for an adjunct.

This attribute is not displayed to developers in the developer too.

Required. String. In incoming feeds, the name of an adjunct serves to differentiate it from other adjuncts, and is used to generate an internal system identifier. To avoid potential confusion, a name attribute should have a value that is globally unique, for example containing a reversed link name, like "com.yahoo.shopping".
updated An ISO 8601 date-time stamp conforming to the xsd:dateTime datatype. Optional. The moment in time of the last update to this adjunct. If not present, the system will insert the datetime during processing. Normally taken from the containing feed. Newer-dated adjuncts will replace older-dated ones on the same URL.
property A CURIE indicating a metadata vocabulary, in prefix and name, after prefix. The property attribute from RDFa.
datatype A CURIE indicating the datatype of a metadata value. The datatype attribute from RDFa.
resource The literal value (object) of a triple that is to be treated.  
xml:base A standard XML attribute that sets the Base URI for relative URLs, additionally sets the root subject for metadata assertions.  
xml:lang A standard XML attribute that describes the human language of the contents, taken from RFC 3066  

Relax NG Compact Syntax

namespace y = "http://search.yahoo.com/datarss/"
datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes"

start = ADJUNCT

CURIE = xsd:string # must conform to CURIE syntax

ADJUNCT = element y:adjunct {
      attribute id { xsd:string }? &
      attribute version { xsd:string } &
      attribute updated { xsd:dateTime }? &
      attribute name { xsd:string }? &
      ITEM* &
      META* }

ITEM = element y:item {
      attribute rel { CURIE } &
      attribute resource { xsd:anyURI }? &
      attribute xml:base { xsd:string }? &
      attribute xml:lang { xsd:language }? &
      ITEM* &
      META* }

META = element y:meta {
      attribute property { CURIE } &
      attribute datatype { CURIE }? &
      attribute content { xsd:string }? &
      attribute xml:base { xsd:string }? &
      attribute xml:lang { xsd:language }? &
      text }