- From: Imsieke, Gerrit, le-tex <gerrit.imsieke@le-tex.de>
- Date: Wed, 25 Oct 2017 15:07:13 +0200
- To: xproc-dev@w3.org
Hi Patrick, The issue is a bit more complicated when it should also run on Windows, because pos:info only gives you the OS-specific path (starting with a drive letter and with backslashes as path separator), but in the XSLT you need a file: URI. We have an elaborate library for file URI normalization (https://github.com/transpect/xproc-util/blob/master/file-uri/xpl/file-uri.xpl), but it has too many dependencies to be quicky useful here (e.g., it depends on a catalog resolver), so I’m just hacking together some quick Windows path normalization here: <p:declare-step xmlns:p="http://www.w3.org/ns/xproc" xmlns:pos="http://exproc.org/proposed/steps/os" xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0"> <p:output port="result" primary="true"/> <p:import href="http://xmlcalabash.com/extension/steps/library-1.0.xpl"/> <pos:info name="info"/> <p:add-attribute name="add-cwd-uri" attribute-name="cwd-uri" match="/*"> <p:with-option name="attribute-value" select="if (matches(/*/@cwd, '^[a-z]:', 'i')) then concat('file:///', replace(/*/@cwd, '\\', '/')) else /*/@cwd"/> </p:add-attribute> <p:sink> <p:documentation>other stuff happens in the meantime…</p:documentation> </p:sink> <p:xslt name="Transformation"> <p:with-param name="somefile" select="'somefile.xml'"> <p:empty/> </p:with-param> <p:with-param name="cwd" select="/*/@cwd-uri"> <p:pipe port="result" step="add-cwd-uri"/> </p:with-param> <p:input port="source"> <p:inline> <bogo/> </p:inline> </p:input> <p:input port="stylesheet"> <p:inline> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:param name="cwd"/> <xsl:param name="somefile"/> <xsl:template match="/"> <out> <xsl:sequence select="string-join(($cwd, $somefile), '/')"/> </out> </xsl:template> </xsl:stylesheet> </p:inline> </p:input> </p:xslt> </p:declare-step> On 25.10.2017 14:44, Patrick Gundlach wrote: > Hello David, > > thank you for the answer, it looks promising. But I have to admit that I have now clue how to add this to my pipeline, which is something like > > <p:declare-step > xmlns:p="http://www.w3.org/ns/xproc" > xmlns:pos="http://exproc.org/proposed/steps/os" > xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0"> > <p:xslt name="Transformation"> > <p:with-param name="somefile" select="'somefile.xml'"> > <p:empty/> > </p:with-param> > <p:input port="source"> > <p:document href="source.xml"/> > </p:input> > <p:input port="stylesheet"> > <p:document href="transformation.xsl"/> > </p:input> > </p:xslt> > <p:store href="data.xml"/> > </p:declare-step> > > > Patrick > > > -- Gerrit Imsieke Geschäftsführer / Managing Director le-tex publishing services GmbH Weissenfelser Str. 84, 04229 Leipzig, Germany Phone +49 341 355356 110, Fax +49 341 355356 510 gerrit.imsieke@le-tex.de, http://www.le-tex.de Registergericht / Commercial Register: Amtsgericht Leipzig Registernummer / Registration Number: HRB 24930 Geschäftsführer: Gerrit Imsieke, Svea Jelonek, Thomas Schmidt, Dr. Reinhard Vöckler
Received on Wednesday, 25 October 2017 13:07:53 UTC