W3C home > Mailing lists > Public > xproc-dev@w3.org > May 2012

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

From: Geert Josten <geert.josten@dayon.nl>
Date: Mon, 7 May 2012 16:08:52 +0200
Message-ID: <6595e904593443b1ff06986a8c079f8b@mail.gmail.com>
To: vojtech.toman@emc.com, xproc-dev@w3.org
Quite counter-intuitive to my humble opinion..

:-/

> -----Oorspronkelijk bericht-----
> Van: vojtech.toman@emc.com [mailto:vojtech.toman@emc.com]
> Verzonden: maandag 7 mei 2012 16:06
> Aan: xproc-dev@w3.org
> Onderwerp: RE: Referencing an XProc variable in p:split-sequence/@test
>
> Hi Florent,
>
> You cannot refer to a variable in p:split-sequence as the 'test' XPath
expression
> is evaluated using the step XPath context (no variable bindings
available). A
> solution is to do something like this:
>
> <p:split-sequence>
>   <p:with-option name="test" select="concat(' name(/*) eq
'",$elem,"')"/>
> </p:split-sequence>
>
> Regards,
> Vojtech
>
> --
> Vojtech Toman
> Consultant Software Engineer
> EMC | Information Intelligence Group
> vojtech.toman@emc.com
> http://developer.emc.com/xmltech
>
>
> > -----Original Message-----
> > From: fgeorges@gmail.com [mailto:fgeorges@gmail.com] On Behalf Of
> > Florent Georges
> > Sent: Monday, May 07, 2012 3:40 PM
> > To: XProc Dev
> > Subject: 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:09:21 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 May 2012 14:09:22 GMT