[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: XSLT Reuse (Was: Even if you're not ... (Was: If you're going to the

  • To: Peter Hunsberger <peter.hunsberger@g...>
  • Subject: Re: XSLT Reuse (Was: Even if you're not ... (Was: If you're going to the W3C meeting in March))
  • From: Alan Gutierrez <alan-xml-dev@e...>
  • Date: Wed, 2 Feb 2005 09:36:41 -0500
  • Cc: Kurt Cagle <kurt.cagle@g...>, Frans Englich <frans.englich@t...>, xml-dev@l...
  • In-reply-to: <cc159a4a05013107512ac96741@m...>
  • Mail-followup-to: Peter Hunsberger <peter.hunsberger@g...>,Kurt Cagle <kurt.cagle@g...>,Frans Englich <frans.englich@t...>, xml-dev@l...
  • References: <Pine.LNX.4.44L0.0501271413090.7832-100000@s...> <6fa681b105012722567ad8b1f6@m...> <41FA3C88.7080901@m...> <200501281656.56282.frans.englich@t...> <6fa681b1050128111742b7c6b@m...> <20050129150217.GB4767@m...> <cc159a4a05013107512ac96741@m...>
  • User-agent: Mutt/1.4.1i

xslt reuse
* Peter Hunsberger <peter.hunsberger@g...> [2005-01-31 10:51]:
> On Sat, 29 Jan 2005 10:02:17 -0500, Alan Gutierrez
> <alan-xml-dev@e...> wrote:
> 
> <snip/>
> 
> >    I'm not sure how to ask the question. Let's say you have a file
> >    that's a project.
> > 
> >    <project>
> >      <source>
> >        <name>main</name>
> >        <dir>src/main</dir>
> >        <category>dist</category>
> >      </source>
> >    </project>
> > 
> >    Project directory:
> > 
> >      /project
> >          /src
> >              /java
> >              /resource
> > 
> >    Use the above to generate an Ant script. I run a transform and I
> >    have javac, junit, javadoc, jar, svn, and distrubute tasks.
> > 
> >    How do I allow a user to plug in a new set of tasks to generate?
> > 
> >    This is a general problem I'm having, how do you create hooks,
> >    callbacks, er, how do you create an XSLT framework?

> One way to do this would be to make it data driven.  In the framework
> class you build some variable that is the master list of tasks and
> some well defined calls to initialize the list and then process it. 
> Any framework class can then modify the list as needed and then pass
> control back.  Eg, in the framework:

> <xsl:variable name="tasks">
>  <javac/><junit/><javadoc/><jar/><svn/><distrubute/>
> </xsl:variable>

> <xsl:template name="init">
>   <xsl:apply-templates select="tasks" mode="process/>
> </xsl:template>

> Then the users of the framework implement "init" with a higher
> priority and call the same modal templates. They add their own task
> specific templates with the same mode as needed.  Of course, with this
> approach you're also likely looking at adding some parameter that is
> the real data to be passed from the main call, to the init and then on
> to the processing tasks....

    This system is building Ant files. I've reduced my Ant needs to
    dependency resolution.

    To start with, if antlr needs javac, it is on the developer to
    know this, and request both task definitions. There is no fancy
    include mechanism that resolves dependencies.

    Then it becomes a matter of sorting out the dependencies. I'd
    like an antlr task, when it generates it's targets, to be able
    to say that javac now dependes on antlr.

    This is something to solve in XSLT.

    My first attempt will be to generate an ant file that looks like
    this:

    <project name="foo" default="java">

      <target name="antlr">
        <dependant>javac</dependant>
        <antlr grammar="src/main/antr/Foo.g"/>
      </target>

      <target name="javac">
        <javac srcdir="src/main/java/**/*.java"
               destdir="var/classes/main/classes"/>
      </target>

    </project>

    Then, and here I'm using a pipelineing approach, I'd run an XSLT
    transform that would make it look like this:

    <project name="foo" default="java">

      <target name="antlr">
        <antlr grammar="src/main/antr/Foo.g"/>
      </target>

      <target name="javac" depends="antlr">
        <javac srcdir="src/main/java/**/*.java"
               destdir="var/classes/main/classes"/>
      </target>

    </project>

    Which ought to be simple enough.

    Basically, the antlr XSLT will add dependencies to the javac task.

    That's about all I think I need to worry about for extensiblity
    in this particular problem.
    
    So maybe one way to solve XSLT reuse is through pipelining and
    the generation of intermediate documents.

-- 
Peter Hunsberger

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.