Changeset 5213


Ignore:
Timestamp:
05/18/14 12:45:53 (10 years ago)
Author:
xnrn@gmx.net
Message:

moved dataset-variable into separate file, because they were initialized everytime even if not needed, which is extremely inefficient.
the separate file is in quaranteen and not imported yet by any files.
only use when sensible.

Location:
SMC/trunk/SMC/src/xsl
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • SMC/trunk/SMC/src/xsl/smc_commons.xsl

    r3526 r5213  
    3232   <xsl:variable name="cmd_components_uri" select="my:config('cmd-components','url')" />
    3333   <xsl:variable name="cmd_profiles_uri" select="my:config('cmd-profiles','url_prefix')" />
    34    
    35 <!-- intermediate datasets bound into variables,to prevent calling the function every time -->
    36     <xsl:variable name="dcr-terms-preload" select="my:getData('dcr-terms-preload')" />
    37    <xsl:variable name="dcr-terms" select="my:getData('dcr-terms')" />
    38     <xsl:variable name="rr-relations" select="my:getData('rr-relations')" />
    39     <!-- rr-relations expanded with terms-->
    40     <xsl:variable name="rr-terms" select="my:getData('rr-terms')" />
    41    <xsl:variable name="cmd-terms" select="my:getData('cmd-terms')" />
    42     <xsl:variable name="cmd-terms-nested" select="my:getData('cmd-terms-nested')" />
    43    <xsl:variable name="dcr-cmd-map" select="my:getData('dcr-cmd-map')" />
    44    <xsl:variable name="isocat-languages" select="my:getData('isocat-languages')" />
    45 
    46     <xsl:key name="concept-id" match="Concept" use="xs:string(@id)" />
     34
     35
     36   <xsl:key name="concept-id" match="Concept" use="xs:string(@id)" />
    4737
    4838    <!--  -->
     
    8171               
    8272             <xsl:result-document href="{$cache_path}" format="xml" >
    83                  <xsl:copy-of select="$result" />
     73                 <xsl:sequence select="$result" />
    8474             </xsl:result-document>
    8575            </xsl:if>
    86             <xsl:if test="not(exists($result/*))">
     76        <xsl:if test="not(doc-available($cache_path)) and not(exists($result/*))">
    8777                <xsl:call-template name="message">
    8878                    <xsl:with-param name="message">WARNING: no data for <xsl:value-of select="$cache_path" /></xsl:with-param>                                                 
    8979                </xsl:call-template>
    90                
     80                <xsl:result-document href="{$cache_path}" format="xml" >
     81                    <diagnostics>no data for <xsl:value-of select="$id" /></diagnostics>
     82                </xsl:result-document>
    9183            </xsl:if>
    9284       
     
    163155            </xsl:when>
    164156            <xsl:when test="$key='profiles' or $key='datcats'">               
    165                 <xsl:copy-of select="my:getRawData($key, $id)" />               
     157                <xsl:sequence select="my:getRawData($key, $id)" />               
    166158            </xsl:when>
    167159            <xsl:when test="$key='cmd-resolved'">
     
    175167            </xsl:when>
    176168            <xsl:when test="$key='cmd-terms-nested-minimal'">
    177                 <xsl:apply-templates select="$cmd-terms-nested" mode="min-context"></xsl:apply-templates>
     169                <xsl:variable name="cmd-terms-nested" select="my:getData('cmd-terms-nested')" />
     170                <xsl:apply-templates select="$cmd-terms-nested" mode="min-context">
     171                    <xsl:with-param name="all-terms" tunnel="yes" select="$cmd-terms-nested" />
     172                </xsl:apply-templates>
    178173            </xsl:when>           
    179174            <xsl:when test="$key='dcr-terms-preload'">
     
    232227            <xd:p>Storing to cache happens in load-profiles template</xd:p>
    233228        </xd:desc>
    234         <xd:param name="key">currently only 'profiles'</xd:param>
     229        <xd:param name="key">'profiles', 'datcats'</xd:param>
    235230        <xd:param name="id">id for the profile</xd:param>
    236231    </xd:doc>
     
    259254       </xsl:call-template>
    260255        <xsl:if test="doc-available($resolved_uri)">
    261             <xsl:copy-of select="doc($resolved_uri)" />
     256            <xsl:sequence select="doc($resolved_uri)" />
    262257                <!--            <xsl:apply-templates select="document($resolved_uri)" mode="include" />-->
    263258        </xsl:if>
     
    290285    </xd:doc>
    291286    <xsl:template name="postload-datcats">
    292        
    293         <xsl:variable name="missing-datcats" select="distinct-values($cmd-terms//Term[not(@datcat='')][not(@datcat =$dcr-terms-preload//Concept/@id)]/@datcat)" />
     287        <xsl:variable name="dcr-terms-preload" select="my:getData('dcr-terms-preload')" />
     288        <xsl:variable name="missing-datcats" select="distinct-values(my:getData('cmd-terms')//Term[not(@datcat='')][not(@datcat =$dcr-terms-preload//Concept/@id)]/@datcat)" />
    294289        <xsl:for-each select="$missing-datcats">
    295290<!--            <xsl:copy-of select="my:getRawData('datcats',.)" />-->
     
    400395<xsl:template name="dcr-cmd-map">
    401396    <xsl:variable name="dcr-terms" select="my:getData('dcr-terms')" />
     397    <xsl:variable name="cmd-terms" select="my:getData('cmd-terms')" />
     398   
    402399    <Termset type="dcr-cmd-map" >       
    403400        <xsl:for-each-group select="$cmd-terms//Term[not(@datcat='')]" group-by="@datcat">
     
    420417        </xd:desc>
    421418    </xd:doc>
    422 <xsl:template name="termsets">   
     419<xsl:template name="termsets">
     420    <xsl:variable name="isocat-languages" select="my:getData('isocat-languages')" />
     421    <xsl:variable name="cmd-terms" select="my:getData('cmd-terms')" />   
    423422    <Termsets type="list">
    424423        <!-- add dcr-termsets directly from config -->
     
    479478        </xd:desc>
    480479    </xd:doc>
    481     <xsl:template name="rr-terms">       
     480   
     481    <xsl:template name="rr-terms">
     482            <xsl:variable name="rr-relations" select="my:getData('rr-relations')" />       
    482483            <xsl:apply-templates select="$rr-relations" mode="rr-expand" ></xsl:apply-templates>             
    483484    </xsl:template>
     
    495496        </xd:desc>
    496497    </xd:doc>
    497     <xsl:template match="Concept" mode="rr-expand">
    498         <xsl:variable name="concept-id" select="@id" />               
     498    <xsl:template match="Concept" mode="rr-expand">       
     499        <xsl:variable name="concept-id" select="@id" />
     500        <xsl:variable name="dcr-cmd-map" select="my:getData('dcr-cmd-map')" />
    499501        <xsl:copy>
    500502            <xsl:copy-of select="@*" />           
  • SMC/trunk/SMC/src/xsl/smc_functions.xsl

    r3526 r5213  
    194194<!--  computing minimal unique path/index -->
    195195<xsl:template match="Term" mode="min-context" >
    196                 <xsl:param name="all-terms" select="$cmd-terms-nested" />
    197                 <xsl:param name="term" select="." />
    198                
     196                <xsl:param name="all-terms" />
     197                <xsl:param name="term" select="." />           
    199198               
    200199                <!--<xsl:variable name="termset_id" select="if (exists(ancestor::Termset/@id)) then ancestor::Termset/@id else ancestor::Termset/@name" />-->
Note: See TracChangeset for help on using the changeset viewer.