Consider this:

<taskTransformer> <!-- as it's not just a for-each (name suggestions gratefully 
accepted)-->

  <elements row-elem-name="file"> <!-- this will become the xml source that will be 
passed to the stylesheet -->
    <fileSet .../>
  </elements>

  <taskStyle>
  <!-- everything in here is treated as a template that would normally be defined as 
<xsl:template match="/" -->
    <xsl:for-each select="file">
      <touch file="{ant:full-path(.)}"/> <!-- anticipating some ant specific 
extensions. The example could use file="." -->
    </xsl:for-each>
  </taskStyle>

  <templates>
  ... <!-- optional section if further templates are required -->
  </templates>

</taskTransformer>

It's not a great deal different than each of us writing a scripted task when we want 
to run over a set of files except:
 - we can still use fileSets rather than relying on our scripting language's file 
system access routines.
 - any task could be used in a for-each mode without modification
 - what is produced is used as though the fully transformed version had appeared in 
the original build.xml
 - the full power of xslt is available should it be needed. (and is there to bite you 
...)

The task would assemble the included elements into a stylesheet that would import a 
standard stylesheet (therefore any xsl:
directives in the build.xml would override the standards).

One nice thing about the xslt route is that xslt is already fully documented. :-)

There is enough work here that I won't just code it up, submit it, and see if it makes 
it. If this seems viable to others and  has a
chance of making it into official Ant I'll take on developing it though. (At which 
time I guess further discussions would go on the
Ant-Developer's list)

***********************************************************
Brett Knights                             250-338-3509 work
[EMAIL PROTECTED]                 250-334-8309 home
***********************************************************

Reply via email to