XSLT: Bucle seleccionando dos elementos a la vez

Tengo un montón de documentos XML donde el autor eligió representar un conjunto de puntos cartesianos como este:

<row index="0">
  <col index="0">0</col>
  <col index="1">0</col>
  <col index="2">1</col>
  <col index="3">1</col>
</row>

Esto sería igual a los puntos (0,0) y (1,1).

Quiero reescribir esto como

<set>
  <point x="0" y="0"/>
  <point x="1" y="1"/>
</set>

Sin embargo, no puedo descubrir cómo crear esto en XSLT, excepto la codificación para cada caso posible, por ejemplo, para un conjunto de 4 puntos:

<set>
  <point>
    <xsl:attribute name="x"><xsl:value-of select="col[@index = 0]"/></xsl:attribute>
    <xsl:attribute name="y"><xsl:value-of select="col[@index = 1]"/></xsl:attribute>
  </point>
  <point>
    <xsl:attribute name="x"><xsl:value-of select="col[@index = 1]"/></xsl:attribute>
    <xsl:attribute name="y"><xsl:value-of select="col[@index = 2]"/></xsl:attribute>
  </point>
  ...

¿Debe haber una mejor manera de hacer esto? Para resumir, quiero crear elementos como<point x="..." y="..."/>, donde x e y son el índice par / imparcol elementos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta