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

Diff of /trunk/projects/theory/snapdm/res/intermediate2tap.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 88  Line 88 
88        <xsl:attribute name="version" select="'1.1'"/>        <xsl:attribute name="version" select="'1.1'"/>
89        <xsl:element name="RESOURCE">        <xsl:element name="RESOURCE">
90          <xsl:attribute name="name" select="name"/>          <xsl:attribute name="name" select="name"/>
91          <xsl:choose>          <xsl:element name="DESCRIPTION">
92          <xsl:when test="$taptype='fields'">            <xsl:value-of select="description"/>
93            <xsl:apply-templates select=".//objectType" mode="tap_fields">          </xsl:element>
94              <xsl:sort select="name"/>          <xsl:apply-templates select="package[objectType]" mode="tap">
95            </xsl:apply-templates>            <xsl:with-param name="taptype" select="$taptype"/>
96          </xsl:when>          </xsl:apply-templates>
         <xsl:otherwise>  
           <xsl:apply-templates select=".//objectType" mode="tap_tables">  
             <xsl:sort select="name"/>  
           </xsl:apply-templates>  
         </xsl:otherwise>  
         </xsl:choose>  
97        </xsl:element>        </xsl:element>
98      </xsl:element>      </xsl:element>
99    </xsl:template>    </xsl:template>
# Line 107  Line 101 
101    
102    
103    
104      <xsl:template match="package" mode="tap">
105        <xsl:param name="taptype" select="fields"/>
106        <xsl:param name="utypeprefix"/>
107        <xsl:element name="RESOURCE">
108    <!--        <xsl:attribute name="name" select="name"/>
   This template assumes that the public database schema is described as a collection  
   of <TABLE>-s, with predefined fields, possibly from the INFORMAITON_SCHEMA  
   and the columns in the <DATA> describing the columns  
   .  
   -->  
   <xsl:template match="objectType" mode="tap_tables">  
     <xsl:element name="TABLE">  
       <xsl:attribute name="name">  
         <xsl:apply-templates select="." mode="viewName"/>  
       </xsl:attribute>  
