[XML-SIG] Re: Confused and grasping

uche@ieee.org uche@ieee.org
Sat, 25 Sep 1999 17:40:12 -0400

> Uche -
> Thanks for the references to XSL training material and other links.  I got one of the sample pdf files from Crane.  But I don't think much of it - too complex and confusing.  I agree, though, that it's a hard road to read the XSLT spec and go from there.  On the other hand, we did it, it can be done.  

Hmm.  I'll admit that I didn't go through the PDF as a beginner would, but it 
did seem to have a decent amount of explanation and example.  Perhaps any 
respite from the specs seemed pleasant.

As for direct-to-spec.  My poorer excuse is that I was implementing it, 
although I very often learn things from specs: Java, C++ (from the ARM), DOM, 
to think of a few, and I have a feeling unicode will be next.  But not 
everyone is a masochist.

And one would really need to bone up on XPath as well to get much use of the 
XSLT spec.

> I'm publishing a short introductory article too, but it will be in a conference proceedings for a conference in January 2000, so it won't really be helpful to readers of this list.  I'll see if I can get permission from my company to modify it and find somewhere to publish it.  Any suggestions where?

XML.com are affiliated with O'Reilly and they are always looking for authors.  
You might have seen Norm Walsh's intro to Schemas.  I have a feeling they 
wouldn't mind seeing a similar treatment of XSLT.

> For anyone starting off with XSLT I have these key pieces of advice -
> 1) Start with VERY SIMPLE xml input files, but
> 2) Make sure they have at least 2 or 3 levels of nested elements, and 
> 3) most of all, DO NOT INCLUDE ANY MARKUP in the output at first.  Just make the stylesheet output plain text.  Markup tags just confuse you and keep you from knowing if the output is right.  When you can get the attribute text and output it where you want, when you can pick up all the nested elements, when you can number sections or elements, when you can sort the results, then it is time to add markup tags.  Not before.

OK, my question, which comes from having tried to explain XSLT to users, is 
how do you clearly help them differentiate from the context of the XML source 
and the current XSLT template instruction?  I think I might have managed this 
in my article, but I've found that's where the biggest hang-ups come.

Of course I'm usually dealing with people for whom recursion and tree 
traversal are old hat.  How would you begin putting it to someone coming from, 
say, a visual BASIC background?

> Finally Uche, I didn't suggest 4xslt because you have to install so many pieces for it.  XT is so much simpler.  I don't have 4xslt running myself yet because of this.  How about making a package with all-in-one for us regular folks? With so many pieces there could be versioning problems, and a package would alleviate that, too.  But my highest regards to you for developing it to its current state!!

This is a valid complaint, and one that I happened to be working on today.  
The next release will have an optional unified package with a single "make 
world".  There will also be RPMs, and we're evaluating our options for Windows 

I also don't expect a huge migration towards 4XSLT, not even from Python 
folks, just yet.  For those who've been about the XSLT block, XT is useful, 
and there are a few instructions 4XSLT doesn't implement yet.

I think that useful differentiation between processors will begin to emerge 
after XSLT hits 1.0.  Our plans are to develop a more powerful and 
general-purpose python API such as we discussed with Paul Prescod on this list 
a while back.  We also plan to provide several processing models.  I never 
expect it to be the fastest XSLT processor in the world, but I think it will 
be one of the most versatile.

For now, it is good for most transformation tasks.  We generate most of our 
Web site with it (everything that can benefit from structure).

Uche Ogbuji
FourThought LLC, IT Consultants
uche.ogbuji@fourthought.com	(970)481-0805
Software engineering, project management, Intranets and Extranets
http://FourThought.com		http://OpenTechnology.org