- From: George Cristian Bina <george@oxygenxml.com>
- Date: Tue, 26 Feb 2013 14:09:10 +0200
- To: Jostein Austvik Jacobsen <josteinaj@gmail.com>
- CC: xproc-dev@w3.org
Thank you Jostein, Adding dependencies between steps fixes the problem. Best Regards, George -- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com On 2/26/13 10:58 AM, Jostein Austvik Jacobsen wrote: > It doesn't seem like the spec specifies whether an implementation should > creating any missing parent directories[1] so I don't know what is to be > expected. Maybe something like <p:store mkdirs="true|false" .../> could > be useful? > > Since there's no "top-to-bottom" execution order in XProc, you're not > guaranteed that the copy operation from xml/ to xml1/ is completed > before the copy operation from xml1/ to xml2/. > > AFAIK there's no multi-threading in calabash yet so the execution order > for a script when running it through calabash is the same every time if > you run it, and usually it executes bottom to top (it seems). So in your > script, all files from xml1/ will be copied to xml2/ *before* the files > in xml/ is copied to xml1/, which means there will be no files copied > from xml1/ to xml2/ at first run. > > To make sure that you only load a file *after* the file is stored, you > can force a dependency between two steps by connecting it to a port or > option on the step that has a dependency: > <p:store href="test.xml" name="store1"/> > <p:load> > <p:with-option name="href" select="'test.xml'"> > <p:pipe step="store1" port="result"/> > </p:with-option> > </p:load> > > Calabash also has the cx:depends-on="step-name" attribute to simplify > things: > <p:store href="test.xml" name="store1"/> > <p:load href="test.xml" cx:depends-on="store1"/> > > [1] http://www.w3.org/TR/xproc/#c.store > > Jostein > > > On 26 February 2013 08:59, George Cristian Bina <george@oxygenxml.com > <mailto:george@oxygenxml.com>> wrote: > > Hi all, > > Any feedback on the issue below? > > > Best Regards, > George > -- > George Cristian Bina > <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger > http://www.oxygenxml.com > > On 2/15/13 11:45 AM, George Cristian Bina wrote: > > Hi, > > We obtain some strange results with the following script with > Calabash > 1.0.8 (I think I encountered this also on previous versions). > > We have the following structure: > > ./xml/test.xml > ./test.xpl > > See the files content below [1]. > > The test.xpl script should load the files from the xml folder > and then > store them in a folder called xml1, then load the files from the > folder > xml1 and store them in a folder xml2. > > Trying to run the script gives the following error: > Scenario: test > XProc file: /Users/george/Documents/test/__xproc_samples/test.xpl > Engine name: Calabash XProc > Severity: error > Description: err:XC0017 : XC0017 It is a dynamic error if the > absolute > path does not identify a directory. > > I then created an xml1 folder so we have now the following structure > > ./xml/test.xml > ./xml1/ > ./test.xpl > > First run does not give any error but the result structure is > > ./xml/test.xml > ./xml1/test.xml > ./test.xpl > > That is the file was copied to xml1 but no copy from xml1 to > xml2 took > place. > Running again the script with the new structure gives the > desired result > > ./xml/test.xml > ./xml1/test.xml > ./xml2/test.xml > ./test.xpl > > Is this the expected behavior? > > [1] sample files > > test.xml > ======== > <test/> > > test.xpl > ======== > <p:declare-step xmlns:p="http://www.w3.org/ns/__xproc > <http://www.w3.org/ns/xproc>" > name="sampleCopyTest" version="1.0" > xmlns:xsl="http://www.w3.org/__1999/XSL/Transform > <http://www.w3.org/1999/XSL/Transform>" > xmlns:c="http://www.w3.org/ns/__xproc-step > <http://www.w3.org/ns/xproc-step>"> > > <p:input port="source" sequence="true"/> > <p:output port="result" sequence="true"> > <p:empty/> > </p:output> > > <p:variable name="input" select="'xml/'"/> > <p:variable name="out1" select="'xml1/'"/> > <p:variable name="out2" select="'xml2/'"/> > > <p:directory-list> > <p:with-option name="path" select="$input"/> > </p:directory-list> > > <p:for-each> > <p:iteration-source select="/c:directory/c:file"/> > <p:variable name="filename" select="/c:file/@name"/> > <p:variable name="result" select="concat($out1, $filename)"/> > > <p:load> > <p:with-option name="href" select="concat($input, > $filename)"/> > </p:load> > <p:store omit-xml-declaration="false"> > <p:with-option name="href" select="$result"/> > </p:store> > > </p:for-each> > > <p:directory-list> > <p:with-option name="path" select="$out1"/> > </p:directory-list> > > <p:for-each> > <p:iteration-source select="/c:directory/c:file"/> > <p:variable name="filename" select="/c:file/@name"/> > <p:variable name="result" select="concat($out2, $filename)"/> > <p:load> > <p:with-option name="href" select="concat($out1, > $filename)"/> > </p:load> > <p:store omit-xml-declaration="false"> > <p:with-option name="href" select="$result"/> > </p:store> > </p:for-each> > > </p:declare-step> > > >
Received on Tuesday, 26 February 2013 12:10:13 UTC