<?xml version="1.0" encoding="iso-8859-1"?>

<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <!--V1 <xsl:template match="folder">
    <xsl:param name="anfolder">Root Folder</xsl:param>
    <xsl:variable name = "folderid" select = "@id" />
    <xsl:variable name = "folderkind" select = "@kind" />
    <xsl:variable name = "foldername" select = "name"/>
       
    
    <xsl:for-each select="folder">
      <xsl:variable name="folder_id" select="@id"/>
      <xsl:variable name="folder_kind" select="@kind" />
      <xsl:variable name="folder_name" select="name"/>

      <xsl:variable name="folderinfo">
        <xsl:value-of select="$anfolder"/>::<xsl:value-of select="$folder_kind"/>
      </xsl:variable>
      
      <xsl:apply-templates select = "model">
        <xsl:with-param name = "globalX" select = "$folderinfo"> </xsl:with-param>
      </xsl:apply-templates>
      <xsl:apply-templates select = "atom">
        <xsl:with-param name = "globalX" select = "$folderinfo"> </xsl:with-param>
      </xsl:apply-templates>
      <xsl:apply-templates select = "folder">
        <xsl:with-param name="anfolder" select="$folderinfo"></xsl:with-param>
      </xsl:apply-templates>
    </xsl:for-each>

    <xsl:apply-templates select = "folder">
    </xsl:apply-templates>
    
  </xsl:template>-->


  <!--V2 <xsl:template match="folder">
    <xsl:param name="anfolder">Root Folder</xsl:param>
    <xsl:for-each select="folder">
      <xsl:variable name="folder_id" select="@id"/>
      <xsl:variable name="folder_kind" select="@kind" />
      <xsl:variable name="folder_name" select="name"/>

      <xsl:variable name="folderinfo">
        <xsl:value-of select="$anfolder"/>::<xsl:value-of select="$folder_kind"/>
      </xsl:variable>

      <xsl:apply-templates select = "model">
        <xsl:with-param name = "globalX" select = "$folderinfo"> </xsl:with-param>
      </xsl:apply-templates>
      <xsl:apply-templates select = "atom">
        <xsl:with-param name = "globalX" select = "$folderinfo"> </xsl:with-param>
      </xsl:apply-templates>
      <xsl:apply-templates select = "folder">
        <xsl:with-param name="anfolder" select="$folderinfo"></xsl:with-param>
      </xsl:apply-templates>
    </xsl:for-each>
  </xsl:template>-->

  <!--V3 <xsl:template match="folder">
    <xsl:param name="anfolder"></xsl:param>
    <xsl:variable name = "folderid" select = "@id" />
    <xsl:variable name = "folderkind" select = "@kind" />
    <xsl:variable name = "foldername" select = "name"/>


    <xsl:for-each select="folder">
      <xsl:variable name="folder_id" select="@id"/>
      <xsl:variable name="folder_kind" select="@kind" />
      <xsl:variable name="folder_name" select="name"/>

      <xsl:variable name="folderinfo">
        <xsl:value-of select="$anfolder"/><xsl:value-of select="$folderkind"/>::<xsl:value-of select="$folder_kind"/>
      </xsl:variable>

      <xsl:apply-templates select = "model">
        <xsl:with-param name = "globalX" select = "$folderinfo"> </xsl:with-param>
      </xsl:apply-templates>
      <xsl:apply-templates select = "atom">
        <xsl:with-param name = "globalX" select = "$folderinfo"> </xsl:with-param>
      </xsl:apply-templates>
      <xsl:apply-templates select = "folder">
        <xsl:with-param name="anfolder">
          <xsl:value-of select="$folderinfo"/>::
        </xsl:with-param>
      </xsl:apply-templates>
    </xsl:for-each>
  </xsl:template>-->
  
  <xsl:template match="project">
    <xsl:for-each select="folder">
      <xsl:variable name="folderid" select="@id"/>
      <xsl:variable name="folderkind" select="@kind" />
      <xsl:variable name="foldername" select="name"/>
    </xsl:for-each>

    <xsl:apply-templates select = "folder">
    </xsl:apply-templates>
  </xsl:template>
  
  <xsl:template match="folder">
    <xsl:param name="anfolder"></xsl:param>
    <xsl:variable name = "folderid" select = "@id" />
    <xsl:variable name = "folderkind" select = "@kind" />
    <xsl:variable name = "foldername" select = "name"/>

    <xsl:variable name="folderinfo">
      <xsl:value-of select="$anfolder"/><xsl:value-of select="$folderkind"/>
    </xsl:variable>

    <xsl:apply-templates select = "model">
      <xsl:with-param name = "globalX" select = "$folderinfo"> </xsl:with-param>
    </xsl:apply-templates>
    <xsl:apply-templates select = "atom">
      <xsl:with-param name = "globalX" select = "$folderinfo"> </xsl:with-param>
    </xsl:apply-templates>

    <xsl:apply-templates select = "folder">
      <xsl:with-param name="anfolder">
        <xsl:copy-of select="$folderinfo"/>::</xsl:with-param>
    </xsl:apply-templates>
  
  </xsl:template>
  
  
  <xsl:template match="model">
    <xsl:param name = "globalX"> </xsl:param>
    <br/><br/>
    <xsl:variable name = "modelid" select = "@id" />
    <xsl:variable name = "modelkind" select = "@kind" />
    <xsl:variable name = "modelname" select = "name"/>

    
    model  <xsl:value-of select="$globalX"/>::<xsl:value-of select="$modelname"/> {
      

    <br/>
    <xsl:for-each select = "atom">
      <xsl:variable name = "atomid" select = "@id" />
      <xsl:variable name = "atomkind" select = "@kind" />
      <xsl:variable name = "atomname" select = "name"/>      
      <xsl:value-of select="$atomname"/> ; <br/>
    </xsl:for-each>

    <xsl:for-each select = "model">
      <xsl:variable name = "model_id" select = "@id" />
      <xsl:variable name = "model_kind" select = "@kind" />
      <xsl:variable name = "model_name" select = "name"/>
      <xsl:value-of select="$model_name"/> ; <br/>
    </xsl:for-each >

    <br/>

    fields
    <xsl:for-each select = "attribute">
      <xsl:value-of select="@kind"/>,
    </xsl:for-each>
    ;<br/><br/>

    connections <br/>

    <xsl:for-each select = "connection">
      <xsl:variable name = "conn2" select = "@id" />

      <xsl:variable name = "connpt2" select = "connpoint[@role='src']/@target" />
      <xsl:variable name = "connpt4" select = "connpoint[@role='dst']/@target" />

      <xsl:value-of select="$globalX"/>::<xsl:value-of select="name"/> :
      <xsl:call-template name = "scopeX">
        <xsl:with-param name = "targ" select = "$connpt2"> </xsl:with-param>
      </xsl:call-template>
      ->
      <xsl:call-template name = "scopeX">
        <xsl:with-param name = "targ" select = "$connpt4"> </xsl:with-param>
      </xsl:call-template>  ;


      <br/>

    </xsl:for-each>

    }

    <xsl:apply-templates select = "model">
      <xsl:with-param name = "globalX" select = "$globalX"> </xsl:with-param>
    </xsl:apply-templates>
    <xsl:apply-templates select = "atom">
      <xsl:with-param name = "globalX" select = "$globalX"> </xsl:with-param>
    </xsl:apply-templates>
  </xsl:template>


  <xsl:template match="atom">
    <xsl:param name = "globalX"> </xsl:param>
    <br/><br/>
    <xsl:variable name = "atomid" select = "@id" />
    <xsl:variable name = "atomkind" select = "@kind" />
    <xsl:variable name = "atomname" select = "name"/>

   
    atom <xsl:value-of select="$globalX"/>::<xsl:value-of select="$atomname"/> {
     

    <br/>

    fields
    <xsl:for-each select = "attribute">
      <xsl:value-of select="@kind"/>,
    </xsl:for-each>
    ;<br/>
    }
  </xsl:template>


  <xsl:template name = "scopeX" >
    <xsl:param name = "targ"> </xsl:param>
    <xsl:variable name = "parenter" select = "//parent::node()[@id = $targ]/name" />
    <xsl:variable name = "IDer" select = "//parent::node()[@id = $targ]/@kind" />
    <xsl:value-of select = "$IDer"/>
  </xsl:template>

</xsl:stylesheet>
