Skip to content

Instantly share code, notes, and snippets.

@wwerner
Created June 4, 2014 07:02
Show Gist options
  • Save wwerner/c1b44ce163f6b53d4145 to your computer and use it in GitHub Desktop.
Save wwerner/c1b44ce163f6b53d4145 to your computer and use it in GitHub Desktop.
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="iso-8859-15" />
<xsl:template match="/">
<xsl:apply-templates select="´scxml" />
</xsl:template>
<xsl:template match="scxml">
<xsl:text>digraph "</xsl:text>
<xsl:value-of select="@name" />
<xsl:text>" {</xsl:text>
<xsl:text>&#xa;</xsl:text>
<xsl:text>"initial"[shape="point",width=.1];</xsl:text>
<xsl:text>&#xa;</xsl:text>
<xsl:apply-templates select="state" />
<xsl:text>&#xa;</xsl:text>
<xsl:text>"initial"->"</xsl:text>
<xsl:value-of select="@initial" />
<xsl:text>";</xsl:text>
<xsl:text>&#xa;</xsl:text>
<xsl:apply-templates select="state/transition" />
<xsl:text>&#xa;</xsl:text>
<xsl:text>&#xa;</xsl:text>
<xsl:text>labelloc="t";</xsl:text>
<xsl:text>label="</xsl:text>
<xsl:value-of select="@name" />
<xsl:text>";</xsl:text>
<xsl:text>&#xa;</xsl:text>
<xsl:text>}</xsl:text>
<xsl:text>&#xa;</xsl:text>
<xsl:text>&#xa;</xsl:text>
</xsl:template>
<xsl:template match="state">
<xsl:text>"</xsl:text>
<xsl:value-of select="@id" />
<xsl:text>"[shape="Mrecord"];</xsl:text>
<xsl:text>&#xa;</xsl:text>
</xsl:template>
<xsl:template match="transition">
<xsl:text>"</xsl:text>
<xsl:value-of select="../@id" />
<xsl:text>"->"</xsl:text>
<xsl:value-of select="@target" />
<xsl:text>"[label="</xsl:text>
<xsl:value-of select="@event" />
<xsl:text>"];</xsl:text>
<xsl:text>&#xa;</xsl:text>
</xsl:template>
</xsl:stylesheet>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment