- From: Norman Walsh <ndw@nwalsh.com>
- Date: Wed, 08 Aug 2007 12:32:31 -0400
- To: public-xml-processing-model-wg@w3.org
- Message-ID: <871wee56n4.fsf@nwalsh.com>
/ Innovimax SARL <innovimax@gmail.com> was heard to say:
| I proposed last week a p:pack component to get any number of sequence
| and put it in a column major way
| say each letter represent a document of a sequence
| .----------.
| -- A - B - C - D -- | |
| -- E - F - G - H -- | PACK | -- <_>A E K</_> - <_>B F L</_> - <_>C G
| M</_> - <_>D H N</_>
| -- K - L - M - N -- | |
| .----------.
|
| It seems that I forgot that we loose "en passant" the possibility to
| have "*" input ports
|
| So I propose this component with only two sequences as input
|
| <p:declare-step type="p:pack">
| <p:input port="source" sequence="yes" primary="yes"/>
| <p:input port="alternate" sequence="yes"/>
| <p:output port="result" sequence="yes"/>
| <p:option name="wrapper" required="yes"/>
| </p:declare-step>
Assuming that source comes from
<p:pipe step="srcseq" port="result"/>
and alternate comes from
<p:pipe step="altseq" port="result"/>
then p:pack is equivalent to the following for-each, yes?
<p:for-each name="packer">
<p:iteration-source>
<p:pipe port="srcseq" port="result"/>
</p:iteration-source>
<p:option name="count" select="p:iteration-position()"/>
<p:split-sequence name="getalt">
<p:input port="source">
<p:pipe step="altseq" port="result"/>
</p:input>
<p:option name="test" select="concat('position() = ',$count)"/>
</p:split-sequence>
<p:wrap wrapper="wrapper">
<p:input port="source">
<p:pipe step="packer" port="current"/>
<p:pipe step="getalt" port="matched"/>
</p:input>
</p:wrap>
</p:for-each>
I grant that it might be faster for a single atomic step to do this,
but I'm not sure it needs to be a standard step.
Be seeing you,
norm
--
Norman Walsh <ndw@nwalsh.com> | Anything more than the truth would be
http://nwalsh.com/ | too much.--Robert Frost
Received on Wednesday, 8 August 2007 16:32:46 UTC