Subject: PaceOtherVocabularies

From: Robert Sayre <[email-masked]>
Date: Mon, 16 May 2005 18:35:02 -0400

http://www.intertwingly.net/wiki/pie/PaceOtherVocabularies

== Abstract ==

Ban non-IETF use of the Atom namespace.

== Status ==

Open 

== Rationale ==

Keep extensions in other namespaces, so the Atom namespace can be
safely extended by the IETF.

== Proposal ==

=== 6.1 Extensions From Non-Atom Vocabularies ===

This specification describes Atom's XML markup vocabulary. Markup from
other vocabularies ("foreign markup") can be used in an Atom document,
but MUST be namespace-qualified and in a namespace other than Atom's.
Note that the atom:content element is designed to support the
inclusion of arbitrary foreign markup.

=== 6.2 Extensions To the Atom Vocabulary ===

Future versions of this specification could 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
markup error. For the purposes of this discussion, unrecognized markup
from the Atom vocabulary will be considered "foreign markup".

== Impacts ==

== Notes ==

---

From: Sam Ruby <[email-masked]>
Date: Mon, 16 May 2005 19:16:34 -0400

Robert Sayre wrote:
> 
> Software written to conform
> markup error.

Please replace that sentence with something reemphasizing the MustIgnore 
rule.

Stating that nobody else is allowed to use the Atom namespace, coupled 
with a statement that everybody must ignore elements that they don't 
understand paves the way for future IETF spec authors to safely add 
optional elements in a backwards compatible manner.

- Sam Ruby

---

From: Robert Sayre <[email-masked]>
Date: Mon, 16 May 2005 19:26:00 -0400

> Please replace that sentence with something reemphasizing the MustIgnore

Hmm. Section 6.2 was unchanged from format-08. I just put that in
there for context. Now I've included section 6.3 for more context. The
MustIgnore rule's first occurrence was always in 6.3. In format-08,
there's no difference between Atom and non-Atom extensions.

Robert Sayre

---

From: Mark Nottingham <[email-masked]>
Date: Mon, 16 May 2005 17:38:53 -0700

Does this imply that this (or another IETF) Working Group cannot mint 
an Atom extension without putting it into a new namespace, or changing 
the version number?

If so, I think it's a needless constraint. This WG might come up with a 
backwards-compatible extension and want to put it in the Atom namespace 
for convenience; that shouldn't necessitate bumping the version number 
(which would cause a lot of compatibility problems).

Cheers,

--
Mark Nottingham     http://www.mnot.net/

---

From: Robert Sayre <[email-masked]>
Date: Mon, 16 May 2005 20:47:48 -0400

> an Atom extension without putting it into a new namespace, or changing

They would have to bump the version number. That was the idea behind
PaceRemoveVersionAttr, AFAIK. Backwords-compatible changes bump the
version number, while backwords-incompatible changes need a new
namespace.

Robert Sayre

---

From: Henri Sivonen <[email-masked]>
Date: Tue, 17 May 2005 16:45:00 +0300

On May 17, 2005, at 01:35, Robert Sayre wrote:

> Markup from other vocabularies ("foreign markup") can be used in an 
> Atom document,

Surely attributes on extension elements don't need to be ns-qualified?

-- 
Henri Sivonen
[email-masked]
http://hsivonen.iki.fi/

---

From: Graham <[email-masked]>
Date: Tue, 17 May 2005 16:58:16 +0100

On 17 May 2005, at 2:45 pm, Henri Sivonen wrote:

>> Markup from other vocabularies ("foreign markup") can be used in  
>> an Atom document,

Yes, although extension attributes on Atom elements do need to be.

Graham