Re: [xproc-dev] <none>

On 22.05.2020 19:54, Imsieke, Gerrit, le-tex wrote:

> instead of passing a document on an input port, it is possible to load
> it from the prompted location. This is what Radu was trying to tell you,
> by and large.
>
> You will declare a p:option for that (not a parameter, as Radu
> suggested, but that’s just a detail); it seems that $ask is also
> supported for options.
>
> You then use p:load[p:with-option[@name='href'][@select=$your-option]]
> instead of p:input[@port='source'] inside the pipeline.
>
> One issue is that p:load expects a file URI but you will probably get an
> operating system path from $ask. So on Windows you need to prepend
> 'file:///' to the absolute path, replace '\' with '/' and at least a
> space character in the file path (' ') with '%20'.

To spell out what Gerrit suggested, the following works for me with oXygen:

<p:declare-step xmlns:p="http://www.w3.org/ns/xproc"
     xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0">
     <p:option name="url"/>
     <p:output port="result"/>
     <p:load>
         <p:with-option name="href" select="$url"/>
     </p:load>
     <p:xslt>
         <p:input port="stylesheet">
             <p:document href="FirstPass.xsl"/>
         </p:input>
         <p:input port="parameters">
             <p:empty/>
         </p:input>
     </p:xslt>
     <p:xslt>
         <p:input port="stylesheet">
             <p:document href="SecondPass.xsl"/>
         </p:input>
         <p:input port="parameters">
             <p:empty/>
         </p:input>
     </p:xslt>
     <p:xslt>
         <p:input port="stylesheet">
             <p:document href="ThirdPass.xsl"/>
         </p:input>
         <p:input port="parameters">
             <p:empty/>
         </p:input>
     </p:xslt>
</p:declare-step>

In the XProc transformation scenario under "Options" for the "Value"
field of the "url" I have entered
    ${ask('Url?', url)}

And oXygen then offers a file selection dialog but returns a file: URL
(due to the type argument "url" in the "ask" call) so there is no need
to try to use replace to convert a file name into a URL.

Received on Friday, 22 May 2020 18:17:28 UTC