Thomas Broyer wrote: > 2007/10/15, James M Snell: > > I wanted to see what others thought about this. How should such > > extensions be treated? What if someone wanted to come along and > > invent a new element in the atom namespace, e.g. <atom:foo > />. What > > should the validator do? Ignore it? Signal an error?
I wrote a validator that can be put between an APP client and APP server to ensure that they are both complying with the spec when exchanging entries. It just short-circuits the communication at the first error detected, like an XML parser does. I provide no distinction between unrecoverable errors, recoverable errors, or warnings. I have chosen to allow any atom element to have any extra attributes, in any namespace (including the empty namespace), since that seems to be the intention of section 6.2 of RFC4287. > Section 6.3 defines error-recovery, it does not mean however > that "unrecognized markup from the Atom vocabulary" is not an error. In 6.4, it says "Atom allows foreign markup anywhere in an Atom document, except where it is explicitly forbidden." So, even foreign markup in atom:id, and atom:updated is allowed, in spite of the Relax NG schema. > Validators should throw an error for those attributes and > elements "from the Atom vocabulary" that hasn't been defined > in RFC4287 or another I-D. The specification does not say validators should throw an error. It really doesn't explicitly state what processors should do. But, I think that 6.2's strongly suggests that markup that is not understood should be allowed, because it might be defined in an update of RFC4287. - Brian
