- 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