/[volute]/trunk/projects/theory/snapdm/res/common-ddl.xsl
ViewVC logotype

Diff of /trunk/projects/theory/snapdm/res/common-ddl.xsl

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

revision 439 by gerard.lemson, Sat May 10 15:36:43 2008 UTC revision 440 by gerard.lemson, Sun May 11 06:09:48 2008 UTC
# Line 3  Line 3 
3  <!ENTITY cr "<xsl:text>  <!ENTITY cr "<xsl:text>
4  </xsl:text>">  </xsl:text>">
5  <!ENTITY bl "<xsl:text> </xsl:text>">  <!ENTITY bl "<xsl:text> </xsl:text>">
 <!ENTITY dotsep "<xsl:text>.</xsl:text>">  
 <!ENTITY colonsep "<xsl:text>:</xsl:text>">  
 <!ENTITY slashsep "<xsl:text>/</xsl:text>">  
6  ]>  ]>
7  <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
8        
# Line 19  Line 16 
16    
17  <!-- Define parameters/variables that can be reused in this script an in others using it (JPA) -->  <!-- Define parameters/variables that can be reused in this script an in others using it (JPA) -->
18    <!-- next two might also be parameters, or obtained from a config file -->    <!-- next two might also be parameters, or obtained from a config file -->
19    <xsl:variable name="defaultVarcharLength" select="'256'"/>    <xsl:variable name="defaultVarcharLength" select="'256'"/>
20    <xsl:variable name="unboundedstringtype" select="'text'"/> <!-- SQLServer specific but supported by postgres -->    <xsl:variable name="unboundedstringtype" select="'text'"/> <!-- SQLServer specific but supported by postgres -->
21    
22    <xsl:variable name="discriminatorColumnName" select="'DTYPE'"/>    <xsl:variable name="discriminatorColumnName" select="'DTYPE'"/>
# Line 65  Line 62 
62      <xsl:param name="attrprefix"/>      <xsl:param name="attrprefix"/>
63      <xsl:param name="utypeprefix"/>      <xsl:param name="utypeprefix"/>
64      <xsl:variable name="utype">      <xsl:variable name="utype">
65        <xsl:value-of select="$utypeprefix"/><xsl:apply-templates select=".." mode="utype"/><xsl:value-of select="name"/>        <xsl:value-of select="concat($utypeprefix,'.',name)"/>
66      </xsl:variable>      </xsl:variable>
67        
68      <xsl:variable name="columnname">      <xsl:variable name="columnname">
69        <xsl:choose>        <xsl:choose>
70          <xsl:when test="$prefix">          <xsl:when test="$prefix">
# Line 109  Line 106 
106            <utype><xsl:value-of select="$utype"/></utype>            <utype><xsl:value-of select="$utype"/></utype>
107          </column>          </column>
108        </xsl:when>        </xsl:when>
109        <xsl:otherwise>        <xsl:when test="name($type) = 'dataType'">
110          <xsl:for-each select="$type/attribute">          <xsl:for-each select="$type/attribute">
111            <xsl:apply-templates select="." mode="columns">            <xsl:apply-templates select="." mode="columns">
112              <xsl:with-param name="prefix" select="$columnname"/>              <xsl:with-param name="prefix" select="$columnname"/>
113              <xsl:with-param name="attrprefix" select="name"/>              <xsl:with-param name="attrprefix" select="name"/>
114              <xsl:with-param name="utypeprefix">              <xsl:with-param name="utypeprefix" select="$utype"/>
               <xsl:value-of select="$utype"/>&dotsep;  
             </xsl:with-param>  
115                            
116            </xsl:apply-templates>            </xsl:apply-templates>
117          </xsl:for-each>          </xsl:for-each>
118        </xsl:otherwise>        </xsl:when>
119      </xsl:choose>      </xsl:choose>
120            
121    </xsl:template>    </xsl:template>
# Line 176  Line 171 
171        </xsl:when>        </xsl:when>
172        <xsl:otherwise>        <xsl:otherwise>
173          <xsl:variable name="length">          <xsl:variable name="length">
174            <xsl:apply-templates select="constraints" mode="length"/>            <xsl:call-template name="stringlength">
175                <xsl:with-param name="constraints" select="constraints"/>
176              </xsl:call-template>
177          </xsl:variable>          </xsl:variable>
178          <xsl:choose>          <xsl:choose>
179            <xsl:when test="$length &lt;= 0"><xsl:value-of select="$unboundedstringtype"/></xsl:when>            <xsl:when test="number($length) &lt;= 0"><xsl:value-of select="$unboundedstringtype"/></xsl:when>
180            <xsl:otherwise>varchar(<xsl:value-of select="$length"/>)</xsl:otherwise>            <xsl:otherwise>varchar(<xsl:value-of select="$length"/>)</xsl:otherwise>
181        </xsl:choose></xsl:otherwise>        </xsl:choose></xsl:otherwise>
182      </xsl:choose>      </xsl:choose>
# Line 187  Line 184 
184        
185    
186  <!-- constraints utility templates -->  <!-- constraints utility templates -->
187    <xsl:template match="constraints" mode="length">    <xsl:template name="stringlength">
188        <xsl:param name="constraints"/>
189      <xsl:choose>      <xsl:choose>
190        <xsl:when test="length">        <xsl:when test="$constraints">
191          <xsl:value-of select="length"/>          <xsl:choose>
192        </xsl:when>            <xsl:when test="$constraints/length">
193        <xsl:when test="maxLength">              <xsl:value-of select="length"/>
194          <xsl:value-of select="maxLength"/>            </xsl:when>
195              <xsl:when test="$constraints/maxLength">
196                <xsl:value-of select="maxLength"/>
197              </xsl:when>
198              <xsl:otherwise>
199                <xsl:value-of select="$defaultVarcharLength"/>
200              </xsl:otherwise>
201            </xsl:choose>
202        </xsl:when>        </xsl:when>
203        <xsl:otherwise>        <xsl:otherwise>
204          <xsl:value-of select="$defaultVarcharLength"/>          <xsl:value-of select="$defaultVarcharLength"/>
205        </xsl:otherwise>        </xsl:otherwise>
206       </xsl:choose>      </xsl:choose>
207    </xsl:template>    </xsl:template>
208    
209    

Legend:
Removed from v.439  
changed lines
  Added in v.440

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