- From: Norman Walsh <ndw@nwalsh.com>
- Date: Mon, 12 Oct 2009 12:56:38 -0400
- To: public-xml-processing-model-comments@w3.org
- Message-ID: <m2ws30sg8p.fsf@nwalsh.com>
"Henry S. Thompson" <ht@inf.ed.ac.uk> writes:
> Norman Walsh writes:
>
>> 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.
>
> We don't replace p:import, we just get rid of the requirement to
> import pipeline libraries for new versions, right?
Right. We'll probably have to say something about the relationship
between the version number and the importing of standard steps, but I
don't know what.
>> 2. While loading/analyzing a pipeline
>
> in forwards-compatible mode only, right? Otherwise the following are
> all static errors, right?
Yes.
>> 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:
>
> Hmmm. How does XSLT avoid this problem? Some possible parallels:
>
> 1) You define a stylesheet function which in turn depends unequivocally
> on an extension function. function-available(your-fun) does _not_
> tell you that you have a problem (in backward-compatibility mode).
>
> You will unequivocally lose if you ever call that function.
>
> 2) You define a named template which unequivocally uses an
> unimplemented extension instruction element. There is no way to
> test whether a named template will fail, but you will
> unequivocally lose if you ever call that template.
The way that XSLT *isn't* parallel is in the requirement to build a
dependency graph.
Be seeing you,
norm
--
Norman Walsh <ndw@nwalsh.com> | Nearly every complex solution to a
http://nwalsh.com/ | programming problem that I have looked
| at carefully has turned out to be
| wrong.--Brent Welch
Received on Monday, 12 October 2009 16:57:15 UTC