Subject: RE: [xsl] Diagramming XSLT From: "Earley, Jim" <Jim.Earley@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 8 Apr 2008 15:58:13 -0600 |
Wendell pretty much hit the nail on the head. I've had the opportunity to explain XSLT to very interested, bright Java developers who understand imperative programming models yet find it difficult to grok the declarative nature of XSLT. Here's what how I approached it (your mileage may vary): To start, I set the foundation that everything in XML (elements, text, PI's, comments, attributes) is a tree node that can be traversed. After establishing that, I basically used the metaphor that each template match could be metaphorically treated as event handlers/listeners that could be fired when a the XSLT processor traversed any particular node in the tree. I used the notion of private methods to describe named templates that could be called from within the "event handler" match templates. While this isn't entirely accurate and only scratches the surface to the full power of what XSLT can do, it did help bridge the gap for the folks that had the hardest time with XSLT, without bogging down in the intricate aspects of XPath and context. What this did is to let folks dip their toes in the water, before diving in head first. I was fortunate to have a audience with a common foundation that I could talk to, and that all understood a common programming metaphor. Not knowing your audience, this approach may not apply at all, but hopefully it might spark some ideas. ---------- Jim Earley -----Original Message----- From: Wendell Piez [mailto:wapiez@xxxxxxxxxxxxxxxx] Sent: Tuesday, April 08, 2008 12:38 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] Diagramming XSLT James, I have lots of experience of this sort, plus I know people with similar experience, among whom this is an interesting topic for conversation, debate and war stories. In my experience, what you are asking can be challenging, since it has to be calibrated very carefully to the level of your audience. An expert, patient and interested audience will do better than an inexpert, impatient and uninterested audience. But these qualities do not always go together. Plus, "expert" is a problem, since some audiences that believe themselves to be expert are expert in something less relevant than they think. (And this can lead to impatience.) Even prior XSLT expertise can be a problem with people who have gotten off on the wrong foot. Then there are mixed audiences, which are especially challenging. My advice there is to aim at the most patient and most interested, which is often the least expert. You can speak to a "beginner" or near-beginner level without speaking down to anyone -- partly since the most expert tend to know that rebooting one's brain to "beginner" state is one of the most expert things one can do. :-) The best results come when you can connect with the beginners without leaving the experts out -- or if you like, connect with the expert audience without leaving the beginners behind. If the most expert are interested even in what you're telling the beginners, they will lead the others. As for how to approach it, if what you're trying to get across is the processing model and the basic notion of matching templates and generating results, diagrams may actually be a hindrance, since the "flow" of the stylesheet as it matches one node and then another is going to be quite complex on anything but the most trivial and unrepresentative cases. People's brains don't recurse well past about four levels without help (even those of us who like the idea of recursion). We're much better with iteration. On the other hand, I have had good results displaying a step-by-step debugger as it works through applying a stylesheet, such as the one that comes in oXygen. Even here, some attention has to be given to the source document, since it needs to be simple enough for transparency, but complex enough to be plausible (which is to say nearly "realistic"). Start with just a very few templates, and include copies of the built-in templates so their operation is not hidden. (This is important.) As for static diagrams illustrating the processing model, this is tough. I've seen many, but none that don't have weaknesses to go with their strengths. (If anyone has any candidates I'd love to see them.) The real message, however, is in the conceptual bridge between why XSLT works this way, what's it good for, why this is a strength not just something really strange, and so forth. For those purposes, good examples especially showing code can help. A short stylesheet that does a graceful job of rendering a deep and shaggy source document can tell volumes all by itself (especially to those who've already struggled with similar problems). But again, how you build this conceptual bridge between the design of the language, and its nature as a strategic asset to managers and developers at all levels, is very sensitive to who your audience is, to their mindset, expectations and disposition. I hope others contribute to this thread: it's interesting. Cheers, Wendell At 12:14 PM 4/8/2008, you wrote: >I'm preparing a conference talk, and in part of that talk I will be >explaining the functioning of an XSL transform to an audience of mixed >XSLT expertise. I was thinking that a flowchartish diagram would help. >I'm not looking to diagram every single template, just give a broad >overview - stuff like "the output from the "gentext" mode templates is >saved in this variable and then processed by the default-mode >templates." > >Are there any good examples of this sort of XSLT diagram on the web? >Does anyone attempted this before and have any advice? > >Thanks, > >-James > >----- >James Sulak >Electronic Publishing Developer >Jones McClure Publishing ====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Diagramming XSLT, Wendell Piez | Thread | Re: [xsl] Diagramming XSLT, Torsten Schassan |
Re: [xsl] How to sort a nodeset ret, Olivier Mengué | Date | Re: [xsl] How to sort a nodeset ret, Olivier Mengué |
Month |