# RELAX NG Compact Schema for RSS 1.1 # Sean B. Palmer, inamidst.com # Christopher Schmidt, crschmidt.net # License: This schema is in the public domain default namespace rss = "http://purl.org/net/rss1.1#" namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" namespace NoNS = "" start = Channel ## http://purl.org/net/rss1.1#Channel Channel = element Channel { Channel.content } Channel.content = ( AttrXMLLang?, AttrXMLBase?, AttrRDFAbout, (title & link & description & image? & Any* & items) ) ## http://purl.org/net/rss1.1#title title = element title { title.content } title.content = ( AttrXMLLang?, text ) ## http://purl.org/net/rss1.1#link link = element link { link.content } link.content = ( xsd:anyURI ) ## http://purl.org/net/rss1.1#description description = element description { description.content } description.content = ( AttrXMLLang?, text ) ## http://purl.org/net/rss1.1#image image = element image { image.content } image.content = ( AttrXMLLang?, AttrRDFResource, (title & link? & url & Any*) ) ## http://purl.org/net/rss1.1#url url = element url { url.content } url.content = ( xsd:anyURI ) ## http://purl.org/net/rss1.1#items items = element items { items.content } items.content = ( AttrXMLLang?, AttrRDFCollection, item* ) ## http://purl.org/net/rss1.1#item item = element item { item.content } item.content = ( AttrXMLLang?, AttrRDFAbout, (title & link & description? & image? & Any*) ) ## http://purl.org/net/rss1.1#Any Any = element * - ( rss:* ) { Any.content } Any.content = ( attribute * - ( rss:* | NoNS:* ) { text }*, mixed { Any* } ) AttrXMLLang = attribute xml:lang { xsd:language } AttrXMLBase = attribute xml:base { xsd:anyURI } AttrRDFAbout = attribute rdf:about { xsd:anyURI } AttrRDFResource = attribute rdf:parseType { "Resource" } AttrRDFCollection = attribute rdf:parseType { "Collection" }