- From: Norman Walsh <ndw@nwalsh.com>
- Date: Mon, 12 Oct 2009 10:48:00 -0400
- To: public-xml-processing-model-comments@w3.org
- Message-ID: <m27hv0vfbz.fsf@nwalsh.com>
Jeni Tennison <jeni@jenitennison.com> writes:
> Put another way, what I'm suggesting is:
[...]
Ok, so...taking this as far as I can...
1. We replace the existing p:import mechanism with a version attribute.
If the version requested > version of processor, then run in forwards
compatible mode.
2. While loading/analyzing a pipeline
a. Discard unrecognized attributes on elements in the XProc namespace
b. Discard unrecognized elements in the XProc namespace
c. Discard unrecognized options on XProc steps
d. Discard unrecognized ports on XProc steps
e. Turn any reference to an unrecognized port into <p:empty/>
f. Mark any unrecognized step in the XProc namespace as invalid
3. Perform static analysis on the result. You get what you get. Maybe
you get errors, maybe you don't. Maybe there are more independent
pipeline fragments, maybe there aren't. Your gun, your bullet, your
foot.
4. In forwards-compatible mode, it is a dynamic error (err:XD0032) to
attempt to evaluate a step that is marked “invalid”."
The most troubling part of this approach is the way in which "invalid"
has to percolate through the pipeline and be taken into consideration
in different places:
1. When evaluting if all of the branches of a p:choose have the same
signature, ignore any branch that directly contains an invalid
step. If all the branches are invalid, then the p:choose is
invalid.
2. When evaluating if the p:try/p:group and p:catch branches of
a p:try have the same signature, ignore either clause if it
contains an invalid step. If the p:catch includes an invalid
step, then the p:try is invalid.
3. If a subpipeline contains an unrecognized step (not in a p:choose
or p:try/p:group), then that subpipeline has to be marked
invalid.
If you don't do this, then I don't think it's possible to build the
dependency graph.
Be seeing you,
norm
--
Norman Walsh <ndw@nwalsh.com> | Feature, n. A bug that's too hard to
http://nwalsh.com/ | fix.
Received on Monday, 12 October 2009 14:48:40 UTC