109        <xsl:element name="DESCRIPTION">        <xsl:element name="DESCRIPTION">
110          <xsl:value-of select="description"/>          <xsl:value-of select="description"/>
111        </xsl:element>        </xsl:element>
112      </xsl:element>&cr;&cr;        <xsl:choose>
113          <xsl:when test="$taptype='fields'">
114            <xsl:apply-templates select="objectType" mode="tap_fields">
115              <xsl:sort select="name"/>
116            </xsl:apply-templates>
117          </xsl:when>
118          <xsl:otherwise>
119            <xsl:apply-templates select="objectType" mode="tap_tables">
120              <xsl:sort select="name"/>
121            </xsl:apply-templates>
122          </xsl:otherwise>
123          </xsl:choose>
124          <xsl:apply-templates select="package" mode="tap">
125            <xsl:with-param name="taptype" select="$taptype"/>
126          </xsl:apply-templates>
127        </xsl:element>
128    </xsl:template>    </xsl:template>
129    
130    
131    
132    
133    
134    
135    <!--    <!--
136    This template assumes that the public database schema is described as a collection    This template assumes that the public database schema is described as a collection
137    of <TABLE>-s, with the <FIELD>-s describing the columns and no <DATA> element.    of <TABLE>-s, with the <FIELD>-s describing the columns and no <DATA> element.
138    -->    -->
139    
140    <xsl:template match="objectType" mode="tap_fields">    <xsl:template match="objectType" mode="tap_fields">
141        <xsl:variable name="utype">
142          <xsl:apply-templates select="." mode="utype"/>
143        </xsl:variable>
144        
145      <xsl:element name="TABLE">      <xsl:element name="TABLE">
146        <xsl:attribute name="name">        <xsl:attribute name="name">
147          <xsl:apply-templates select="." mode="viewName"/>          <xsl:apply-templates select="." mode="viewName"/>
# Line 153  Line 158 
158          <xsl:attribute name="name" select="$primaryKeyColumnName"/>          <xsl:attribute name="name" select="$primaryKeyColumnName"/>
159          <xsl:attribute name="datatype" select="'long'"/>          <xsl:attribute name="datatype" select="'long'"/>
160          <xsl:attribute name="ucd" select="'TBD'"/>          <xsl:attribute name="ucd" select="'TBD'"/>
161          <xsl:attribute name="utype" select="'TBD'"/>          <xsl:attribute name="utype" select="concat($utype,'.',$primaryKeyColumnName)"/>
162          <xsl:element name="DESCRIPTION">          <xsl:element name="DESCRIPTION">
163            <xsl:text>The unique, primary key column on this table.</xsl:text>            <xsl:text>The unique, primary key column on this table.</xsl:text>
164          </xsl:element>          </xsl:element>
# Line 175  Line 180 
180          <xsl:attribute name="name" select="'containerId'"/>          <xsl:attribute name="name" select="'containerId'"/>
181          <xsl:attribute name="datatype" select="'long'"/>          <xsl:attribute name="datatype" select="'long'"/>
182          <xsl:attribute name="ucd" select="'TBD'"/>          <xsl:attribute name="ucd" select="'TBD'"/>
183          <xsl:attribute name="utype" select="'TBD'"/>          <xsl:attribute name="utype" select="concat($utype,'.CONTAINER')"/>
184          <xsl:element name="DESCRIPTION">          <xsl:element name="DESCRIPTION">
185            <xsl:text>This column is a foreign key pointing to the containing object in </xsl:text>            <xsl:text>This column is a foreign key pointing to the containing object in </xsl:text>
186            <xsl:apply-templates select="key('element',container/@xmiidref)" mode="viewName"/>            <xsl:apply-templates select="key('element',container/@xmiidref)" mode="viewName"/>
# Line 184  Line 189 
189      </xsl:if>              </xsl:if>        
190      <xsl:for-each select="attribute">      <xsl:for-each select="attribute">
191        <xsl:variable name="columns">        <xsl:variable name="columns">
192          <xsl:apply-templates select="." mode="columns"/>          <xsl:apply-templates select="." mode="columns">
193              <xsl:with-param name="utypeprefix" select="$utype"/>
194            </xsl:apply-templates>
195        </xsl:variable>        </xsl:variable>
196        <xsl:for-each select="exsl:node-set($columns)/column">        <xsl:for-each select="exsl:node-set($columns)/column">
197        <xsl:element name="FIELD">        <xsl:element name="FIELD">
# Line 198  Line 205 
205          </xsl:variable>          </xsl:variable>
206          <xsl:attribute name="datatype" select="$votabletype"/>          <xsl:attribute name="datatype" select="$votabletype"/>
207          <xsl:if test="$votabletype='char'">          <xsl:if test="$votabletype='char'">
208                        <xsl:attribute name="width">
209                <xsl:variable name ="length">
210                  <xsl:call-template name="stringlength">
211                    <xsl:with-param name="constraints" select="constraints"/>
212                  </xsl:call-template>
213                </xsl:variable>
214                <xsl:choose>
215                  <xsl:when test="number($length) &lt;= 0"><xsl:text>*</xsl:text></xsl:when>
216                  <xsl:otherwise><xsl:value-of select="$length"/></xsl:otherwise>
217                </xsl:choose>
218              </xsl:attribute>
219          </xsl:if>          </xsl:if>
220          <xsl:attribute name="utype" select="utype"/>          <xsl:attribute name="utype" select="utype"/>
221          <xsl:element name="DESCRIPTION" >          <xsl:element name="DESCRIPTION" >
# Line 266  Line 283 
283        
284    
285    
286    <!--    TAP_table style   -->
287      <!--
288      This template assumes that the public database schema is described as a collection
289      of <TABLE>-s, with predefined fields, possibly from the INFORMAITON_SCHEMA
290      and the columns in the <DATA> describing the columns
291      .
292      -->
293      <xsl:template match="objectType" mode="tap_tables">
294        <xsl:element name="TABLE">
295          <xsl:attribute name="name">
296            <xsl:apply-templates select="." mode="viewName"/>
297          </xsl:attribute>
298          <xsl:element name="DESCRIPTION">
299            <xsl:value-of select="description"/>
300          </xsl:element>
301        </xsl:element>&cr;&cr;
302      </xsl:template>
303    
304    
305        
306    

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

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