- From: <vojtech.toman@emc.com>
- Date: Fri, 8 Oct 2010 08:10:34 -0400
- To: <xproc-dev@w3.org>
> Well, actually, I found something else. If I change my pipeline > to the following (that is, I externalize the p:identity from the > p:when to its own step, with a *primary* output port 'result', see > http://markmail.org/thread/7s45org2gulw6nzj for the original code): > > <p:declare-step xmlns:p="http://www.w3.org/ns/xproc" > xmlns:my="my-ns" > name="pipeline" > version="1.0"> > > <p:output port="my-result"> > <p:pipe port="result" step="s"/> > </p:output> > > <p:declare-step type="my:step"> > <p:output port="result" primary="true"/> > <!-- was in the p:when before --> > <p:identity name="id"> > <p:input port="source"> > <p:inline> > <true/> > </p:inline> > </p:input> > </p:identity> > </p:declare-step> > > <p:choose name="s"> > <p:when test="true()"> > <!-- p:identity was directly here before --> > <my:step name="my"/> > </p:when> > </p:choose> > > </p:declare-step> > > I then expect the primary output of my:step, named 'result', to > be bound to an output port of p:choose with the same name. But > when I evaluate this pipeline with Calabash, I still get the same > error: "XE0001: Unreadable port: result on s". The implicit output ports on compound steps are always unnamed. They don't inherit the name of the last step's primary output port. If you want to refer to p:choose's output port by name, you have to provide an explicit output port in p:when: <p:choose name="s"> <p:when test="true()"> <p:output port="result"/> <!-- p:identity was directly here before --> <my:step name="my"/> </p:when> </p:choose> Hope this helps, Vojtech -- Vojtech Toman Consultant Software Engineer EMC | Information Intelligence Group vojtech.toman@emc.com http://developer.emc.com/xmltech
Received on Friday, 8 October 2010 12:13:12 UTC