<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.1" 
xmlns:aaa="http://www.w3.org/1999/XSL/TransformAlias"
xmlns:graph="http://zvon.org/graphotron"
xmlns:dot="http://zvon.org/graphotron/dot"
> 
<xsl:namespace-alias stylesheet-prefix="aaa" result-prefix="xsl"/>

<xsl:include href="graphotronShare.xsl"/>

<xsl:template name="header">
  <xsl:param name="params"/>
  <xsl:text>digraph foo {&#xA;</xsl:text>

  <xsl:if test="$params/node()">
    <aaa:variable name="eee">
      <xsl:copy-of select="$params"/>
    </aaa:variable>

    <aaa:apply-templates select="$eee" mode="printParamGraph"/>
  </xsl:if>

</xsl:template> 

<xsl:template name="footer"> 
  <xsl:text>&#xA;}</xsl:text> 
</xsl:template>

<xsl:template name="printParam">
  <aaa:template match="*" mode="printParam"/>

  <aaa:template match="dot:*" mode="printParamGraph">
    <aaa:apply-templates select="." mode="printParam">
      <aaa:with-param name="separator">;&#xA;</aaa:with-param>
    </aaa:apply-templates>
  </aaa:template>

  <aaa:template match="dot:*" mode="printParam" priority="10">
    <aaa:param name="xslt-target-id"/>
    <aaa:param name="separator">,</aaa:param>

    <aaa:if test="not(local-name()='subgraph')">
      <aaa:variable name="quote">"</aaa:variable>

      <aaa:text> </aaa:text>
      <aaa:value-of select="local-name()"/>
      <aaa:text>=</aaa:text>
      <aaa:value-of select="$quote"/>
      <aaa:variable name="eee">
	<aaa:call-template name="printParamValue">
	  <aaa:with-param name="xslt-target-id" select="$xslt-target-id"/>
	  <aaa:with-param name="value" select="."/>
	</aaa:call-template>
      </aaa:variable>
      <aaa:value-of select="normalize-space($eee)"/>
      <aaa:value-of select="$quote"/>
      <aaa:value-of select="$separator"/>
    </aaa:if>
    </aaa:template>
</xsl:template>

<xsl:template name="vertex-id">
  <aaa:value-of select="generate-id()"/>
</xsl:template>

<xsl:template name="printNode">
      <aaa:variable name="xxx">
	<aaa:if test="$generate-position='yes'">
	  <aaa:text>\n</aaa:text>
	  <aaa:call-template name="create-generate-position"/>
	</aaa:if>
      </aaa:variable>

      <v>
	<xsl:call-template name="vertex-id"/>
	<aaa:text>[label="</aaa:text>
	<aaa:value-of select="$name"/>
	<aaa:value-of select="$xxx"/>
	<aaa:text>",</aaa:text>
	<aaa:apply-templates select="$params/*" mode="printParam"/>
	<aaa:text>];&#xA;</aaa:text>
      </v>
</xsl:template>

<xsl:template name="call-print-edges">
  <aaa:apply-templates select="$xxx/e" mode="printText"/>
</xsl:template>


<xsl:template name="printEdge">
  <aaa:value-of select="$origin"/>
  <aaa:text>-&gt;</aaa:text>
  <aaa:value-of select="$target"/>
  <aaa:text>[</aaa:text>
  <aaa:text>id=</aaa:text>
  <aaa:value-of select="$origin"/>
  <aaa:text>_</aaa:text>
  <aaa:value-of select="$target"/>
  <aaa:text>,</aaa:text>
  <aaa:apply-templates select="$params/*" mode="printParam">
    <aaa:with-param name="xslt-target-id" select="$xslt-target-id"/>
  </aaa:apply-templates>
  <aaa:text>]</aaa:text>
  <aaa:text>;&#xA;</aaa:text> 
</xsl:template>

</xsl:stylesheet> 










