- From: Florent Georges <fgeorges@fgeorges.org>
- Date: Mon, 20 Dec 2010 14:34:52 +0100
- To: Romain Deltour <rdeltour@gmail.com>
- Cc: XProc Dev <xproc-dev@w3.org>
On 20 December 2010 13:44, Florent Georges wrote: > I will try to make a proper standalone repro then. Interesting, I got a repro, and the problem only shows up when I compute the file name (the href of p:store) using a UUID got from p:uuid. So with a working pipeline using: <p:store name="store" href="/tmp/xproc-store.xml"> <p:input port="source"> <p:inline> <doc/> </p:inline> </p:input> </p:store> if I change that bit by: <p:uuid match="placeholder" name="uuid"> <p:input port="source"> <p:inline> <root> <placeholder/> </root> </p:inline> </p:input> </p:uuid> <p:store name="store"> <p:input port="source"> <p:inline> <doc/> </p:inline> </p:input> <p:with-option name="href" select=" concat('/tmp/', normalize-space(.), '.xml')"> <p:pipe step="uuid" port="result"/> </p:with-option> </p:store> then it fails later on, when evaluating the p:variable. Well, I thought that was during evaluating p:variable, but because no file is produced at all in that case, it seems that's a static error. Here is a complete repro (the first one fails as described, the second one works as expected): <p:declare-step xmlns:p="http://www.w3.org/ns/xproc" xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0"> <p:output port="result"/> <!-- get a UUID --> <p:uuid match="placeholder" name="uuid"> <p:input port="source"> <p:inline> <root> <placeholder/> </root> </p:inline> </p:input> </p:uuid> <!-- store a doc, using the UUID in the file name --> <p:store name="store"> <p:input port="source"> <p:inline> <doc/> </p:inline> </p:input> <p:with-option name="href" select=" concat('/tmp/', normalize-space(.), '.txt')"> <p:pipe step="uuid" port="result"/> </p:with-option> </p:store> <!-- store the file name in a var, and create a nw doc --> <p:group> <p:variable name="file" select="/xs:string(c:result)"> <p:pipe step="store" port="result"/> </p:variable> <p:add-attribute match="hello" attribute-name="a"> <p:input port="source"> <p:inline> <hello/> </p:inline> </p:input> <p:with-option name="attribute-value" select="$file"/> </p:add-attribute> </p:group> </p:declare-step> The following repro works well: <p:declare-step xmlns:p="http://www.w3.org/ns/xproc" xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0"> <p:output port="result"/> <!-- store a doc --> <p:store name="store" href="/tmp/xproc-store.xml"> <p:input port="source"> <p:inline> <doc/> </p:inline> </p:input> </p:store> <!-- store the file name in a var, and create a nw doc --> <p:group> <p:variable name="file" select="/xs:string(c:result)"> <p:pipe step="store" port="result"/> </p:variable> <p:add-attribute match="hello" attribute-name="a"> <p:input port="source"> <p:inline> <hello/> </p:inline> </p:input> <p:with-option name="attribute-value" select="$file"/> </p:add-attribute> </p:group> </p:declare-step> So maybe I made a mistake, but more and more it looks like a bug. I wanted to test with Calumet, but I don't have it on this machine and the EMC community site seems to be down. Regards, -- Florent Georges http://fgeorges.org/
Received on Monday, 20 December 2010 13:35:45 UTC