Joe,
could you help me with this please..This is the XSLT I have written:
<xsl:template match="ownedMember[@xmi:type='uml:Package'] ">
<xsl:if test="/uml:Model/ownedMember[@xmi:type='uml:Stereotype' and @name='feature module' and @xmi:id = current()/@xmi:id]">
<xsl:element name='xak:extends'>
<xsl:attribute name="xak:module"><xsl:value-of select='concat("m", translate(@name, " ", "_") )' /></xsl:attribute>
<xsl:element name='xak:super'>
<xsl:attribute name="xak:module"><xsl:value-of select='concat("m", translate(@name, " ", "_") )' /></xsl:attribute>
<xsl:apply-templates select = "./ownedMember[@xmi:type= 'uml:Class']"/>
</xsl:element>
</xsl:element>
</xsl:if>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="ownedMember[@xmi:type= 'uml:Class']">
<xsl:choose>
<xsl:when test="/uml:Model/ownedMember[@xmi:type='uml:Stereotype' and @name='class refinement' and @xmi:id = current()/@xmi:id]">
<xak:extends>
<xsl:attribute name="xak:module"><xsl:value-of select='concat("m", translate(@name, " ", "_") )' /></xsl:attribute>
<xak:super>
<xsl:attribute name="xak:module"><xsl:value-of select='concat("m", translate(@name, " ", "_") )' /></xsl:attribute>
<xsl:copy-of select="./*"/>
</xak:super>
</xak:extends>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="./*"/>
</xsl:otherwise>
</xsl:choose>
<xsl:apply-templates/>
</xsl:template>
But both the if:test are failing are failing
The source file is:
<uml:Model>
<ownedMember xmi:type="uml:Stereotype" xmi:id="_M-Cnv04wEdy-a6vbxd4tOQ" name="feature module">
<ownedAttribute xmi:id="_M-CnwE4wEdy-a6vbxd4tOQ" name="base_Package" visibility="private" association="_M-CnwU4wEdy-a6vbxd4tOQ">
<type xmi:type="uml:Class" href="pathmap://UML2_METAMODELS/UML2.metamodel.uml2#_m82oYa86EdiEh75YJ_3n8g"/>
</ownedAttribute>
</ownedMember>
<ownedMember xmi:type="uml:Extension" xmi:id="_M-CnwU4wEdy-a6vbxd4tOQ" memberEnd="_M-Cnwk4wEdy-a6vbxd4tOQ _M-CnwE4wEdy-a6vbxd4tOQ">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_M-Cnwk4wEdy-a6vbxd4tOQ" name="extension_" visibility="private" type="_M-Cnv04wEdy-a6vbxd4tOQ" association="_M-CnwU4wEdy-a6vbxd4tOQ" aggregation="composite">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M-Cnw04wEdy-a6vbxd4tOQ" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M-CnxE4wEdy-a6vbxd4tOQ"/>
</ownedEnd>
</ownedMember>
<ownedMember xmi:type="uml:Package" xmi:id="_M-CnxU4wEdy-a6vbxd4tOQ" name="UML Standard Profile">
<ownedComment xmi:id="_M-Cnxk4wEdy-a6vbxd4tOQ" body="UML Standard Profile contains several popular stereotypes, tag definitions and constraints described in UML 1.4 and UML 2.0 Specifications." annotatedElement="_M-CnxU4wEdy-a6vbxd4tOQ"/>
</ownedMember>
<ownedMember xmi:type="uml:Package" xmi:id="_M-Cnx04wEdy-a6vbxd4tOQ" name="MinutePlus">
<ownedMember xmi:type="uml:Class" xmi:id="_M-CnyE4wEdy-a6vbxd4tOQ" name="KeyPad">
<ownedAttribute xmi:id="_M-CnyU4wEdy-a6vbxd4tOQ" name="minPlusButton" visibility="private"/>
<ownedOperation xmi:id="_M-Cnyk4wEdy-a6vbxd4tOQ" name="initElements">
<returnResult xmi:id="_M-Cny04wEdy-a6vbxd4tOQ" direction="return">
<type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profi le.uml2#_M-G5LU4wEdy-a6vbxd4tOQ"/>
</returnResult>
<type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profi le.uml2#_M-G5LU4wEdy-a6vbxd4tOQ"/>
</ownedOperation>
<ownedOperation xmi:id="_M-CnzE4wEdy-a6vbxd4tOQ" name="setupPanels">
<returnResult xmi:id="_M-CnzU4wEdy-a6vbxd4tOQ" direction="return">
<type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profi le.uml2#_M-G5LU4wEdy-a6vbxd4tOQ"/>
</returnResult>
<type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profi le.uml2#_M-G5LU4wEdy-a6vbxd4tOQ"/>
</ownedOperation>
<ownedOperation xmi:id="_M-Cnzk4wEdy-a6vbxd4tOQ" name="initListeners">
<returnResult xmi:id="_M-Cnz04wEdy-a6vbxd4tOQ" direction="return">
<type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profi le.uml2#_M-G5LU4wEdy-a6vbxd4tOQ"/>
</returnResult>
<type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profi le.uml2#_M-G5LU4wEdy-a6vbxd4tOQ"/>
</ownedOperation>
<ownedOperation xmi:id="_M-Cn0E4wEdy-a6vbxd4tOQ" name="minPlusListener">
<returnResult xmi:id="_M-Cn0U4wEdy-a6vbxd4tOQ" direction="return">
<type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profi le.uml2#_M-G5LU4wEdy-a6vbxd4tOQ"/>
</returnResult>
<type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profi le.uml2#_M-G5LU4wEdy-a6vbxd4tOQ"/>
</ownedOperation>
</ownedMember>
</ownedMember>
<ownedMember xmi:type="uml:Stereotype" xmi:id="_M-Cn0k4wEdy-a6vbxd4tOQ" name="class refinement">
<ownedAttribute xmi:id="_M-Cn004wEdy-a6vbxd4tOQ" name="base_Class" visibility="private" association="_M-Cn1E4wEdy-a6vbxd4tOQ">
<type xmi:type="uml:Class" href="pathmap://UML2_METAMODELS/UML2.metamodel.uml2#_m88uxq86EdiEh75YJ_3n8g"/>
</ownedAttribute>
</ownedMember>
<ownedMember xmi:type="uml:Extension" xmi:id="_M-Cn1E4wEdy-a6vbxd4tOQ" memberEnd="_M-Cn1U4wEdy-a6vbxd4tOQ _M-Cn004wEdy-a6vbxd4tOQ">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_M-Cn1U4wEdy-a6vbxd4tOQ" name="extension_" visibility="private" type="_M-Cn0k4wEdy-a6vbxd4tOQ" association="_M-Cn1E4wEdy-a6vbxd4tOQ" aggregation="composite">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M-Cn1k4wEdy-a6vbxd4tOQ" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M-Cn104wEdy-a6vbxd4tOQ"/>
</ownedEnd>
</ownedMember>
</uml:Model>
Appreciate your time and help.
Regards,
Sathish
|