- From: James Sulak <jsulak@gmail.com>
- Date: Fri, 19 Feb 2010 08:51:10 -0600
- To: Alex Muir <alex.g.muir@gmail.com>
- Cc: XProc Dev <xproc-dev@w3.org>
Hi Alex, An eval-pipeline step has been mentioned before, but as far as I know no one's implemented it as an extension function. I don't know if this is what you're looking for, but I've done something similar at runtime (not preprocessing). I had a problem where I needed to edit the contents of an XQuery dynamically. I settled on using a step that took parameters and replaced any instances of ${varname} with its string value. For example, I would construct an xquery this way: <p:identity> <p:input port="source"> <p:inline> <c:query xmlns="http://exist.sourceforge.net/NS/exist" start="1" max="20" cache="no"> <c:text> declare namespace c="http://www.w3.org/ns/xproc-step"; let $login := xmldb:login("xmldb:exist:///db", "${user}", "${password}") let $response := xmldb:create-collection("${parent-collection}", "${collection}") return (element c:result { concat(request:get-url(), $response) }) </c:text> </c:query> </p:inline> </p:input> </p:identity> <wxp:resolve-placeholders> <p:input port="parameters"> <p:empty /> </p:input> <p:with-param name="user" select="$user" /> <p:with-param name="password" select="$password" /> <p:with-param name="parent-collection" select="$parent-collection" /> <p:with-param name="collection" select="$collection" /> </wxp:resolve-placeholders> The <wxp:resolve-placeholders/> step uses <p:parameters/> to create an XML out of the parameters, which is then passed to a transform which replaces the variable names with their values. -James On Fri, Feb 19, 2010 at 6:37 AM, Alex Muir <alex.g.muir@gmail.com> wrote: > Hi, > > I was reading posts about configuration file parameters in the xproc list > archives and having my own issues using them that it led me to recall my > solution when creating a simple xslt pipe line as probably all on this list > have done. > > Regarding handling the configuration file: > > We started with name value pair configuration declarations in the top of the > pipe which were referenced below using xpath which became cumbersome to use > over time and at some point the idea came to use a simpler perhaps unrefined > solution that worked well. > We had to externalize the name value pair configuration xml file to have > multiple configuration files, some for end users, some for more technical > people... > > Given the need to have multiple configuration files we preprocessed to > combine the configuration files to pass only one config file through the > pipe as passing more than one would have been more work. > PERHAPS THE KEY POINT: Rather than reference the configuration file using > xpath and having the pipeline processor to pass the configuration file as a > DOM through the whole process to find config values dynamically as they were > needed using xpath, we replaced all the xpath with '##VariableName##' > referencing the same variable name from the config file as the xpath was. > Then preprocessing we complied the new pipeline xml document finding and > replacing '##VariableName##' with the correct value for each configuration > file as we no longer combined config files into one as there was no need. > > The simplification saved us development time in the future. > > From what I gather this type of script preprocessing is a fairly common > practice. > > > Questions for discussion: > > Are others doing this with their xproc scripts? Why or why not? > > I wonder would it be better that I use the parameters configuration file as > it is currently designed in xproc rather than I create a small script to > implement the ## Configuration version? > > Is it possible to have a small xproc pipe which executes this process and > then executes the regular process without running the process twice from the > command line? ( just thinking out loud here) > > Would that just require I use the "exec" step for example if I wanted to > launch 4 java process of the some pipe compiled with different > configurations? > I think that will work, no? > > Thanks Much > > -- > Alex > https://sites.google.com/a/utg.edu.gm/alex > > Some Good Music -- mix of western and African relaxing acoustic styles > http://sites.google.com/site/greigconteh/ >
Received on Friday, 19 February 2010 14:52:04 UTC