Page: http://wiki.cocoondev.org/Wiki.jsp?page=Jars2exclude , version: 11 on Sat 
Mar  8 16:50:04 2003 by Scherler

- \\
- !Goal\\
?      --

+ !Goal
- !Introduction\\
?              --

+ !Introduction
- # Label lib which should be excluded with "2exclude", but leave exceptions 
untouched\\
+ Step 1a Label lib which should be excluded with "2exclude"\\
+ Step 1b Leave exceptions untouched\\
- # Copy all elements except those which are labeled "2exclude"\\
? ^

+ Step 2 Copy all elements except those which are labeled "2exclude"\\
? ^^^^^^

- !Step 1: Label lib which should be excluded with "2exclude" (leave exceptions 
untouched)
?                                                            
-----------------------------

+ !Step 1a: Label lib which should be excluded with "2exclude"
?        +

- The first xslt (jars2exclude.xsl [2]) checks the <lib> element  form the 
jars.xml whether it starts with  'optional/' (the dir to exclude files from).  
If so, they will be labeled "2exclude" (there are exceptions - you will see 
later).\\
?                                                               -

+ The first xslt (jars2exclude.xsl [2]) checks the <lib> element form the 
jars.xml whether it starts with  'optional/' (the dir to exclude files from).  
If so, they will be labeled "2exclude" (there are exceptions - you will see 
later).\\
- 
- </xsl:choose>
- <xsl:when test="starts-with(text(), 'optional/')"> [2]\\
+ 
- The jars.xml looks like this:\\
?                         ^^^^

+ The jars.xml looks like e.g.:\\
?                         ^^^^

-     <title/>
-     <description/>
-     <used-by/>
-     <lib>core/jvm1.2/excalibur-datasource-vm12-20021121.jar</lib>
-     <homepage/>
+ <title>The XML parser</title>
+ <description>Xerces is an XML parser.</description>
+ <used-by>Cocoon</used-by>
+ <lib>core/xercesImpl-2.0.0.jar</lib>
+ <homepage>http://xml.apache.org/xerces-j/</homepage>
- The example file would not meet the criteria. The following would:
+ The example file would not meet the criteria (__starts-with(text(), 
'optional/')__). The following would:
?                                             
+++++++++++++++++++++++++++++++++++++++

- ...
+ <title>Servlet API</title>
+ <description/>
+ <used-by>Cocoon</used-by>
- ...
+ <homepage>http://jakarta.apache.org/tomcat/</homepage>
- <file>}}}
+ </file>}}}
?  +

- But this certain file has to be left untouched [1] - this is one of n 
exceptions (2 are mentioned in [1], but I need more<-n exception). This is be 
done with the following code:[2].
?                                                                               
                                                                 ^    ^^  
---------------------- -----

+ But this certain file has to be left untouched [1] - this is one of n 
exceptions (2 are mentioned in [1], but I need more<-n exception). This will 
now be explained.
?                                                                               
                                                                + ^^^^^^    
^^^^^^

+ !Step 1b Leave exceptions untouched
+ We introduced one <xsl:choose>. If we nested a little bit deeper we can 
define exceptions. 
+ {{{<lib>
+ <xsl:choose>
+       <xsl:when test="starts-with(text(), 'optional/')">
+               <xsl:choose>
+                       <xsl:when test="substring-after(text(), 
'optional/')='servlet_2_2.jar'">
+                               <xsl:value-of select="."/>
+                       </xsl:when>
+                       <xsl:otherwise>2exclude</xsl:otherwise>
+               </xsl:choose>
+       </xsl:when>
+       <xsl:otherwise>
+               <xsl:value-of select="."/>
+       </xsl:otherwise>
+ </xsl:choose>
+ </lib>}}} 
+ 
-  Here is an example of an exception:
- {{{
- <xsl:when test="substring-after(text(), 'optional/')='servlet_2_2.jar'">
- <xsl:value-of select="."/>
- </xsl:when>
- }}}
+ !Step 2: Copy all elements except those which are labeled "2exclude"
- Transforming this result with exclude2jars.xsl [3] will result in the new 
jar.xml (without the exclusions, but with the exceptions).\\
+ Transforming this result with exclude2jars.xsl [3] will result in the new 
jar.xml (without the exclusions, but with the exceptions). We just have to 
introduce another XPath function\\
?                                                                               
                                                      
+++++++++++++++++++++++++++++++++++++++++++++++++

- \\
+ {{{<xsl:template match="jars">
+ <jars>
+ <xsl:copy-of select="file[lib!='2exclude']"/>
+ </jars>
+ </xsl:template>}}}\\
+ 


Reply via email to