Re: Can this combined into one step ? msgXS0032

Hi Manfred,

This is a bit of an xproc gotcha.  When you move the <p:input> inside
the <p:add-attribute />, there's no longer a default readable port to
provide context for the xpath in p:with-option/@select.  When you were
using a p:identity, its output provided the needed context for
p:with-option/@select.

You need to change your p:with-option to read:

 <p:with-option name="attribute-value" select="$dir" >
      <p:empty />
 </p:with-option>

A previous discussion can be found here:

http://markmail.org/thread/dquafykxus5pffwl

Hope this helps,

-James


On Thu, Sep 10, 2009 at 4:50 PM, Manfred Staudinger
<manfred.staudinger@gmail.com> wrote:
> I have the following pipeline:
>
> <p:declare-step name="myPipeline"
>        xmlns:c="http://www.w3.org/ns/xproc-step"
>        xmlns:p="http://www.w3.org/ns/xproc">
>        <p:option name="dir"/>
>        <p:output port="result"/>
>        <p:serialization port="result" indent="true" omit-xml-declaration="false"/>
>        <p:identity>
>                <p:input port="source">
>                        <p:inline>
> <c:directory><c:directory/></c:directory>
>                        </p:inline>
>                </p:input>
>        </p:identity>
>        <p:add-attribute match="*/c:directory" attribute-name="name">
>                <p:with-option name="attribute-value" select="$dir"/>
>        </p:add-attribute>
> </p:declare-step>
>
> which works fine.- But when I try to combine it into one step, by
> moving the p:input into the p:add-attribute, I get the message XS0032:
> It is a static error if no binding is provided and the default
> readable port is undefined. Any explanation or pointers what I should
> read?
>
> Regards,
> Manfred
>
>

Received on Thursday, 10 September 2009 22:18:08 UTC