- From: <Toman_Vojtech@emc.com>
- Date: Mon, 12 Oct 2009 05:06:11 -0400
- To: <public-xml-processing-model-comments@w3.org>
> > But the dependency between the two steps must still be preserved. > > Simply > > replacing the p:pipe binding would break the dependency graph. > > I don't really understand why this is important, given that > if there's > no data passing between them then there is no dependency > between them. > But I will defer to the implementers. Even if no data is flowing between the steps, you want to be sure they are evaluated in the right order. Consider this example: <p:v2-step name="v2"/> <p:v1-step> <p:input port="source"> <p:pipe step="v2" port="result"/> </p:input> </p:v1-step> In a V1 processor, this pipeline should fail because the processor does not know how to perform p:v2-step. As a consequence, the p:v1-step step is never invoked (because it depends on the result of p:v2-step). Hovever, if you remove the dependency between p:v1-step and p:v2-step (by replacing p:pipe with p:empty), the V1 processor is at liberty to evaluate the two steps in arbitrary order. This means that p:v1-step can be evaluated *before* p:v2-step, which typically you don't want (you will be likely to get errors or really unexpected results when running the pipeline). For instance, p:v1-step might store nonsense documents somewhere, or update some records in a db too early, ... Regards, Vojtech
Received on Monday, 12 October 2009 09:06:49 UTC