This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Rescuing XSLT from Niche Status


At 01/02/16 15:18 -0500, Roger L. Costello wrote:
>A colleague of mine has written an excellent paper describing a new way
>of looking at creating XSLT documents.

I agree with the others this isn't new, but I have additional points to 
make that haven't been brought up.

In our book "Practical Transformation Using XSLT and XPath" (ISBN 
1-894049-06-3; first published March 12, 1999 and now in the Ninth Edition) 
we distinguish this as a "pull" approach, compared to using 
xsl:apply-templates in a "push" approach.  This has proven to be very 
accessible to students of our training material and readers of our book.

>As a testimony to the effectiveness of using this approach, after
>reading the article I became such a believer in it that I reworked my
>entire XSLT Tutorial[1] using this new approach.

You may find that the utility of the pull approach quickly fades, 
especially in publishing solutions (though probably not as quickly in data 
solutions).  Of course the "pull" approach is untenable when dealing with 
mixed content.

>This past week I
>taught a three day course on XSLT using the new approach.

Our experience is that students of our three-day course on XSLT (next 
delivery is February 28-March 1; see the link on our home page for details) 
who are presented with both will focus on learning the "push" approach in 
order to be in a position to solve more problems than can be solved with 
just a "pull" approach.

>I found that
>with the new approach the students learned the material about 50% faster
>than previous classes, where I used the classical approach to viewing
>XSLT document creation.

I think it is important to not distinguish the two approaches as 
"classical" and "new", as they both have important roles to play based on 
the kind of problem being solved.  Many solutions will require the use of 
both, though there are other reasons where using "push" brings more 
benefits than using "pull".

Using "pull" approaches inhibit the sharing of stylesheet fragments.  When 
an organization views the deployment of stylesheets from many contributors, 
it is critical to be able to share stylesheet fragments.  Stylesheets using 
the "pull" approach you are advocating are monolithic, they inhibit 
sharing, and they cannot be specialized using importation.  Stylesheets 
using the "push" approach are granular and promote reuse of the investment 
in stylesheet fragments.  Organizations should be cognizant of issues of 
stylesheet maintenance in the long term.

Basing the teaching only on a fill-in-the-blanks monolithic "pull" approach 
may provide quick gratification but will not equip your students for 
certain real-world situations.  This approach becomes either unusable or 
isolationist (relating to being able to reuse stylesheets because they are 
monolithic; I couldn't think of a better word here) and doesn't build the 
expertise to take full advantage of the language.

I hope this helps.

.......................... Ken

p.s. the free download preview of our book available on our web site 
includes a comparison of push/pull in chapter 2.


--
G. Ken Holman                      mailto:gkholman@CraneSoftwrights.com
Crane Softwrights Ltd.               http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0     +1(613)489-0999   (Fax:-0995)
Web site:     XSL/XML/DSSSL/SGML/OmniMark services, training, products.
Book:  Practical Transformation Using XSLT and XPath ISBN 1-894049-06-3
Article: What is XSLT? http://www.xml.com/pub/2000/08/holman/index.html
Next public instructor-led training:       2001-02-21,2001-02-27/03-01,
-          2001-03-05/07,2001-03-21,2001-04-06/07,2001-05-01,2001-09-19


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]