/[volute]/trunk/projects/theory/snapdm/res/intermediate2ddl.xsl
ViewVC logotype

Diff of /trunk/projects/theory/snapdm/res/intermediate2ddl.xsl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 229 by gerard.lemson, Tue Apr 15 16:30:21 2008 UTC revision 230 by gerard.lemson, Wed Apr 16 06:39:25 2008 UTC
# Line 48  Line 48 
48        <xsl:otherwise><xsl:value-of select="$xslLastModified"/></xsl:otherwise>        <xsl:otherwise><xsl:value-of select="$xslLastModified"/></xsl:otherwise>
49      </xsl:choose>      </xsl:choose>
50    </xsl:variable>    </xsl:variable>
51      
52      <!-- next two might also be parameters, or obtained from a config file -->
53    <xsl:variable name="defaultVarcharLength" select="'256'"/>    <xsl:variable name="defaultVarcharLength" select="'256'"/>
54        <xsl:variable name="longstringtype" select="'text'"/> <!-- SQLServer specific -->
55        
56    <xsl:template match="/">    <xsl:template match="/">
57      <xsl:apply-templates select="model"/>      <xsl:apply-templates select="model"/>
# Line 78  Line 79 
79      <xsl:variable name="containers">      <xsl:variable name="containers">
80      </xsl:variable>      </xsl:variable>
81    CREATE TABLE <xsl:value-of select="$tableName"/> (    CREATE TABLE <xsl:value-of select="$tableName"/> (
82      id bigint NOT NULL      id bigint not null
83      <xsl:apply-templates select="." mode="containers"/>      <xsl:apply-templates select="." mode="containers"/>
84      <xsl:apply-templates select="." mode="hierarchy"/>      <xsl:apply-templates select="." mode="hierarchy"/>
85    );&cr;&cr;    );&cr;&cr;
# Line 91  Line 92 
92      <xsl:variable name="containers">      <xsl:variable name="containers">
93      </xsl:variable>      </xsl:variable>
94    CREATE TABLE <xsl:value-of select="$tableName"/> (    CREATE TABLE <xsl:value-of select="$tableName"/> (
95      id bigint NOT NULL      id bigint not null
96      <xsl:apply-templates select="." mode="container"/>      <xsl:apply-templates select="." mode="container"/>
97      <xsl:apply-templates select="attribute" />      <xsl:apply-templates select="attribute" />
98      <xsl:apply-templates select="reference" />      <xsl:apply-templates select="reference" />
# Line 144  Line 145 
145        
146        
147    <xsl:template match="attribute" mode="simple">    <xsl:template match="attribute" mode="simple">
148        <xsl:variable name="constraints" select="constraints"/>
149      <xsl:variable name="type">      <xsl:variable name="type">
150        <xsl:apply-templates select="datatype" mode="sqltype"/>        <xsl:apply-templates select="datatype" mode="sqltype">
151            <xsl:with-param name="constraints" select="constraints"/>
152          </xsl:apply-templates>
153      </xsl:variable>      </xsl:variable>
154  ,&bl;&bl;<xsl:value-of select="name"/>&bl;<xsl:value-of select="$type"/><xsl:if test="multiplicity = '1'"> not null</xsl:if>  ,&bl;&bl;<xsl:value-of select="name"/>&bl;<xsl:value-of select="$type"/><xsl:if test="multiplicity = '1'"> not null</xsl:if>
155    </xsl:template>    </xsl:template>
# Line 166  Line 170 
170        
171    <!-- We need lengths for (var)char datatypes -->    <!-- We need lengths for (var)char datatypes -->
172    <xsl:template match="datatype" mode="sqltype">    <xsl:template match="datatype" mode="sqltype">
173        <xsl:param name="constraints"/>
174    
175      <xsl:choose>      <xsl:choose>
176        <xsl:when test="@type = 'boolean'">bit</xsl:when>        <xsl:when test="@type = 'boolean'">bit</xsl:when>
177        <xsl:when test="@type = 'integer'">integer</xsl:when>        <xsl:when test="@type = 'integer'">integer</xsl:when>
# Line 176  Line 182 
182        <xsl:otherwise>        <xsl:otherwise>
183          <xsl:variable name="length">          <xsl:variable name="length">
184            <xsl:choose>            <xsl:choose>
185              <xsl:when test="@length">              <xsl:when test="$constraints/length">
186                <xsl:value-of select="@length"/>                <xsl:value-of select="$constraints/length"/>
187                </xsl:when>
188                <xsl:when test="$constraints/maxLength">
189                  <xsl:value-of select="$constraints/maxLength"/>
190              </xsl:when>              </xsl:when>
191              <xsl:otherwise>              <xsl:otherwise>
192                <xsl:value-of select="$defaultVarcharLength"/>                <xsl:value-of select="$defaultVarcharLength"/>
193              </xsl:otherwise>              </xsl:otherwise>
194            </xsl:choose>            </xsl:choose>
195          </xsl:variable>varchar(<xsl:value-of select="$length"/>)</xsl:otherwise>          </xsl:variable>
196            <xsl:choose>
197              <xsl:when test="$length &lt;= 0"><xsl:value-of select="$longstringtype"/></xsl:when>
198              <xsl:otherwise>varchar(<xsl:value-of select="$length"/>)</xsl:otherwise>
199            </xsl:choose></xsl:otherwise>
200      </xsl:choose>      </xsl:choose>
201    </xsl:template>    </xsl:template>
202    
# Line 196  Line 209 
209    </xsl:if>    </xsl:if>
210    </xsl:template>    </xsl:template>
211        
     
   <xsl:template match="collection">  
   <xsl:if test="not(subsets)">  
 ,&tab; <xsl:value-of select="name"/>Id&bl;bigint<xsl:if test="multiplicity = '1'"> not null</xsl:if>  
   </xsl:if>  
   </xsl:template>  
     
212    
213        
214    <!-- TODO    <!-- TODO

Legend:
Removed from v.229  
changed lines
  Added in v.230

msdemlei@ari.uni-heidelberg.de
ViewVC Help
Powered by ViewVC 1.1.26