- From: dvint <dvint@dvint.com>
- Date: Tue, 25 Aug 2015 12:57:01 -0700
- To: Jostein Austvik Jacobsen <josteinaj@gmail.com>
- Cc: "dvint@dvint.com" <dvint@dvint.com>, XProc Dev <xproc-dev@w3.org>
- Message-ID: <3nbongd4dr3xpodsytdhv2f7.1440532621865@email.android.com>
Thanks still getting used to xproc. I also realized this was a place where everything could be specified relative to the xproc file location. Sent from my T-Mobile 4G LTE Device -------- Original message -------- From: Jostein Austvik Jacobsen <josteinaj@gmail.com> Date: 08/25/2015 12:50 PM (GMT-08:00) To: dvint@dvint.com Cc: XProc Dev <xproc-dev@w3.org> Subject: Re: Passing a variable to p:document href? Hi Dan. In `<p:document href="$Makexsltfile"/>`, the variable in the href attribute is not evaluated, it is taken literally which is why the error is saying that the file "$Makexsltfile" could not be read. You will need to load the document referenced by your variable and pipe it into the p:xslt step. Have a look at p:load. Something like this should work I think (untested): <p:declare-step type="l:flatten-map"> <p:option name="Makexsltfile" required="true"/> <p:input port="source"/> <p:output port="result"> <p:pipe step="flatten-map" port="result"/> </p:output> <!-- Process the DITAMAP file source to travel all the included maps and topics with stylesheet to flatten the structure and gather information for later processing. --> <p:xslt name="flatten-map"> <p:input port="source"/> <p:input port="stylesheet"> <p:pipe step="Makexsltfile" port="result"/> </p:input> <p:input port="parameters"> <p:empty/> </p:input> <p:load name="Makexsltfile"> <p:with-option name="href" select="$Makexsltfile"/> </p:load> <p:sink/> </p:xslt> Best regardsJostein On 25 August 2015 at 20:13, <dvint@dvint.com> wrote: If I want to pass a value in when calling an XPROC script that will be the filename/URI for the document element, is there a way I can do this. I was looking for the p:with-option but that doesn't exist and it doesn't look like variable expansion is occurring. I get this error: "err:XD0011 : Could not read: $Makexsltfile It is a dynamic error if the resource referenced by a p:document element does not exist, cannot be accessed, or is not a well-formed XML document. C:\work\svn\scripts\translations\$Makexsltfile" I have this: <l:flatten-map> <p:with-option name="Makexsltfile" select="$Makexsltfile"/> </l:flatten-map> Defined as: <p:declare-step type="l:flatten-map"> <p:option name="Makexsltfile" required="true"/> <p:input port="source"/> <p:output port="result"/> <!-- Process the DITAMAP file source to travel all the included maps and topics with stylesheet to flatten the structure and gather information for later processing. --> <p:xslt name="flatten-map"> <p:input port="source"/> <p:input port="stylesheet"> <p:document href="$Makexsltfile" /> </p:input> <p:input port="parameters"> <p:empty/> </p:input> </p:xslt> I don't really want to include the XSLT in my XPROC as that makes it hard to develop the stylesheet as well as it is long enough that I don't want it to confuse the situation. But at the moment it seems to be the only way around this problem. ..dan
Received on Tuesday, 25 August 2015 19:57:28 UTC