- From: <Toman_Vojtech@emc.com>
- Date: Thu, 2 Jul 2009 07:34:33 -0400
- To: <xproc-dev@w3.org>
- Message-ID: <6E216CCE0679B5489A61125D0EFEC78710148512@CORPUSMX10A.corp.emc.com>
Another XProc 'gotcha'. The p:compare step has no primary output port
(in contrast to p:identity). Because you don't provide a binding for the
p:with-option element, the XProc processor tries to manufacture one for
you based on the default readable port. In the example with p:identity,
the default readable port will be the primary output port of p:identity.
In the pipeline with p:compare, the default readable port is undefined,
because p:compare has no primary output port, and therefore you get the
static error.
Regards,
Vojtech
________________________________
From: xproc-dev-request@w3.org [mailto:xproc-dev-request@w3.org]
On Behalf Of Paul Hermans
Sent: Thursday, July 02, 2009 1:29 PM
To: xproc-dev@w3.org
Subject: struggle with ports on step compare
XProc processor used calabash-0.9.11
a) having a working pipeline: showing the relevant snippet,
writing some xml to the file system.
<p:identity name="compare">
<p:input port="source">
<p:inline>
<test/>
</p:inline>
</p:input>
</p:identity>
<p:store name="write2file">
<p:input port="source">
<p:pipe port="result" step="compare"/>
</p:input>
<p:with-option name="href"
select="concat('/Users/paul/Desktop/R&D/xmlschema/',$xml,'.err')"/>
</p:store>
b) pipeline throwing following error if the identity step is
replaced by a compare step.
Error :
file:/Users/paul/Desktop/R&D/xmlschema/iterateconfig.xpl:122: option
href unbound on p:store step named write2file and no default readable
port.
Error : Pipeline failed: err:XS0032: option href unbound on
p:store step named write2file and no default readable port. It is a
static error if no binding is provided and the default readable port is
undefined.
Process ended with exit code: 0
<p:compare name="compare">
<p:input port="source">
<p:pipe port="result" step="tryxsd"/>
</p:input>
<p:input port="alternate">
<p:pipe port="result" step="trysch"/>
</p:input>
<p:with-option name="fail-if-not-equal"
select="'false'"/>
</p:compare>
<p:store name="write2file">
<p:input port="source">
<p:pipe port="result" step="compare"/>
</p:input>
<p:with-option name="href"
select="concat('/Users/paul/Desktop/R&D/xmlschema/',$xml,'.err')"/>
</p:store>
The compare step is, according to me, OK, since when using it as
a last step in the pipeline, the expected value appears on the console.
I know that the result port on compare is not primary, hence the
explicit binding effort.
What am I missing?
Kind Regards,
Paul
Received on Thursday, 2 July 2009 11:36:04 UTC