⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lines.xsl

📁 Copyright&copy 2004 Sergiu Dumitriu, Marta G&icirc rdea, C&#259 t&#259 lin Hri&#355 cu Permission is
💻 XSL
📖 第 1 页 / 共 3 页
字号:
				<xsl:with-param name="DiagramID" select="$DiagramID" />			</xsl:call-template>			<path d="{$PathData}" fill="none" style="stroke-dasharray: 6 10" marker-end="url(#DependencyArrowhead{$DiagramID})" />		</g>	</xsl:template>	<!-- ProvidedInterfaceEdge line, displayed as a simple line -->	<xsl:template name="ProvidedInterfaceEdge">		<xsl:param name="Waypoints" select="UML:GraphEdge.waypoints"/>		<xsl:param name="DiagramID" select="@xmi.id"/>		<xsl:variable name="PathData">			<xsl:call-template name="BuildPathData"/>		</xsl:variable>		<!-- The main ProvidedInterfaceEdge group -->		<g transform="translate({UML:GraphElement.position/XMI.field[1]}, {UML:GraphElement.position/XMI.field[2]})">			<xsl:apply-templates select="." mode="FontStyle"/>			<xsl:apply-templates select="." mode="StrokeStyle"/>			<xsl:apply-templates select="." mode="isVisible" />			<title>ProvidedInterfaceEdge line</title>			<desc>ProvidedInterfaceEdge</desc>			<!-- The RequiredInterfaceEdge line -->			<path d="{$PathData}" fill="none"/>		</g>	</xsl:template>	<xsl:template name="EdgeText">		<xsl:param name="SemanticID"/>		<!-- Edge properties -->		<xsl:for-each select="UML:GraphElement.contained/UML:GraphNode">			<xsl:choose>				<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'StereotypeCompartment'">					<!-- Stereotype compartment -->					<xsl:call-template name="StereotypeCompartment">						<xsl:with-param name="SemanticID" select="$SemanticID"/>					</xsl:call-template>				</xsl:when>				<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'DirectedName'">					<!-- DirectedName -->					<g transform="translate({UML:GraphElement.position/XMI.field[1]}, {UML:GraphElement.position/XMI.field[2]})">						<xsl:apply-templates select="." mode="FontStyle"/>						<xsl:apply-templates select="." mode="isVisible"/>						<title><xsl:text>DirectedName for </xsl:text><xsl:value-of select="$SemanticID"/></title>						<desc><xsl:text>Main DirectedName group</xsl:text></desc>						<xsl:for-each select="UML:GraphElement.contained/UML:GraphNode">							<xsl:choose>								<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'Name'">									<xsl:call-template name="Name">										<xsl:with-param name="SemanticID" select="$SemanticID" />									</xsl:call-template>								</xsl:when>								<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'Derived'">									<text x="{UML:GraphElement.position/XMI.field[1]}" y="{UML:GraphElement.position/XMI.field[2]}">										<xsl:apply-templates select="." mode="FontStyle"/>										<xsl:text>/</xsl:text>									</text>								</xsl:when>							</xsl:choose>						</xsl:for-each>					</g>				</xsl:when>				<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'KeywordMetaclass'">					<!-- Metaclass -> Extend / Include -->					<text x="{UML:GraphElement.position/XMI.field[1]}" y="{UML:GraphElement.position/XMI.field[2]}">						<xsl:choose>							<xsl:when test="key('xmi.id', $SemanticID)/self::UML:Extend">								<xsl:value-of select="'extend'"/>							</xsl:when>							<xsl:when test="key('xmi.id', $SemanticID)/self::UML:Include">								<xsl:value-of select="'include'"/>							</xsl:when>						</xsl:choose>					</text>				</xsl:when>				<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'Name'">					<!-- Name -->					<xsl:call-template name="Name">						<xsl:with-param name="SemanticID" select="$SemanticID" />					</xsl:call-template>				</xsl:when>				<xsl:when test="UML:GraphElement.semanticModel/UML:Uml1SemanticModelBridge/UML:Uml1SemanticModelBridge.element/UML:AssociationEnd">					<!-- Endpoints -->					<xsl:variable name="EndpointSemanticID" select="UML:GraphElement.semanticModel/UML:Uml1SemanticModelBridge/UML:Uml1SemanticModelBridge.element/*/@xmi.idref"/>					<g transform="translate({UML:GraphElement.position/XMI.field[1]}, {UML:GraphElement.position/XMI.field[2]})" id="{$EndpointSemanticID}">						<xsl:apply-templates select="." mode="FontStyle"/>						<xsl:apply-templates select="." mode="isVisible"/>						<title><xsl:text>Endpoint </xsl:text><xsl:value-of select="$EndpointSemanticID"/></title>						<desc><xsl:text>Main Endpoint group</xsl:text></desc>						<!-- Contained nodes -->						<xsl:for-each select="UML:GraphElement.contained/UML:GraphNode">							<xsl:choose>								<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'Name'">									<!-- Endpoint Name -->									<text>										<xsl:apply-templates select="." mode="FontStyle"/>										<xsl:apply-templates select="." mode="isVisible"/>										<xsl:if test="key('xmi.id', $EndpointSemanticID)/@targetScope = 'classifier'">											<xsl:attribute name="text-decoration"><xsl:text>underline</xsl:text></xsl:attribute>										</xsl:if>										<xsl:call-template name="StringTSpan">											<xsl:with-param name="SemanticID" select="$EndpointSemanticID" />											<xsl:with-param name="String">												<xsl:value-of select="key('xmi.id', $EndpointSemanticID)/@name"/>											</xsl:with-param>											<xsl:with-param name="x" select="UML:GraphElement.position/XMI.field[1]" />											<xsl:with-param name="y" select="UML:GraphElement.position/XMI.field[2]" />										</xsl:call-template>									</text>								</xsl:when>								<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'Visibility'">									<!-- Endpoint Visibility -->									<!-- Main Visibility group -->									<g transform="translate({UML:GraphElement.position/XMI.field[1]}, {UML:GraphElement.position/XMI.field[2]})" id="{@xmi.id}">										<xsl:apply-templates select="." mode="FontStyle"/>										<xsl:apply-templates select="." mode="isVisible"/>										<title><xsl:text>Visibility </xsl:text><xsl:value-of select="$EndpointSemanticID"/></title>										<desc><xsl:text>Main Visibility group</xsl:text></desc>										<!-- Visibility text -->										<text>											<xsl:call-template name="Visibility"/>										</text>									</g>								</xsl:when>								<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'Multiplicity'">									<!-- Endpoint Multiplicity -->									<!-- Main Multiplicity group -->									<g transform="translate({UML:GraphElement.position/XMI.field[1]}, {UML:GraphElement.position/XMI.field[2]})" id="{@xmi.id}">										<xsl:apply-templates select="." mode="FontStyle"/>										<xsl:apply-templates select="." mode="isVisible"/>										<title><xsl:text>Multiplicity </xsl:text><xsl:value-of select="$EndpointSemanticID"/></title>										<desc><xsl:text>Main Multiplicity group</xsl:text></desc>										<!-- Multiplicity text -->										<text>											<xsl:call-template name="Multiplicity"/>										</text>									</g>								</xsl:when>								<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'ExpressionCompartment'">									<!-- Endpoint expressions -->									<xsl:call-template name="ExpressionCompartment">										<xsl:with-param name="SemanticID" select="$EndpointSemanticID"/>									</xsl:call-template>								</xsl:when>							</xsl:choose>						</xsl:for-each>					</g>				</xsl:when>				<xsl:when test="UML:GraphElement.semanticModel/UML:Uml1SemanticModelBridge/UML:Uml1SemanticModelBridge.element/UML:Stimulus">					<!-- Link Stimulus -->					<xsl:variable name="StimulusSemanticID" select="UML:GraphElement.semanticModel/UML:Uml1SemanticModelBridge/UML:Uml1SemanticModelBridge.element/*/@xmi.idref"/>					<g transform="translate({UML:GraphElement.position/XMI.field[1]}, {UML:GraphElement.position/XMI.field[2]})">						<xsl:apply-templates select="." mode="FontStyle"/>						<xsl:apply-templates select="." mode="StrokeStyle"/>						<xsl:apply-templates select="." mode="isVisible"/>						<xsl:for-each select="UML:GraphElement.contained/UML:GraphNode">							<xsl:choose>								<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'Arrow'">									<xsl:variable name="ActionSemanticID" select="key('xmi.id', $StimulusSemanticID)/UML:Stimulus.dispatchAction/*/@xmi.idref"/>									<xsl:choose>										<xsl:when test="key('xmi.id', $ActionSemanticID)/@isAsynchronous = 'true'">											<xsl:call-template name="AsynchronousArrow"/>										</xsl:when>										<xsl:otherwise>											<xsl:call-template name="SynchronousArrow"/>										</xsl:otherwise>									</xsl:choose>								</xsl:when>									<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'SequenceExpression'">									<g transform="translate({UML:GraphElement.position/XMI.field[1]}, {UML:GraphElement.position/XMI.field[2]})">										<xsl:apply-templates select="." mode="FontStyle"/>										<xsl:apply-templates select="." mode="isVisible"/>										<title><xsl:text>SequenceExpression for </xsl:text><xsl:value-of select="$StimulusSemanticID"/></title>										<desc><xsl:text>Main SequenceExpression group</xsl:text></desc>										<xsl:for-each select="UML:GraphElement.contained/UML:GraphNode">											<xsl:choose>												<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'Name'">													<xsl:call-template name="Name"/>												</xsl:when>											</xsl:choose>										</xsl:for-each>									</g>								</xsl:when>									<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'TypeSeparator'">									<!-- Separator, ':' -->									<text>										<xsl:apply-templates select="." mode="FontStyle"/>										<xsl:call-template name="StringTSpan">											<xsl:with-param name="SemanticID" select="$StimulusSemanticID" />											<xsl:with-param name="String">												<xsl:text>:</xsl:text>											</xsl:with-param>											<xsl:with-param name="x" select="UML:GraphElement.position/XMI.field[1]" />											<xsl:with-param name="y" select="UML:GraphElement.position/XMI.field[2]" />										</xsl:call-template>									</text>								</xsl:when>								<xsl:when test="UML:GraphElement.semanticModel/UML:Uml1SemanticModelBridge/UML:Uml1SemanticModelBridge.element/UML:DestroyAction or										UML:GraphElement.semanticModel/UML:Uml1SemanticModelBridge/UML:Uml1SemanticModelBridge.element/UML:CreateAction or										UML:GraphElement.semanticModel/UML:Uml1SemanticModelBridge/UML:Uml1SemanticModelBridge.element/UML:CallAction or										UML:GraphElement.semanticModel/UML:Uml1SemanticModelBridge/UML:Uml1SemanticModelBridge.element/UML:SendAction or										UML:GraphElement.semanticModel/UML:Uml1SemanticModelBridge/UML:Uml1SemanticModelBridge.element/UML:ReturnAction">									<g transform="translate({UML:GraphElement.position/XMI.field[1]}, {UML:GraphElement.position/XMI.field[2]})">										<xsl:apply-templates select="." mode="FontStyle"/>										<xsl:apply-templates select="." mode="isVisible"/>										<xsl:variable name="ActionSemanticID" select="UML:GraphElement.semanticModel/UML:Uml1SemanticModelBridge/UML:Uml1SemanticModelBridge.element/*/@xmi.idref"/>										<title><xsl:text>Stimulus Action </xsl:text><xsl:value-of select="$ActionSemanticID"/><xsl:text> for </xsl:text><xsl:value-of select="$StimulusSemanticID"/></title>										<desc><xsl:text>Main Stimulus Action group</xsl:text></desc>										<xsl:for-each select="UML:GraphElement.contained/UML:GraphNode">											<xsl:choose>												<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'Name'">													<xsl:call-template name="Name">														<xsl:with-param name="SemanticID" select="$ActionSemanticID"/>													</xsl:call-template>												</xsl:when>												<xsl:when test="UML:GraphElement.semanticModel/UML:Uml1SemanticModelBridge/UML:Uml1SemanticModelBridge.element/*">													<!-- TO DO: This is a workaround, try to use the inner elements' semantic -->													<xsl:call-template name="Name">														<xsl:with-param name="SemanticID" select="$ActionSemanticID"/>													</xsl:call-template>												</xsl:when>											</xsl:choose>										</xsl:for-each>									</g>								</xsl:when>							</xsl:choose>						</xsl:for-each>					</g>				</xsl:when>				<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'TransitionDescription'">					<!-- Transition description -->					<xsl:call-template name="TransitionDescription"/>				</xsl:when>				<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'NamespaceCompartment'">					<!-- Namespace compartment -->					<xsl:call-template name="Namespace"/>				</xsl:when>				<xsl:when test="UML:GraphElement.semanticModel/UML:SimpleSemanticModelElement/@typeInfo = 'ExpressionCompartment'">					<!-- Expression compartment -->					<xsl:call-template name="ExpressionCompartment"/>				</xsl:when>			</xsl:choose>		</xsl:for-each>	</xsl:template>	<!-- Build a path data ( 'd' attribute for path element) -->	<xsl:template name="BuildPathData">		<xsl:param name="Waypoints" select="UML:GraphEdge.waypoints" />		<xsl:text>M </xsl:text>		<xsl:for-each select="$Waypoints/XMI.field">			<xsl:choose>			  <xsl:when test="position() = 1">				<xsl:value-of select="./XMI.field[position()=1]" /><xsl:text> </xsl:text>				<xsl:value-of select="./XMI.field[position()=2]" /><xsl:text> L </xsl:text>			  </xsl:when>			  <xsl:otherwise>				<xsl:if test="(position() mod 3) = 1">					<xsl:value-of select="./XMI.field[position()=1]" /><xsl:text> </xsl:text>					<xsl:value-of select="./XMI.field[position()=2]" /><xsl:text> </xsl:text>				</xsl:if>			  </xsl:otherwise>			</xsl:choose>		</xsl:for-each>	</xsl:template></xsl:stylesheet>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -