Hi,
i am an italian student.
I need to do an xsl transformation to trasform an xml file in an xmi file.
The xml file has a sintax like this:
<?xml version="1.0" encoding="ASCII" ?>
- <useCaseUMLDiagramModel:UseCaseDiagram xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:useCaseUMLDiagramModel="http://useCaseUMLDiagramModel">
- <modelElements type="useCaseUMLDiagramModel:Actor" description=""
name="Utente" location="Point(114, 134)" stereotype="Actor">
<sourceRelationships
xsi:type="useCaseUMLDiagramModel:CommunicateConnection"
target="//@modelElements.1" stereotype="communicate" />
</modelElements>
<modelElements type="useCaseUMLDiagramModel:UseCase" description=""
name="Autenticazione"
targetRelationships="//@modelElements.0/@sourceRelationships.0"
location="Point(339, 149)" size="Dimension(100, 70)" stereotype="Use Case"
/>
</useCaseUMLDiagramModel:UseCaseDiagram>
I need to have an unique id for my xmi file.
This is a little part of my xsl file...
[...]
- <xsl:template match="//modelElements">
- <xsl:choose>
- <xsl:when test="@type='useCaseUMLDiagramModel:Actor'">
- <Behavioral_Elements.Use_Cases.Actor xmi.id="????"> <----------- HERE IS
THE PROBLEM
- <Foundation.Core.ModelElement.name>
<xsl:value-of select="@name" />
</Foundation.Core.ModelElement.name>
<Foundation.Core.ModelElement.isSpecification xmi.value="false" />
<Foundation.Core.GeneralizableElement.isRoot xmi.value="false" />
<Foundation.Core.GeneralizableElement.isLeaf xmi.value="false" />
<Foundation.Core.GeneralizableElement.isAbstract xmi.value="false" />
- <Foundation.Core.ModelElement.namespace>
<Foundation.Core.Namespace xmi.idref="D.1" />
- <!-- Use Case View
-->
</Foundation.Core.ModelElement.namespace>
</Behavioral_Elements.Use_Cases.Actor>
</xsl:when>
- <xsl:when test="@type='useCaseUMLDiagramModel:UseCase'">
- <Behavioral_Elements.Use_Cases.UseCase xmi.id="???"> <-----------
HERE IS THE PROBLEM
- <Foundation.Core.ModelElement.name>
<xsl:value-of select="@name" />
</Foundation.Core.ModelElement.name>
<Foundation.Core.ModelElement.visibility xmi.value="private" />
<Foundation.Core.GeneralizableElement.isRoot xmi.value="false" />
<Foundation.Core.GeneralizableElement.isLeaf xmi.value="false" />
<Foundation.Core.GeneralizableElement.isAbstract xmi.value="false" />
- <Foundation.Core.ModelElement.namespace>
<Model_Management.Model xmi.idref="D.1" />
- <!-- Use Case View
-->
</Foundation.Core.ModelElement.namespace>
</Behavioral_Elements.Use_Cases.UseCase>
</xsl:when>
- <xsl:otherwise>
<errore>errore</errore>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
[...]
The question is: how can i count the model elements and put the correct id?
I tryed to use the count function but it gives me the total number of
elements.
I need something like a counter but i have also readed thah i cant update an
xsl variable.
Someone can give me an help? It's so important!
Thanks, and sorry for my bad english.
Best regards, Gianni.
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--