Re: subpipelines, Vnext and extension elements redux

Henry S. Thompson wrote:
> So, we appear to have at least four choices:
>  1) Add a p:declare-compound-step, and try to specify what constraints
>    _don't_ hold of subpipelines with unimplemented compound steps in
>    them;
>  2) Loosen the syntax so that unknown elements are assumed to be
>     unimplemented compound steps and are ignored;
>  3) Go back to the idea of extension namespaces, and treat unknown
>     elements _in an extension namespace_ as unimplemented compound
>     steps;
>  4) Accept that there is no backward-compatible way to introduce
>     new/extension compound steps, and therefore that they will cause
>     static errors in implementations which don't know about them.
> I guess after all this I prefer (4), on the grounds that (1) is just
> too messy, (2) gives up too much, (3) doesn't allow for new compound
> steps _in the pipeline language_ in a backward-compatible way, and
> anyway, the chances of a workaround being available which would enable
> one to write backwards-compatible pipelines using new/extension
> compound steps is so small that there's no point in buggering with the
> language to make that possible.

What about doing what XSLT does and having a p:fallback element that 
must be present in any extension/Vnext compound steps. If the processor 
encounters an unknown element, it must execute the p:fallback child of 
that element if it has one. If it doesn't have a p:fallback child then 
it's a static error.

I'm generally happy to go along with (4) if there's no other acceptable 
way, though I'm not happy that it means that if a new compound step is 
introduced in Vnext, people won't be able to use it in their pipelines 
without making their pipelines unrunnable in v1 implementations.

Actually, to just deal with Vnext compound steps, couldn't we use the 
forward compatibility rules: make unknown elements dynamic errors in 
forwards compatibility mode and static errors otherwise. (Isn't this 
what 2.9 Versioning Considerations says already?) That wouldn't help 
with implementation-defined compound steps, but I don't care as strongly 
about them.


Jeni Tennison

Received on Tuesday, 18 March 2008 20:30:42 UTC