Initializing a variable using an output port

  Hi,

  I store a binary file, using p:store and a Calabash extension
to be sure the Base 64 is decoded.  That part works perfect:

    <p:store name="store" cx:decode="true" .../>

  This file is a ZIP file.  I then use the EXProc extension step
pxp:unzip to get an XML entry out of this ZIP file:

    <p:store name="store" .../>
    <pxp:unzip ...>
       <p:with-option name="href" select="/xs:string(c:result)">
          <p:pipe step="store" port="result"/>
       </p:with-option>
    </pxp:unzip>
    ...

  That works well.  The p:store returns a document that looks
like <c:result>file:/...</c:result>, which is used when computing
the href option.  But I need to use this file name several times,
so I store it instead in a variable:

    <p:store name="store" .../>
    <p:group>
       <p:variable name="file" select="/xs:string(c:result)">
          <p:pipe step="store" port="result"/>
       </p:variable>
       <pxp:unzip ...>
          <p:with-option name="href" select="$file">
       </pxp:unzip>
       ...
    </p:group>

  But then I receive the following dynamic error (from Calabash):
"Expression refers to context when none is available:
/xs:string(c:result)".  I thought both constructions above were
equivalent.  What did I miss?

  Regards,

-- 
Florent Georges
http://fgeorges.org/

Received on Sunday, 19 December 2010 23:44:54 UTC