metatools/sysdeftools/lib/mergesysdef-module.xsl
changeset 636 29e6a24e9521
parent 624 f70b728ea30c
child 656 88e01c8f013e
equal deleted inserted replaced
635:945d232265c4 636:29e6a24e9521
     9 	Initial Contributors:
     9 	Initial Contributors:
    10 	Nokia Corporation - initial contribution.
    10 	Nokia Corporation - initial contribution.
    11 	Contributors:
    11 	Contributors:
    12 	Description:
    12 	Description:
    13 	XSLT module for merging only two sysdef files according to the 3.0.1 rules. 
    13 	XSLT module for merging only two sysdef files according to the 3.0.1 rules. 
    14 		2.x and older syntax not supported and must be converetd before calling.
    14 		2.x and older syntax not supported and must be converted before calling.
    15 
    15 
    16 		Requires the including XSLT to also include path-module.xsl
    16 		Requires the including XSLT to also include path-module.xsl
    17 -->
    17 -->
    18 	
    18 	
    19 <xsl:variable name="defaultnamespace">http://www.symbian.org/system-definition</xsl:variable>
    19 <xsl:variable name="defaultnamespace">http://www.symbian.org/system-definition</xsl:variable>
   210 			<xsl:with-param name="other" select="$other/systemModel"/>
   210 			<xsl:with-param name="other" select="$other/systemModel"/>
   211 			<xsl:with-param name="up" select="$up"/>
   211 			<xsl:with-param name="up" select="$up"/>
   212 			<xsl:with-param name="down" select="$down"/>
   212 			<xsl:with-param name="down" select="$down"/>
   213 			<xsl:with-param name="replaces" select="$replaces"/>
   213 			<xsl:with-param name="replaces" select="$replaces"/>
   214 		</xsl:apply-templates>
   214 		</xsl:apply-templates>
       
   215 
       
   216 
       
   217 		<!-- tack on any remaining layers -->
       
   218 		<xsl:apply-templates mode="merge-copy-of" select="$other/systemModel/layer[not(@before) and not(following-sibling::*[@id=current()/layer/@id]) and not(@id=current()/layer/@id)]">
       
   219 			<xsl:with-param name="origin" select="$down"/>
       
   220 			<xsl:with-param name="root" select="current()/.."/>
       
   221 			<xsl:with-param name="replaces" select="$replaces"/>
       
   222 		</xsl:apply-templates>		
       
   223 
   215 	</xsl:copy>
   224 	</xsl:copy>
   216 </xsl:template>
   225 </xsl:template>
   217 
   226 
   218 <xsl:template match="@*|*|comment()" mode="merge-models"><xsl:copy-of select="."/></xsl:template>
   227 <xsl:template match="@*|*|comment()" mode="merge-models"><xsl:copy-of select="."/></xsl:template>
   219 
   228 
   488 		</xsl:choose>
   497 		</xsl:choose>
   489 	</xsl:copy>
   498 	</xsl:copy>
   490 
   499 
   491 		</xsl:otherwise>
   500 		</xsl:otherwise>
   492 	</xsl:choose>
   501 	</xsl:choose>
   493 	
       
   494 	<xsl:if test="self::layer and not(following-sibling::layer)">	
       
   495 		<!-- for the last layer, tack on any remaining layers -->
       
   496 		<xsl:apply-templates mode="merge-copy-of" select="$other/layer[not(@before) and not(following-sibling::*[@id=$this/../layer/@id]) and not(@id=$this/../layer/@id)]">
       
   497 			<xsl:with-param name="origin" select="$down"/>
       
   498 			<xsl:with-param name="root" select="$this/ancestor::SystemDefinition"/>			
       
   499 			<xsl:with-param name="replaces" select="$replaces"/>
       
   500 		</xsl:apply-templates>		
       
   501 	</xsl:if>
       
   502 </xsl:template>
   502 </xsl:template>
   503 
   503 
   504 
   504 
   505 
   505 
   506 <xsl:template match="*" mode="merge-copy-of">
   506 <xsl:template match="*" mode="merge-copy-of">