Subject: [draft-freed-sieve-in-xml-02] Unknown Markup

From: Robert Burrell Donkin <[email-masked]>
Date: Fri, 30 Jan 2009 22:37:36 +0000

(i left till last since i find this issue difficult to explain and
easy to misunderstand.
i have proposed the de facto status quo, as i see it. it is a
reasonable position
though probably not one that i would strongly advocate.)

Background
----------
A. Validation
 Validating that an arbitrary XML document satisfies an specific schema
 (as opposed to satisfying schema it declares) is - in practice -
 inconvenient. As a library author, I would not validate unless
 this was explicitly required by the specification for the following
 reasons:

 1. Though - in theory - modern validating parsers run almost
    as fast non-validating parser, there is still - in practice -
    a performance hit associated with obtaining a copy
    of the schema and parsing it. A catelog would be required for
    urn:ietf:params:xml:ns:sieve which is often inconvenient.

 2. When dealing with a mixed namespace, it is often inconvenient
    to validate unless a unified schema is available. When mixing
    a urn:ietf:params:xml:ns:sieve with unknown namespaces,
    obtaining such a schema would be difficult unless the document
    supplied one.

 3. Schema validation is not - in practice - quite as portable as
    might be desired.

 Instead, I would attempt to process the document and then stop
 the processing with an error if elements were encountered that
 could not be mapped.

 It is therefore likely that some processor implementations will choose
 not to validation using a schema.

B. Extension
 Future extension and versioning of schema is still an open problem.

 Suppose that a later revision of this specification adds attribute
 "foo" to "displayblock", and that this attribute may be safely
 ignored by any older processors which do not understand it. Older
 processor which validation the document will reject the it. Those
 which do not will work fine.

 The ability to extend the specification will therefore vary on the
 choice made by implementors to valid or not. This makes the
 ability to extend the specification less certain.

Issue
-----
The expected behaviour when a processor encounters a document
containing markup which it does not understand is not clear.

Proposal
--------
A processor MAY validate documents against the standard schema and MAY
reject any which do not conform. For any document that a processor does
not reject as invalid, any markup that the processor cannot understand
by reference to this specification MAY be discarded.

Rationale
---------
I think it is better to say something explicit about this issue. This
proposal is not one that I particularly favour but is the de facto status
quo as I see it. It is not unreasonable.