Abstract
This proposal provides content for section 9 "How To Extend Atom", noting the locations where non-Atom-namespace markup may be inserted and requiring "Must Ignore" behavior from software.
Status
Open.
Rationale
The default MustIgnore rule needs to be spelled out somewhere.
Proposal
(These sub-section numbers will be bumped by 1 if PaceExtensionConstruct is accepted.)
=== 9. Extending Atom ===
==== 9.1 Extensions From Non-Atom Vocabularies ====
This specification describes Atom's XML markup vocabulary. Markup from
other vocabularies ("foreign markup") can be used in Atom in a variety of
ways. Text Constructs may contain foreign markup which SHOULD be HTML or
XHTML. The atom:content element is designed to support the inclusion of
arbitrary foreign markup.
Also, Person Constructs, the atom:head element, and the atom:entry element
allow the inclusion of foreign markup.
==== 9.2 Extensions To the Atom Vocabulary ====
Future versions of this specification may add new elements and attributes
to the Atom markup vocabulary. Software written to conform to this version
of the specification will not be able to process such markup correctly and,
in fact, will not be able to distinguish it from a markup error. For the
purposes of this discussion, unrecognized markup from the Atom vocabulary
will be considered "foreign markup".
Unlike markup from other vocabularies, foreign markup from the Atom
vocabulary MAY appear at any location in an Atom document.
==== 9.3 Software Processing of Foreign Markup ====
Software processing an Atom Document which encounters foreign markup in a
location that is legal according to this specification MUST NOT stop
processing or signal an error. It may be the case that the software is able
to process the foreign markup correctly and does so. Otherwise, such markup
is termed "unknown foreign markup".
When unknown foreign markup is encountered as a child of atom:entry,
atom:head, or a Person Construct, software SHOULD bypass the markup and any
textual content and MUST NOT change its behavior as a result of the
markup's presence.
When unknown foreign markup is encountered in a Text Contruct or
atom:content element, software SHOULD ignore the markup and process any
text content of foreign elements as though the surrounding markup were not
present.
Discussion
Author
TimBray (with advice from Dave Orchard)
