xsl-list
[Top] [All Lists]

i need a progressive id...

2005-12-17 10:51:07
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>