Next in thread → Next in month →

Re: XSLT2 - which parts solve real 1.0 problems, which makes coffee? - was Re: [xml-dev] Streaming XML

From
Dimitre Novatchev <>
To
Date
2004-12-31T04:27:48Z
ID
<cr2kg3$1p1$>
Thread
Re: XSLT2 - which parts solve real 1.0 problems, which makes coffee? - was Re: [xml-dev] Streaming XML
"M. David Peterson" <> wrote in message 
news:...
> "My own proposal was for special XSLT error templates that could
> "match" or trigger on error conditions, assuming a very simple XML
> vocab for XSLT error communication in the
> first place."
>
> Oooohhhh.... I totally love that idea!!!  Basically like built-in
> templates that exist in the 1.0 definition...  basic output and easily
> overidable if desired as such.
>
> Dimitre, can you think of a way to do this with FXSL, especially with
> XSLT 2.0 and everything being a sequence of nodes it seems that a
> certain condition could easily insert,  for example, <error id="123"/>
> into the output and further apply-templates to all error elements
> before finishing each process contained within a template?

Yes, this can be done, what is only needed is implementing support for 
higher order functions (HOF) and for computations (Monads).

One has to realize that error raising/handling in a functional language is 
essentially nondeterministic and much more challenging as such. XPath 1.0 
compatibility would also be very problematic, as there's almost no such 
thing as raising an error in XPath 1.0.

More on implementing exceptions in a functional language can be found in the 
classic work of Simon-Peyton Jones "Tackling the awkward squad: monadic 
input/output, concurrency, exceptions, and foreign-language calls in 
Haskell", at 
http://research.microsoft.com/Users/simonpj/papers/marktoberdorf/

While I actually made some successful experiments 1 1/2 years ago, it seems 
too early to expect these in XSLT. My predictions (which are typically 
optimistic) are for HOF support in XPath/XSLT 3.0 and try/catch-type error 
handling in XPath/XSLT 4.0.

The WG has done a good job and made the reasonable decision not to put the 
cart in front of the horse.

Cheers,
Dimitre.
Next in thread → Next in month →