default namespace = "http://www.w3.org/2005/Atom" namespace local = "" namespace atom = "http://www.w3.org/2005/Atom" namespace xsd = "http://www/w3/org/2001/XMLSchema-datatypes" namespace xhtml = "http://www.w3.org/1999/xhtml" namespace xml = "http://www.w3.org/XML/1998/namespace" anyNode = element * { ( attribute * text )*, anyNode* } | text author = element author person category = element category { attribute term text & ( attribute scheme uri )? & ( attribute label text )? & ( extension+ )? & common } common = ( attribute xml:base uri )? & ( attribute xml:lang languageTag )? & ( undefinedAttribute+ )? content = element content { common, ( attribute type "text", text ) | ( attribute type "html", text ) | ( attribute type "xhtml", divXHTML ) | ( mediaType?, attribute src uri, empty ) | ( mediaType?, text | anyNode ) } contributor = element contributor person dateConstruct = common, xsd:datetime divXHTML = element xhtml:div { ( attribute * text )*, xhtmlNode* | text } emailAddress = xsd:string { pattern = ".+@.+" } entry = element entry { ( author+ )? & ( category+ )? & content? & ( contributor+ )? & id & ( link+ )? & ( element published dateConstruct )? & ( element rights textConstruct )? & source? & ( element summary textConstruct )? & element title textConstruct & element updated dateConstruct & ( extension+ )? & common } extension = element * - atom:* { ( attribute * text )*, anyNode* } feed = element feed { ( author+ )? & ( category+ )? & ( contributor+ )? & generator? & icon? & id & ( link+ )? & logo? & ( element rights textConstruct )? & ( element subtitle textConstruct )? & element title textConstruct & element updated dateConstruct & ( extension+ )? & ( entry+ )? & common } generator = element generator { ( attribute uri uri )? & ( attribute version text )? & common & text } icon = element icon { common, uri } id = element id { common, uri } languageTag = xsd:string { pattern = "[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*" } link = element link { attribute href uri & ( attribute rel { relName | uri } )? & ( attribute type { xsd:string { pattern = ".+/.+" } } )? & ( attribute hreflang languageTag )? & ( attribute title text )? & ( attribute length text )? & ( extension+ )? & common } logo = element logo { common, uri } mediaType = xsd:string { pattern = ".+/.+" } person = element name text & ( element uri uri )? & ( element email emailAddress )? & ( extension+ )? & common relName = xsd:string { minLength = "1" pattern = "[^: ]*" } source = element source { ( author+ )? & ( category+ )? & ( contributor+ )? & generator? & icon? & id? & ( link+ )? & logo? & ( element rights textConstruct )? & ( element subtitle textConstruct )? & ( element title textConstruct )? & ( element updated dateConstruct )? & ( extension+ )? & common } textConstruct = ( attribute type "html", common, text ) | ( attribute type "xhtml", common, text ) | ( ( attribute type "text" )?, common, text ) undefinedAttribute = attribute * - (xml:base | xml:lang | local:*) text uri = text xhtmlNode = element xhtml:* { ( attribute * text )*, xhtmlNode* } | text