RE: Referencing an XProc variable in p:split-sequence/@test

Hi Florent,

I've tripped over similar cases as well. It is sometimes necessary to
create a new scope using a group. You put the variables before the group,
or at the top of the group, and anything else relying on it also within
the group.

Grtz,
Geert

> -----Oorspronkelijk bericht-----
> Van: fgeorges@gmail.com [mailto:fgeorges@gmail.com] Namens Florent
> Georges
> Verzonden: maandag 7 mei 2012 15:40
> Aan: XProc Dev
> Onderwerp: Referencing an XProc variable in p:split-sequence/@test
>
>   Hi,
>
>   I have the following pipeline, which returns as expected the
> document with element 'one' as result:
>
>     <p:declare-step xmlns:p="http://www.w3.org/ns/xproc"
>                     xmlns:c="http://www.w3.org/ns/xproc-step"
>                     name="pipeline"
>                     version="1.0">
>
>        <p:input port="source" sequence="true" primary="true">
>           <p:inline>
>              <one/>
>           </p:inline>
>           <p:inline>
>              <two/>
>           </p:inline>
>        </p:input>
>
>        <p:output port="result" sequence="true" primary="true"/>
>
>        <p:split-sequence test="name(/*) eq 'one'"/>
>
>     </p:declare-step>
>
>   If I replace the above split sequence step with the following (that
> is, simply creating a variable to get the name of the element out of
> the XPath expression itself):
>
>     <p:variable name="elem" select=" 'one' ">
>        <p:empty/>
>     </p:variable>
>     <p:split-sequence test="name(/*) eq $elem"/>
>
> then I get the following error:
>
>     SEVERE: Underlying exception: net.sf.saxon.trans.XPathException:
>     Undeclared variable in XPath expression: $elem
>
>   From my reading, using an XProc variable in a p:split-sequence/@test
> expression is allowed.  Did I miss something, or is it a bug in
> Calabash? (latest Github content for Saxon 9.4+)
>
>   Regards,
>
> --
> Florent Georges
> http://fgeorges.org/
> http://h2oconsulting.be/

Received on Monday, 7 May 2012 14:01:56 UTC