📄 expression.xsl
字号:
<?xml version="1.0" encoding="UTF-8"?>
<!--
Template: Expression.xsl
Displays constraints as a list of comma separated expressions between brackets ( { ...,... } )
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/2000/svg" xmlns:UML="org.omg.xmi.namespace.UML">
<xsl:import href="Styling.xsl"/>
<xsl:import href="StringTSpan.xsl"/>
<xsl:output media-type="image/svg+xml" method="xml" indent="yes"/>
<!-- Expression -->
<xsl:template name="Expression">
<xsl:param name="DiagramID" select="@xmi.id"/>
<xsl:param name="SemanticID" select="../../../../UML:GraphElement.semanticModel/UML:Uml1SemanticModelBridge/UML:Uml1SemanticModelBridge.element/*/@xmi.idref"/>
<xsl:variable name="basex" select="UML:GraphElement.position/XMI.field[1]"/>
<xsl:variable name="basey" select="UML:GraphElement.position/XMI.field[2]"/>
<xsl:for-each select="UML:GraphElement.contained/UML:GraphNode">
<xsl:choose>
<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'ExpressionStart'">
<!-- Expression start, '{' -->
<tspan x="{UML:GraphElement.position/XMI.field[1] + $basex}" y="{UML:GraphElement.position/XMI.field[2] + $basey}"><xsl:text>{</xsl:text></tspan>
</xsl:when>
<xsl:when test="UML:GraphElement.semanticModel/UML:Uml1SemanticModelBridge/UML:Uml1SemanticModelBridge.element/*">
<!-- Expressions -->
<xsl:variable name="ConstraintSemanticID" select="UML:GraphElement.semanticModel/UML:Uml1SemanticModelBridge/UML:Uml1SemanticModelBridge.element/*/@xmi.idref"/>
<xsl:call-template name="StringTSpan">
<xsl:with-param name="SemanticID" select="$ConstraintSemanticID" />
<xsl:with-param name="String">
<xsl:value-of select="key('xmi.id', $ConstraintSemanticID)/UML:Constraint.body/*/@body"/>
</xsl:with-param>
<xsl:with-param name="x" select="UML:GraphElement.position/XMI.field[1] + $basex" />
<xsl:with-param name="y" select="UML:GraphElement.position/XMI.field[2] + $basey" />
</xsl:call-template>
</xsl:when>
<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'ExpressionSeparator'">
<!-- Expression separators, ',' -->
<tspan x="{UML:GraphElement.position/XMI.field[1] + $basex}" y="{UML:GraphElement.position/XMI.field[2] + $basey}"><xsl:text>,</xsl:text></tspan>
</xsl:when>
<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'Ordering'">
<!-- Ordering -->
<tspan x="{UML:GraphElement.position/XMI.field[1] + $basex}" y="{UML:GraphElement.position/XMI.field[2] + $basey}"><xsl:value-of select="key('xmi.id', $SemanticID)/@ordering"/></tspan>
</xsl:when>
<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'ExpressionEnd'">
<!-- Expression end, '}' -->
<tspan x="{UML:GraphElement.position/XMI.field[1] + $basex}" y="{UML:GraphElement.position/XMI.field[2] + $basey}"><xsl:text>}</xsl:text></tspan>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -