- From: Patrick Gundlach <patrick@gundla.ch>
- Date: Thu, 17 May 2012 15:57:49 +0200
- To: xproc-dev@w3.org
Hello all,
I am a newbee and not sure if this is the right place to ask.
( This is also a duplicate of http://stackoverflow.com/questions/10636613/xproc-multiple-xslt-tranformation-with-intermediate-files - but I think I get better answers here )
Why do I get the errors mentioned below? What is the right way to connect the pipelines?
I need to do several XSLT transformations with intermediate XML files.
first.xml ------------> intermediate.xml ------------> final.xml
first.xsl final.xsl
I'd like to create an XProc pipleline. I have tried to write the following code, but this gives me an error:
SCHWERWIEGEND: runxslt.xpl:26:44:err:XD0011:Could not read: intermediate.xml
17.05.2012 15:15:35 com.xmlcalabash.drivers.Main error
SCHWERWIEGEND: 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.
17.05.2012 15:15:35 com.xmlcalabash.drivers.Main error
SCHWERWIEGEND: Underlying exception: net.sf.saxon.s9api.SaxonApiException: I/O error reported by XML parser processing file:/<somepath>/intermediate.xml:
/<somepath>/intermediate.xml (No such file or directory)
(where SCHWERWIEGEND means something like FATAL) So obviously the file `intermediate.xml` has not been written.
This is the `xpl`-document that I have used:
<?xml version="1.0" encoding="UTF-8"?>
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc"
xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0">
<p:input port="source">
<p:document href="first.xml"/>
</p:input>
<p:output port="result" sequence="true">
<p:empty/>
</p:output>
<p:xslt name="first-to-intermediate">
<p:input port="stylesheet">
<p:document href="first.xsl"/>
</p:input>
<p:input port="parameters">
<p:empty/>
</p:input>
</p:xslt>
<p:store href="intermediate.xml" />
<p:xslt>
<p:input port="source">
<p:document href="intermediate.xml"/>
</p:input>
<p:input port="stylesheet">
<p:document href="final.xsl"/>
</p:input>
<p:input port="parameters">
<p:empty/>
</p:input>
</p:xslt>
<p:store href="final.xml"/>
</p:declare-step>
Just for the sake of completeness: these are the transformation files:
source.xml:
<root>
<element name="A" />
</root>
first.xsl:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output indent="yes"/>
<xsl:template match="root">
<root>
<xsl:apply-templates/>
</root>
</xsl:template>
<xsl:template match="element">
<intermediate name="A" />
</xsl:template>
</xsl:stylesheet>
final.xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output indent="yes"/>
<xsl:template match="root">
<root>
<xsl:apply-templates/>
</root>
</xsl:template>
<xsl:template match="intermediate">
<final name="A" />
</xsl:template>
</xsl:stylesheet>
Thanks
Patrick
Received on Saturday, 19 May 2012 05:41:16 UTC