[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] i need a progressive id...


Subject: RE: [xsl] i need a progressive id...
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sat, 17 Dec 2005 18:44:51 -0000

Use the position() function; or for more elaborate numbering, use
<xsl:number>.

Michael Kay
http://www.saxonica.com/
 

> -----Original Message-----
> From: Gianni G [mailto:giagug80@xxxxxxxxxxx] 
> Sent: 17 December 2005 17:51
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] i need a progressive id...
> 
> 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="//@..." stereotype="communicate" />
>   </modelElements>
>   <modelElements type="useCaseUMLDiagramModel:UseCase" description="" 
> name="Autenticazione" 
> targetRelationships="//@.../@..." 
> 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.


Current Thread
Keywords