xsl-list
[Top] [All Lists]

RE: nodes or multiple runs?

2004-02-11 03:58:55
Running multiple transformations in a pipeline is just fine, it helps to
keep the transformation stages modular. Try to chain them in a SAX
pipeline, however, rather than serializing and parsing between each
transformation step.

Michael Kay

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Paul Tremblay
Sent: 11 February 2004 07:51
To: xsl-list
Subject: [xsl] nodes or multiple runs?



I will be publishing a set of xslt stylesheets and want to 
make them easy to use for everyone. My question is whether I 
should chain several stylesheets together, or try to process 
the original document with just one run, using temporary trees.

Right now, my transformation involves chaining together 
stylesheets. One xslt stylesheet creates a document, and that 
document is processed with an xslt stylesheet, and so on. 

This method requries that I create several temporary files. I 
can write a python script makes the chaining together easy, 
but then I have to contend with different processors. Saxon 
will require a different processing command than Xalan. I 
will have to write a routine for each processor, and that of 
course gets pretty involved.

However, I was reading Michael Kay's book, and I realized 
that I can actually create temporary trees instead of making 
multiple runs. 

For example, I can group together all colors in the document 
and store the result as a temporary tree in a variable. I can 
then number the nodes in this temporary tree consecutively.

But not all processors can handle this method of using a 
temporary tree. For example, xsltproc cannot. 

In addition, re-writing my stylesheets so that I can process 
everything at once will take a lot of work. In fact, with my 
level of skill it may not even be possible. The tricky part 
is that I have to number nested lists according to attributes 
in the original XML document. A list that is nested inside 
another list may require that it inherit the number for its 
parent, or it may require that it not. The numbering style 
for the child list may be deciaml, but the numbering style 
for the parent may be Roman. The top level of each list must 
have a unique ID, and this ID must be part of an attribute 
for the paragrphs. But children of lists must not have ids. 
It is for this reason that I numbered all lists first, and 
then on a subsequent run concatenated numbers from parent 
lists when I needed to.

Is it okay to make a user process the document several times, 
or should I try to make my xslt stylesheet a one run process?

Thanks

Paul

-- 

************************
*Paul Tremblay         *
*phthenry(_at_)earthlink(_dot_)net*
************************

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>