So sorry...Mr.mhkay.......I've edited my source document. Could you help me fix the transformation document?
I have the XML source file that presents like this:
Code:
<process id='a001' name='proc111'>
<laneset>
<lane id='c001' name='User111'>
<referenceElements>d001</referenceElements>
</lane>
<lane id='c002' name='User222'/>
<referenceElements>d002</referenceElements>
</lane>
</laneset>
<startevent id='d001' name='startevent111'/>
<gateway id='d002' name='gateway111'/>
</process>
<process id='a002' name='proc222'>
<laneset>
<lane id='c001' name='customer'>
<referenceElements>d003</referenceElements>
</lane>
</laneset>
<endevent id='d003' name='endevent111'/>
</process>
-----------------------------------------------
i wanna tranform to XML target as following document:
Code:
<svg>
<g id='a001' class='pools'>
<g id='b001' class='pool' name='Proc111'>
<g id='c001' class='lane' name='User111' PoolID='b001'>
<g id='d001' class='startevent' name='startevent111' LaneID='c001'></g>
</g>
<g id='c002' class='lane' name='User222' PoolID='b001'>
<g id='d002' class='gateway' name='gateway111' LaneID='c002'></g>
</g>
</g>
<g id='b002' class='pool' name='Proc222'>
<g id='c003' class='lane' name=' customer ' PoolID=' b002'>
<g id='d003' class='endevent' name='endevent111' LaneID='c003'> </g>
</g>
</g>
</g>
</svg>
------------------
My transformation file:
---------
Code:
<xsl:template match="/">
<svg>
<xsl:apply-templates/>
</svg>
</xsl:template>
<xsl:template match="process">
<g id="{@id}" name="{@name}" class="POOL">
<xsl:apply-templates select="laneset/lane"/>
</g>
</xsl:template>
<xsl:template match="lane">
<g id="{@id}" class="LANE" name="{@name}" PoolID="parent::current()/@id">
<xsl:variable name="p" select="count(preceding-sibling::lane)+1"/>
<xsl:variable name="ref" select="ancestor::process/*[$p+1]"/>
<xsl:apply-templates select="$ref"/>
</g>
</xsl:template>
<xsl:template match="startevent">
<g id="{@id}" class="startevent" name="{@name}" LaneID="{parent::current()/@id}"/>
</xsl:template>
<xsl:template match="endevent">
<g id="{@id}" class="endevent" name="{@name}" LaneID="{parent::current()/@id}"/>
</xsl:template>
<xsl:template match="gateway">
<g id="{@id}" class="gateway" name="{@name}" LaneID="{parent::current()/@id}"/>
</xsl:template>
</xsl:stylesheet>
Could you see my problems?
