Browsable Atom Grammar

CC-BY

Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: markup/textual/atom/dettrick/extracted
Source used for this grammar: Tim Dettrick, RELAX NG XML Syntax Grammar for the Atom Format Specification Version 11, Converted from Relax NG Compact Syntax Grammar, as seen in RFC 4287, 2013-01-24 04:06:41 [GitHubGist]

Summary

Syntax

atomCommonAttributes ::=
	[xml:base]::atomUri? [xml:lang]::atomLanguageTag? undefinedAttribute*
atomPlainTextConstruct ::=
	atomCommonAttributes [type]::("text" | "html")? string
atomXHTMLTextConstruct ::=
	atomCommonAttributes [type]::"xhtml" xhtmlDiv
atomTextConstruct ::=
	atomPlainTextConstruct
	atomXHTMLTextConstruct
atomPersonConstruct ::=
	atomCommonAttributes [atom:name]::string [atom:uri]::atomUri? [atom:email]::atomEmailAddress? extensionElement*
atomDateConstruct ::=
	atomCommonAttributes string
atomFeed ::=
	[atom:feed]::(atomCommonAttributes atomAuthor* atomCategory* atomContributor* atomGenerator? atomIcon? atomId atomLink* atomLogo? atomRights? atomSubtitle? atomTitle atomUpdated extensionElement* atomEntry*)
atomEntry ::=
	[atom:entry]::(atomCommonAttributes atomAuthor* atomCategory* atomContent? atomContributor* atomId atomLink* atomPublished? atomRights? atomSource? atomSummary? atomTitle atomUpdated extensionElement*)
atomInlineTextContent ::=
	[atom:content]::(atomCommonAttributes [type]::("text" | "html")? string*)
atomInlineXHTMLContent ::=
	[atom:content]::(atomCommonAttributes [type]::"xhtml" xhtmlDiv)
atomInlineOtherContent ::=
	[atom:content]::(atomCommonAttributes [type]::atomMediaType? (string | anyElement)*)
atomOutOfLineContent ::=
	[atom:content]::(atomCommonAttributes [type]::atomMediaType? [src]::atomUri)
atomContent ::=
	atomInlineTextContent
	atomInlineXHTMLContent
	atomInlineOtherContent
	atomOutOfLineContent
atomAuthor ::=
	[atom:author]::atomPersonConstruct
atomCategory ::=
	[atom:category]::(atomCommonAttributes [term]::string [scheme]::atomUri? [label]::string? undefinedContent)
atomContributor ::=
	[atom:contributor]::atomPersonConstruct
atomGenerator ::=
	[atom:generator]::(atomCommonAttributes [uri]::atomUri? [version]::string? string)
atomIcon ::=
	[atom:icon]::(atomCommonAttributes atomUri)
atomId ::=
	[atom:id]::(atomCommonAttributes atomUri)
atomLogo ::=
	[atom:logo]::(atomCommonAttributes atomUri)
atomLink ::=
	[atom:link]::(atomCommonAttributes [href]::atomUri [rel]::(atomNCName | atomUri)? [type]::atomMediaType? [hreflang]::atomLanguageTag? [title]::string? [length]::string? undefinedContent)
atomPublished ::=
	[atom:published]::atomDateConstruct
atomRights ::=
	[atom:rights]::atomTextConstruct
atomSource ::=
	[atom:source]::(atomCommonAttributes atomAuthor* atomCategory* atomContributor* atomGenerator? atomIcon? atomId? atomLink* atomLogo? atomRights? atomSubtitle? atomTitle? atomUpdated? extensionElement*)
atomSubtitle ::=
	[atom:subtitle]::atomTextConstruct
atomSummary ::=
	[atom:summary]::atomTextConstruct
atomTitle ::=
	[atom:title]::atomTextConstruct
atomUpdated ::=
	[atom:updated]::atomDateConstruct
atomNCName ::=
	string
atomMediaType ::=
	string
atomLanguageTag ::=
	string
atomUri ::=
	string
atomEmailAddress ::=
	string
simpleExtensionElement ::=
	string
structuredExtensionElement ::=
	α+ (string | anyElement)*
	α* string? anyElement+ (string | anyElement)*
extensionElement ::=
	simpleExtensionElement
	structuredExtensionElement
undefinedAttribute ::=
	α
undefinedContent ::=
	(string | anyForeignElement)*
anyElement ::=
	(α | string | anyElement)*
anyForeignElement ::=
	(α | string | anyElement)*
anyXHTML ::=
	(α | string | anyXHTML)*
xhtmlDiv ::=
	[xhtml:div]::(α | string | anyXHTML)*

GrammarLabMaintained by Dr. Vadim Zaytsev a.k.a. @grammarware. Last updated in September 2015. []