- From: Manfred Staudinger <manfred.staudinger@gmail.com>
- Date: Wed, 23 Sep 2009 19:51:52 +0200
- To: Toman_Vojtech@emc.com
- Cc: xproc-dev@w3.org
You are right, I was confused by that error message (it prompted my trial and error session). But your concise and detailed explanation was very helpfull in getting a better understanding, thank you. Regards, Manfred On 22/09/2009, Toman_Vojtech@emc.com <Toman_Vojtech@emc.com> wrote: >> Beginner errors: when I execute (from the command line) >> <p:declare-step name="myPipeline" >> xmlns:c="http://www.w3.org/ns/xproc-step" >> xmlns:p="http://www.w3.org/ns/xproc"> >> <p:identity> >> <p:input port="source"> >> <p:inline> >> <c:directory><c:file name="aber.xml"/></c:directory> >> </p:inline> >> </p:input> >> </p:identity> >> <p:make-absolute-uris match="c:directory/*/@name"> >> <p:with-option name="base-uri" >> select="'file:/J:/test/'"/> >> </p:make-absolute-uris> >> </p:declare-step> >> then Calabash 0.9.14 gives me >> Error : file:/J:/bauer/planavi/dirs/x-show-err1.xpl:4: Unbound >> primary output port on last step: myPipeline >> Error : Pipeline failed: err:XS0006: Unbound primary output port on >> last step: myPipeline It is a static error if the primary output port >> has no binding and the last step in the subpipeline does not have a >> primary output port. >> but Calumet 1.0.9 executes and outputs >> <c:directory xmlns:c="http://www.w3.org/ns/xproc-step"><c:file >> name="file:/J:/test/aber.xml"/></c:directory> > > The current (28 May 2009) version of the XProc spec says (in Section > 2.3): "Additionally, if a compound step has no declared outputs and the > last step in its subpipeline has an unbound primary output, then an > implicit primary output port will be added to the compound step (and > consequently the last step's primary output will be bound to it)." > > This clearly the case with your pipeline: it declares no output ports, > but the last step in the sub-pipeline (p:make-absolute-uris) has an > unconnected primary output port (i.e. there is nothing that consumes the > result of the step). So according to the spec, the processors should add > an implicit primary output port to the main pipeline - which both seem > to have done. > > In the case of Calumet, you seem to get the right behavior. However, in > the case of Calabash, the implicit primary output seems to cause > problems, at least judging based on err:XS0006 and the error message you > get ("Unbound primary output port on last step: myPipeline"). > > However, note that when the new version of the XProc specification is > published, the behavior related to adding implicit primary output ports > will change: it will not apply for step declarations (p:declare-step and > p:pipeline) any more as they will always have to specify all output > ports explicitly. > > Regards, > Vojtech > > -- > Vojtech Toman > Principal Software Engineer > EMC Corporation > toman_vojtech@emc.com > http://developer.emc.com/xmltech > >
Received on Wednesday, 23 September 2009 17:52:33 UTC