W3C home > Mailing lists > Public > public-xml-processing-model-wg@w3.org > July 2006

Re: Use Case 5.29: Large Document Subtree Iteration

From: Alex Milowski <alex@milowski.org>
Date: Fri, 07 Jul 2006 09:11:52 -0700
Message-ID: <44AE87C8.50602@milowski.org>
To: public-xml-processing-model-wg <public-xml-processing-model-wg@w3.org>

Henry S. Thompson wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Alex Milowski writes:
> 
> 
>>    <p:input name="large-doc"/>
>>    <p:output name="result" from="final"/>
>>
>>    <p:for-each select="section" over="large-doc" to="iteration">
>>       <p:output name="final"/>
> 
> Why over == input an attribute, but output an element?

The for-each iterates over a sequence of elements identified by the
XPath in section.  The 'over' attribute specified the input
against which the XPath is evaluated.  The 'to' attribute specifies
the input to which the iterated item is bound (as a new document).

> 
>>       <p:pipe>
>>          <p:input name="iteration"/>
>>          <p:output name="section-transformed"/>
> 
> Who consumes this?  I.e. where's the connection from this to 'final'?

Well, in this case, the output isn't necessary as the *PIPE* element
as a default primary output.  That default output is used for
the iteration.

The input should have been:

<p:input name="..." from="iteration"/>

> 
>>          <p:step kind="p:xmlbase"/>
>>          <p:step kind="p:xinclude"/>
>>          <p:step kind="p:xslt">
>>             <p:input name="stylesheet" href="section2xhtml.xsl"/>
>>          </p:step>
>>       </p:pipe>
>>    </p:for-each>
>>
>> </p:pipeline>
> 
> Otherwise, this seems v. close to what I would have, except for what 
> I said before, that <pipe> seems unnecessary here.

Here the the PIPE gives a default primary input and output and the
semantic that things happen in *sequence*.

If you only had one step, or didn't care about the order, you could
have something like:

<p:for-each select="section" over="large-doc" to="iteration" 
collect="section-transformed">
<p:step>
   <p:input name="input" from="iteration"/>
   <p:output name="section-transformed"/>
</p:step>
</p:for-each>

...that is, you need to know explicitly the output you are collected as
the replacement for the 'section' elements.

--Alex Milowski
Received on Friday, 7 July 2006 16:12:10 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:21:48 GMT