[semantics are given in "quotes"]
[some elements are simply defined in terms of Dublin Core elements]
[uppercase MUST/SHOULD/MAY language is normative; lowercase language is just me
talking]
[this snapshot does not allow xml:base, although a future snapshot might, once
we figure out what it ought to apply to]
[xml:lang may appear on any element, including but not limited to feed, entry,
content, title, summary]
- XML vocabulary
- no DTD
- no normative schema (yet)
- no strings have normative length limitations
- namespace: http://purl.org/atom/ns#
- top-level element: feed
feed element
required attributes of feed:
- @version. currently the only acceptable value is 0.2. (0.1 is obsolete and
should not be used.)
optional attributes of feed:
- xml:lang. SHOULD be included. MAY be overwritten on individual entries, if
the feed contains entries in more than one language.
required children of feed:
- title. occurs 1. xsd:string. "dc:title". if this feed describes a
website, SHOULD be the title of the website.
- link. occurs 1. xsd:anyURI. "the link to the website described by this
feed". if this feed describes a website, SHOULD be a link to the homepage of
the website.
- modified. occurs 1. W3DTF. "dcterms:modified". the modification date of
the feed, including any changes to any of the listed entries. SHOULD be UTC.
- author. no content, but has subchildren, see below. occurs 0 or 1. at
least one of the following MUST be true: 1. feed contains author; 2. every
entry contains author. if feed contains author and entry does not, the feed's
author element is inherited and applies to that entry. if both a feed and an
entry within the feed contain an author, the entry's author overrides the
feed's author. every entry MUST have exactly one author.
optional children of feed:
- tagline. occurs 0 or 1. xsd:string. "dc:description". "a short
human-readable tagline for this feed". examples: "All the news that's fit to
print" (tagline of NYT).
- id. occurs 0 or 1. xsd:anyURI. "permanent, globally unique ID of this
feed." MUST NOT change, ever, even if the feed is moved to a new server. for
this reason, it probably shouldn't be the same as feed/link, although it MAY
be. we're currently discussing options, including and
GUID in the COM/CORBA sense.
- generator. occurs 0 or 1. xsd:anyURI. "URI of the toolkit that generated
this feed." SHOULD be home page of toolkit/program/hosting provider, example
http://www.movabletype.org/. MAY include version number, example:
http://www.movabletype.org/?v=2.64.
- generator optional attribute: @name. xsd:string. "human-readable name of
the toolkit that generated this feed". example: name="Movable Type"
- copyright. occurs 0 or 1. xsd:string. "dc:rights". "human-readable
copyright statement for this feed." for machine-readable licensing
information, producers SHOULD use an extension module (to be defined).
- entry. see below
- contributor. occurs 0 or more. no content, but has children, see below
author element
required children of author:
- name. occurs 1. xsd:string. "dc:creator" of feed or entry (depending on
where author element is). MAY be name of corporation, if there are no
individual authors or publisher does not wish to make their names available.
see
optional children of author:
- url. occurs 0 or 1. xsd:anyURI. "the URL of this author".
- email. occurs 0 or 1. whatever standard defines email address syntax,
including plus signs and other allowable weird characters. "the email address
of this author".
entry element - no content, no attributes (other than optional xml:lang)
required children of entry:
- title. occurs 1. xsd:string. "dc:title"
- link. occurs 1. xsd:anyURI. "permanent link to a representation of this
entry". is NOT defined as "link to an external resource described in the
content of this entry". MUST be permanent. MUST be globally unique. MUST be
clickable (not sure how to express this, perhaps "use an IANA-registered
protocol and point to a resource that is viewable by ... uh, something)
- id. occurs 1. xsd:anyURI. "dc:identifier". "permanent globally unique ID
of this entry". MUST be permanent, MUST be globally unique. MAY be same as
link. current recommendations are under active discussion, same issues as
feed/id.
- issued. occurs 1. W3DTF minus timezone requirement. "dcterms:issued".
SHOULD include timezone. SHOULD be expressed in publisher's local timezone.
MAY skip timezone (LiveJournal requirement).
- modified. W3DTF. "dcterms:modified". SHOULD be UTC.
optional children of entry:
- created. occurs 0 or 1. W3DTF. "dcterms:created". SHOULD be UTC. if not
present, its value is presumed to be identical to modified.
- summary. occurs 0 or 1. xsd:string. "dc:description". "short summary,
blurb, or excerpt about this entry". MUST be plain text (i.e. no escaped
HTML). examples of use: lead on first page of news site.
- author. see above
- contributor. occurs 0 or more. no content, but has children, see below
- content. occurs 0 or more. see below
contributor element
same required and optional elements as author. name is "dc:contributor", url
and email are the same as in author.
content element
required attributes:
- @type. MIME type. "format of this content"
optional attributes:
- xml:lang.
- @mode. 'xml', 'escaped', or 'base64'. "method using to encode this
content". if 'xml', value is inline xml (probably namespaced XHTML). if
'escaped', value is an escaped xsd:string which consumers MUST unescap and
treat as @type. if 'base64', value is base64-encoded which consumers MUST
base64-decode and treat as @type.
if content @type="multipart/alternative", @mode MUST NOT be specified, and
content element MUST contain 1 or more content elements. These content
elements MUST NOT specify @type="multipart/alternative" (i.e. only one level of
nesting is allowed). Consumers SHOULD look at all alternative content elements
and determine which one is most suitable, based on which @type and @mode the
consumer supports, and preferences specified by the end user (if any).
Consumers SHOULD NOT render more than one content alternative.