1) Omlouvám se za nepřesný popis případu, níže to vyjasním lépe.
2) To co chci, dokážu, ale tak, že zpracuji cyklem a XML výstup v dalším payloadu ztransformuju.
3) To stejné bych ale chtěl docílit v rámci jednoho payloadu, pravděpodobně pomocí template jak tady zmiňujete.
V ResultSet[1] mám seznam palet. V ResultSet[2] mám seznam krabic a na jaké paletě leží <Parent>.
Celý problém tkví v tom, že v hlavním xsl:foreach cyklu je ještě vnitřní cyklus a v obouch používám position().
Ve vnitřním cyklu jen přičítám +1 aby sekvenční číslo jednotlivých <Package> iterovalo správně.
Takže vznikne první element Package typu paleta a následujou Package typu box co jsou na ní naloženy. Pak další Package typu paleta a za ním Package typu box co jsou na ní.
Havní problém je v tom, že se počítá pomocí position() v obou cyklech a tím nikdy nevznikne postupné číslování.
Další, co pak budu řešit, je přiřadit všem Package typu Box sekvenční číslo jejich palety/rodiče.
<ResultsSet>
<ResultSet>
<Row><Parent>11</Parent></Row>
<Row><Parent>10</Parent></Row>
<Row><Parent>6</Parent></Row>
</ResultSet>
<ResultSet>
<Row>
<Child>aaa</Child>
<Parent>11</Parent>
</Row>
<Row>
<Child>bbb</Child>
<Parent>11</Parent>
</Row>
<Row>
<Child>ccc</Child>
<Parent>10</Parent>
</Row>
<Row>
<Child>ddd</Child>
<Parent>10</Parent>
</Row>
<Row>
<Child>zzz</Child>
<Parent>6</Parent>
</Row>
</ResultSet>
</ResultsSet>
<xsl:for-each select="/ResultsSet/ResultSet[1]/Row">
<xsl:variable name="Parent" select="/ResultsSet/ResultSet[1]/Row/Parent"></xsl:variable>
<Pack>
<Type>Pallet<Type>
<ID><xsl:value-of select="Parent"/></ID>
<Sequence><xsl:value-of select="position()"></Sequence>
</Pack>
<xsl:for-each select="/ResultsSet/ResultSet[2]/Row[Parent='$Parent']">
<Pack>
<Type>Box<Type>
<ID><xsl:value-of select="Child"></ID>
<Sequence><xsl:value-of select="position() +1"></Sequence>
<Parent>sekvenční číslo rodičovské palety</Parent>
</Pack>
</xsl:for-each>