- From: Norman Walsh <Norman.Walsh@Sun.COM>
- Date: Fri, 21 Jul 2006 17:26:45 -0400
- To: public-xml-processing-model-wg@w3.org
- Message-ID: <87mzb21wfe.fsf_-_@nwalsh.com>
/ Jeni Tennison <jeni@jenitennison.com> was heard to say:
| I would much rather <p:choose> (and <p:for-each>) *weren't*
| self-contained, and could point to inputs from their ancestors.
What does it mean when a for-each points to inputs among its ancestors
and preceding siblings?
<p:step kind="validate" name="valid">
<p:input port="document" href="doc.xml"/>
<p:input port="schema" href="doc.xsd"/>
<p:output port="result"/>
<p:step>
<p:step kind="transform" name="build-stylesheet">
<p:input port="document" href="make-chapter-template.xsl"/>
<p:input port="stylesheet" href="complete-template.xsl"/>
<p:output port="result"/>
</p:step>
<p:for-each select="//chapter" ref="#valid/result" name="loop">
<p:declare-output port="result" name="chapter-docs"/>
<p:step kind="transform" name="makehtml"/>
<p:input port="document" ref="#loop/#matched"/>
<!-- somehow we have to expose the matched regions as documents;
here I'm imagining that for-each always declares a magically
named input port which will be used for that purpose -->
<p:input port="stylesheet" ref="#build-stylesheet/result"/>
<p:output port="result" ref="#loop/chapter-docs"/>
</p:step>
</p:for-each>
<p:step kind="tidy" name="tidy">
<p:input port="document" ref="#loop/chapter-docs"/>
</p:step>
The transform inside the for-each will get run an arbitrary number of
times. Do reads from inside a for-each automatically get a copy of the
referenced input? I suppose they have to.
Be seeing you,
norm
--
Norman Walsh
XML Standards Architect
Sun Microsystems, Inc.
Received on Friday, 21 July 2006 21:26:55 UTC